Calendar changes arrive in seconds, not on a timer

Each synced calendar has a live watch channel, so a change in Google triggers an immediate sync for that person rather than waiting for the next scheduled run.

What it is

Per-calendar watch channels with a per-channel secret, renewed before their roughly seven-day expiry. A webhook verifies the channel and its token, ignores the initial handshake ping, and syncs that person. Channels for calendars the person un-ticks are stopped and removed. Disconnecting stops every channel.

Also called: push notifications · instant calendar sync · watch channel · live updates

See it
Calendar changes arrive in seconds, not on a timer
Apr
May
Jun
Jul
Sutter Kline — Equipment Storage
Framing
Ivy Brubaker — Equipment Storage
Concrete
Delia Yoder — 40×64 Shop
Trim
Ronan Petsch — Equipment Storage
Framing
Gideon Alt — Equipment Storage
Concrete
Framing crewConcrete crewTrim crew
A channel list per user showing calendar, expiry and a renewal countdown, plus a live 'changed 4s ago' indicator. Sample data — no customer information appears here.
How it works
  1. 1ensureWatch creates a channel per synced calendar with a random secret and an expiry.
  2. 2Google posts to the webhook on any change, with no body.
  3. 3The webhook resolves the channel to a user and verifies the secret.
  4. 4The first 'sync' state is a handshake and is ignored.
  5. 5Anything else triggers an immediate sync; the response is always 200 so Google does not retry-storm.
  6. 6Channels within a day of expiry are renewed and the old one stopped.
Why we built it

Documented as Keith 08-19 on the webhook, with the operational constraint recorded in the sync module: 'Google caps Calendar channels at ~7 days; renew when < 1 day left.' The always-200 rule is stated as a deliberate protection against retry storms.

The problem
  • Calendar changes were only picked up on the next scheduled sync.
  • Expiring channels silently stopped delivering updates.
Sound familiar?
What you get
A calendar change is reflected within seconds.
Channels renew themselves before they lapse.
Un-ticked calendars stop notifying automatically.

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 →