Integrations overview

What we sync, where the connection lives, and how to revoke.

Timely connects to four kinds of external systems:

  • Square — POS + employee + timecard sync
  • Gusto — payroll (push hours, PTO)
  • QuickBooks Online — labor cost reporting
  • Calendar feeds (Google, Apple, Outlook) — read-only ICS subscriptions

All live at Settings → Integrations. Each one has its own page with its current connection state, sync history, and configuration.

What syncs where

Integration Direction What flows
Square Square → Timely Employee roster (one-time + repeatable)
Square Square → Timely Timecards (ongoing weekly sync, used for Labor dashboard)
Gusto Timely → Gusto Hours, OT, PTO (manual push per pay period)
Gusto Gusto → Timely Active employees + pay rates (one-time pull)
QuickBooks Timely → QuickBooks Labor cost summary (manual push per period)
Calendar Timely → external app Read-only schedule feed (live updates)

The data model is not fully bi-directional on purpose — Square is the source of truth for employees and timecards, Timely is the source of truth for the schedule, and Gusto is the source of truth for payroll.

How OAuth works

Each integration uses OAuth 2.0. Click Connect, redirect to the provider, grant permission, redirect back. We store the access token + refresh token server-side; nothing sensitive ever lands in the browser.

If you change your password on the provider side, the access token is invalidated and you'll see a "Reconnect" prompt next time you open the integration page.

Disconnecting

Settings → Integrations → click the integration → Disconnect. This:

  • Revokes Timely's OAuth access at the provider
  • Stops all future syncs
  • Leaves historical data intact (synced employees stay, past labor records stay)

If you want to start clean — delete all synced data — there's a "Disconnect and remove synced data" option for each integration. Use carefully; this can't be undone.

Mapping employees

When you sync a roster from Square or Gusto, you see a mapping screen: existing Timely employees on the left, external records on the right. Match each pair manually, or use the auto-match button (matches by email + phone exactly, name fuzzy).

Mappings are sticky across syncs. The next time you sync, mapped employees update in place; new external employees show as "ready to import."

Multi-location

Each integration is connected at the org level, not per location. So one Square OAuth grant covers all your locations. Square employees are tagged with their Square location and Timely uses that to map them to the correct Timely location at import time.

Sync history

Every sync writes a row to the integration history (visible on the integration's page). Includes timestamp, what was synced, and any errors. Useful for "did the Tuesday timecard pull actually fire?" auditing.

Specific integration pages

For setup details and provider-specific quirks:

Found a typo or something missing? Let us know.