Step-by-step guide

How to Import Timesheets into QuickBooks Online

Time On It connects your Excel spreadsheet to QuickBooks Online in four steps. No manual data entry, no copy-pasting, no mismatched names.

Takes about 5 minutes Works with Excel, Google Sheets & Numbers

What you'll need

The setup is minimal. If you're already using QuickBooks Online and tracking time in a spreadsheet, you're ready.

Import timesheets into QuickBooks in 4 steps

Each step is designed so that the next one is easier. Connecting first means the template is pre-populated with your exact QBO data.

1

Connect to QuickBooks Online

Log in to Time On It and click Connect to QuickBooks. You'll be redirected to Intuit's login page — sign in with your QuickBooks Online credentials as normal. Time On It uses Intuit's official OAuth 2.0 authorisation flow, which means your QBO password is never shared with or stored by Time On It. The only thing Time On It receives is a secure access token that allows it to read your company data and create time entries on your behalf.

Once you've authorised the connection, you'll be returned to Time On It automatically. In the background, your employees, customers, classes, and service items are loaded from QuickBooks. The connection indicator turns green when this is complete. The whole process takes under 30 seconds on a typical internet connection.

What happens automatically Time On It loads your full list of employees, customers (including sub-customers), classes, and service items from QuickBooks. This data powers the dropdown lists in your template — making step 3 much faster and preventing name-mismatch errors on import.
2

Download the pre-filled template

Once connected, the Download Template button becomes active. Click it to download an Excel workbook (.xlsx) that has been generated live from your QuickBooks data. Unlike a blank generic template, this file already contains dropdown lists in the Employee Name, Customer, Class, and Service Item columns — populated directly from your QBO company.

The template contains the following columns:

  • Date — yyyy-mm-dd
  • Employee Name — dropdown
  • Customer — dropdown
  • Class — dropdown
  • Service Item — dropdown
  • Description — optional text
  • Hours — decimal number
  • Billable — Yes or No

The template opens in Excel, Google Sheets, or Apple Numbers. If you use Google Sheets, note that the dropdown validation may not carry through — so take care to match names exactly. Export as .xlsx (File → Download → Microsoft Excel) before uploading.

Why does connecting first matter? The dropdowns are sourced from your QuickBooks company. Using them guarantees every name matches exactly — preventing Skipped rows on import. If you download a template before connecting, the dropdowns will be empty and your import will likely result in many skipped entries.
3

Fill in your time entries

Enter your timesheet data into the template — one row per time entry. Use the dropdown lists for Employee Name, Customer, Class, and Service Item rather than typing these manually. The dropdowns are the safest way to ensure names match what's in QuickBooks, preventing errors at import time.

A few things worth knowing about specific columns:

Date — enter in yyyy-mm-dd format (e.g. 2025-07-14), or use your spreadsheet's date picker. Historical dates work fine; there is no restriction on how far back you can go.

Hours — enter as a decimal. Half an hour is 0.5, ninety minutes is 1.5, a full eight-hour day is 8. There is no separate minutes column.

Description — optional free text. If you leave it blank, Time On It generates a description automatically in the format Service Item – Customer Name (e.g. "Consulting – Acme Corp"). You can override this by entering your own text.

Billable — enter Yes or No. A Yes entry will appear on the customer's timesheet in QuickBooks and can be added to an invoice. A No entry is recorded but won't be offered for invoicing. Blank defaults to No.

Blank rows between entries are skipped automatically, so you can group entries by employee or week with spacer rows if that helps readability.

Name not in the dropdown? If an employee, customer, class, or service item isn't listed, it either doesn't exist in QuickBooks yet or has been marked as inactive. Add or reactivate the record in QBO, then re-download the template — the updated name will appear in the dropdown immediately.
4

Upload and import

Go to the Import page in Time On It and upload your completed .xlsx file. Time On It reads each row, loads the current state of your QuickBooks company, and then attempts to create each time entry via the QuickBooks API — one by one.

