Gusto

Push hours, OT, and PTO to Gusto for payroll.

Gusto integration lets you:

  • Pull employee data from Gusto into Timely (active employees, pay rates, employment types) on first connect
  • Push hours from a finalized week's schedule into a Gusto pay period — including overtime split and PTO

This avoids the spreadsheet shuffle on payroll day.

Connecting Gusto

Settings → Integrations → GustoConnect.

Gusto's OAuth flow asks for the following scopes:

  • Read employees + pay rates
  • Read pay periods
  • Write payroll compensations (hours, OT, PTO)
  • Optional: PTO balance read (uncheck if you don't want it)

Click Authorize. You'll land back on the Gusto integration page with a Connected status.

Pulling employees (one-time)

After connecting, click Import Employees. Gusto returns active employees with:

  • Name, email, phone
  • Employment type (full_time / part_time / contractor)
  • Pay rate (hourly or salary)
  • Department / role

The same mapping flow as Square — match against existing Timely employees, or create new ones.

This is a one-time pull by default. Subsequent payroll pushes just write to Gusto; if you hire someone new in Gusto, run Import Employees again to bring them into Timely.

Pushing hours

Once a week is finished and timecards reconcile (typically the day before payroll runs), open the Gusto integration page and click Push to Gusto.

You'll see a preview screen with:

  • Pay period picker (defaults to the most recent open period in Gusto)
  • Per-employee compensations: regular hours, OT hours, PTO hours, holiday hours
  • Override toggle per row in case you need to adjust

Click Confirm push. Timely sends the compensations to Gusto via their API. Gusto returns a payroll-line UUID per employee, which Timely stores so a re-push doesn't duplicate.

How OT is calculated

Timely splits regular vs. overtime hours per Gusto's federal default rules:

  • Hours worked over 40 in a week → OT
  • For California (and other state-specific rules): hours over 8 in a day also count as OT

The split happens client-side at push time using your location's break policy (paid breaks count toward hours; unpaid breaks don't).

If your Gusto org has custom OT rules, the federal split is the safer default — Gusto will re-apply state rules on its end. If you spot a discrepancy, file it via support@trytimely.com.

PTO

If you imported employees with PTO balances enabled at connect time, Timely tracks:

  • Available PTO per employee
  • PTO consumed by approved time-off periods

The push includes consumed PTO as a separate line item per employee, so Gusto draws it down accordingly.

Re-pushing a pay period

Each push is idempotent — Gusto's payroll-line UUIDs prevent double-write. If you push, then realize you missed a shift, edit the schedule, and push again:

  • Timely diffs against the last-push state
  • Compensations that didn't change are skipped
  • Adjusted compensations are PUT'd with the original line UUID, so Gusto updates in place

Disconnecting

Settings → Integrations → Gusto → Disconnect. Stops future pushes; leaves historical mapping data in Timely. Reconnecting reuses the existing mappings unless Gusto's internal employee IDs changed.

Found a typo or something missing? Let us know.