How does Chronos work with Google Calendar?
Chronos connects to Google Calendar via OAuth 2.0, reads your existing meetings and free gaps, and slots new tasks into available windows automatically. When a client reschedules, Chronos picks up the change on the next sync and adapts your task schedule without manual intervention. Two-way sync keeps every app that reads your Google Calendar current.
What Chronos does with your Google Calendar
Two-way event sync
Chronos reads Google Calendar events and writes Chronos-scheduled tasks back to your calendar using the Google Calendar API, ensuring any app that reads your Google Calendar — your phone, your smart display, or your colleagues’ booking tools — sees Chronos tasks alongside your existing meetings. The Google Calendar Events resource supports full CRUD operations, letting Chronos create, update, and delete events programmatically as your schedule changes. Changes flow in both directions: when you mark a task complete in Chronos, the corresponding calendar event is removed; when a meeting shifts in Google Calendar, Chronos detects the update on the next poll and reshuffles your task schedule to fit the new timeline.
Incremental sync via sync tokens
Chronos uses sync tokens provided by the Google Calendar API to request only the events that have changed since the last poll, rather than re-fetching your entire calendar on every sync cycle. Sync tokens are short opaque strings returned by the Google Calendar API after each successful list request; on the next request, Chronos passes the stored token back to receive only the delta. This reduces API quota usage significantly: a user with hundreds of calendar events still generates a tiny sync payload after the initial full import. When a sync token expires — for example after a Google account permission change — Chronos automatically falls back to a full re-sync and issues a fresh token.
Instant push when Chronos reschedules a task
When Chronos schedules or reschedules a task, it immediately pushes a corresponding event update to Google Calendar, translating Chronos task fields — title, scheduled start and end times, recurrence rules — into a Google Calendar event via the Events API. This means your Google Calendar reflects your Chronos schedule within seconds of any AI-driven rescheduling, not on the next background sync cycle. If a task is deleted in Chronos, the matching Google Calendar event is removed as well, keeping your calendar free of phantom commitments.
OAuth 2.0 with offline access — no credential storage
Chronos connects to Google Calendar using OAuth 2.0 and requests offline access scope, which grants a refresh token that lets Chronos sync your calendar in the background without requiring you to stay logged in. The authorisation code exchange fetches your Google email address and calendar list, then stores an encrypted token pair — access token plus refresh token — in the database. Raw tokens are never stored in plaintext; they are encrypted with AES-256-GCM using a per-environment key before writing to the database. Access tokens are refreshed automatically before expiry, so the integration stays active without any action from you.
How teams use this
Freelancer keeping client and deep-work time on one timeline
A freelancer who juggles client video calls in Google Calendar and independent project work in Chronos connects both tools at the start of the week. Chronos reads the upcoming client meetings and uses that information to schedule deep-work and admin tasks into the remaining gaps — automatically avoiding double-booking. When a client reschedules a call on Thursday afternoon, Google Calendar updates, Chronos detects the change on the next incremental sync, and the AI reshuffles the surrounding task blocks to make the most of the freed slot. The freelancer’s Google Calendar and Chronos task list stay in sync throughout the week without any manual rearranging.
Related integrations
Ready to connect Chronos with Google Calendar?
Start scheduling smarter — free, no credit card required.
Start Free TrialAlready a user? Setup help →