Before creating any entry, it checks whether an identical record — same date, same employee, same customer, same service item — already exists in QuickBooks. If it does, the row is counted as a Duplicate and skipped rather than created again. This makes it completely safe to re-upload the same file more than once, for example if you need to add a few extra rows.

When the import completes, the results screen shows four counts:

Imported — entries successfully created in QuickBooks.
Duplicate — entries that already existed; not re-created.
Skipped — rows where a name (employee, customer, service item, or class) could not be matched in QuickBooks. The results list shows which field and which row number caused each skip.
Failed — rows that matched fine but were rejected by the QuickBooks API, usually due to a temporary API issue. Re-uploading after a few minutes will typically resolve these; previous successes will be caught by duplicate detection.

A typical import of 20–30 rows takes 10–20 seconds from the moment you click Import.

What gets created in QuickBooks

Time On It creates TimeActivity records in QuickBooks Online — the same record type that QuickBooks' own time-entry screens create. Each imported row becomes a distinct TimeActivity with the following fields populated:

Employee

Linked to the matching employee record in your QBO company file.

Customer / Project

Linked to the customer or sub-customer (project) from your QBO list.

Service Item

The service item that describes the type of work performed.

Class

Optional classification for reporting. Set from the Class column if your QBO plan supports it.

Date

The date the work was performed, as entered in the spreadsheet.

Duration

Stored in hours and minutes. Decimal hours from the spreadsheet are converted automatically.

Description

Your custom description, or the auto-generated "Service Item – Customer" if left blank.

Billable Status

Billable entries appear under the customer's time in QBO and can be pulled onto an invoice.

These entries appear in QuickBooks under Time Entries exactly as if they had been entered manually. They feed directly into QBO invoicing, payroll, and reporting — no additional configuration required.

Frequently asked questions

How long does an import take?

Time On It first loads your current QuickBooks data (employees, customers, service items, and classes), then creates each time entry via the QBO API one at a time. A typical import of 20–30 rows takes 10–20 seconds. Larger batches of 100+ rows may take a minute or two depending on API response times.

Can I use Google Sheets instead of Excel?

Yes. Open the downloaded template in Google Sheets, fill in your data, then export it as File → Download → Microsoft Excel (.xlsx) before uploading to Time On It. Note that Google Sheets doesn't always enforce the dropdown validation, so check that your employee, customer, service item, and class names match your QuickBooks data exactly before exporting.

What if I import the same file twice?

It's safe. Before creating any time entry, Time On It checks whether an identical record (same date, employee, customer, and service item) already exists in QuickBooks. If it does, that row is counted as a Duplicate and skipped — it won't be created twice. You'll see the Duplicate count in the results so you know exactly what happened.

What does "Skipped" mean in the import results?

A Skipped row contains a name — employee, customer, service item, or class — that couldn't be matched in your QuickBooks company. The results list shows you exactly which row and which field caused the skip. To fix it: check that the name exists and is active in QBO, re-download the template to get the updated dropdown, correct the affected rows, and re-upload. Entries that already imported successfully will be caught by duplicate detection.

Can I import historical timesheets?

Yes — there is no restriction on the date range. You can import timesheets from any date, including dates years in the past. Time On It creates the TimeActivity records in QuickBooks with whatever date you specify in the spreadsheet. This is useful for backfilling data when first setting up QBO or migrating from another system.

Which QuickBooks Online plans are supported?

Time On It works with any QuickBooks Online plan that includes time tracking — Simple Start, Essentials, Plus, and Advanced are all supported. If you're unsure whether your plan includes time tracking, check under Account and Settings → Advanced → Time tracking in QBO. QuickBooks Self-Employed is not supported as it uses a different API.

Ready to import your first timesheet?

Start a free 14-day trial — no credit card required. Connect your QuickBooks, download the template, and see how fast it goes.

Start free trial →