Two-way Google Calendar sync

Every appointment booked on the platform appears in the staff member's Google calendar, and everything already on their Google calendar becomes a busy block that removes those times from their booking availability.

What it is

A per-person OAuth grant with calendar events access. Outbound: platform bookings are created, patched and deleted in Google, tagged with a private property so they are recognised on the way back, and Google sends no invitations because the platform owns the emails. Inbound: everything else is pulled as an external appointment that shows as busy, blocks booking slots, and carries no automations. If a platform booking is moved or deleted in Google, the platform appointment follows.

Also called: Google Calendar · double booked · calendar sync · busy blocks · booking availability

See it
Two-way Google Calendar sync
Apr
May
Jun
Jul
Delia Yoder — Hobby Shop
Framing
Sutter Kline — Equipment Storage
Concrete
Ronan Petsch — Barndominium
Trim
Delia Yoder — 30×40 Garage
Framing
Ronan Petsch — Barndominium
Concrete
Framing crewConcrete crewTrim crew
A week view with platform bookings in brand colour and pulled Google events as grey hatched busy blocks, and a booking page beside it showing those slots removed. Sample data — no customer information appears here.
How it works
  1. 1A staff member connects their own Google account through the shared platform app.
  2. 2Platform bookings are pushed with a private tag identifying them as ours.
  3. 3The pull walks every calendar the person has ticked — primary, shared, and additional — skipping holiday, birthday and contacts feeds.
  4. 4Incremental sync uses a per-calendar sync token; a stale token falls back to a windowed full pull from 30 days back to 120 days ahead.
  5. 5Events marked Free are shown but do not block booking slots; all-day events use the host's own timezone for midnight.
Why we built it

Recorded as Keith 08-18 with the two directions spelled out, including why pulled events carry no automations: an external block 'shows on the platform calendar as a busy block, removes those times from booking-link availability, and carries no automations (no confirmations, no SOP tick, no Journeys light).' Suppressing Google's own invitations is deliberate — 'the platform owns the emails.' Multi-calendar support was added because personal blocks live outside the primary calendar, and a permission upgrade is surfaced honestly: an account granted only the old scope gets 'Only your primary calendar is syncing — reconnect Google Calendar to include your other calendars.'

The problem
  • Booking availability ignored commitments living in a personal calendar.
  • Platform bookings had to be copied into Google manually.
  • Moving an appointment in Google left the platform out of date.
  • Duplicate calendar invitations went out from two systems.
Sound familiar?
What you get
Availability reflects the person's real day, across every calendar they use.
A move or cancel in Google updates the platform appointment.
Only one system emails the attendee.
What's inside

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →