Connect Google Calendar
Google Calendar connects via OAuth 2.0 with PKCE. You sign in with Google and grant CalendarPipe access to your calendars.
You will need a Google account with Calendar access and the ability to sign in to it in your browser.
Connect
1. Start the connection
Navigate to Calendar Connections in the CalendarPipe sidebar and click Add calendar.
2. Select Google
Choose Google Calendar from the list of providers.

3. Sign in and grant access
You will be redirected to Google's sign-in page. Sign in with the Google account whose calendars you want to sync.
Google will show a consent screen asking you to grant CalendarPipe the following permissions:
- See, edit, share, and permanently delete all the calendars you can access using Google Calendar -- This allows CalendarPipe to read events from source calendars and write synced events to target calendars.
- See your primary Google Account email address -- This identifies which Google account is connected.
Each permission is a separate checkbox, and both must stay checked. If you clear the calendar permission, Google still completes the sign-in but CalendarPipe cannot connect the account — see Why CalendarPipe needs calendar access.
Click Allow to grant access. CalendarPipe uses the PKCE (Proof Key for Code Exchange) flow automatically for enhanced security.
4. Confirm the connection
You are returned to Calendar Connections with the account listed. Every calendar on it is available to sync rules straight away — expand the account to see them.
Why CalendarPipe needs calendar access
Google's consent screen describes the calendar permission as "See, edit, share and permanently delete all the calendars that you can access using Google Calendar." That wording is Google's, and it covers everything its Calendar API can do — not what CalendarPipe does with it.
CalendarPipe uses the access to:
- List your calendars, so you can pick which ones a sync rule reads from and writes to.
- Read events from the calendar a rule syncs from.
- Create, update, and remove copies of those events on the calendar a rule syncs to.
CalendarPipe never deletes a calendar, and never shares one. The only events it removes are copies it created itself, on a calendar you named as a target — when the original event is deleted or falls outside the rule, its copy is cleaned up. Calendars that no rule mentions are only ever listed, never read or written.
If you clear the checkbox, sign-in still succeeds but the account is not connected — there would be nothing CalendarPipe could read or write. Connect again and leave the permission checked.
Multiple Google accounts
To connect a second Google account, click Add calendar again and select Google. You will be prompted to sign in with a different account — useful for syncing between personal and work calendars.
Re-authorization
If CalendarPipe's required permissions change, you will see a notification asking you to re-authorize. Click through the OAuth flow again to update your permissions.
Out of office events
CalendarPipe can write synced events as real Out of office events using a gate transform (transform.type: "outOfOffice"). The following limitations apply — when any one is not met, the event is written as a normal busy event instead:
- Out of office requires a Google Workspace account. Personal Google accounts (for example
@gmail.com) cannot create Out of office events. - Out of office is only supported on your primary Google calendar, not secondary calendars.
- All-day events are not supported (Google requires Out of office events to have specific start and end times).
By default, synced Out of office events never auto-decline meetings. You can opt in per rule (the auto-decline toggle in the visual builder, or transform.autoDecline in a gate function) to have Google automatically decline new invitations that conflict with the synced Out of office block. This is forward-looking only — events already on your calendar are never touched.
Event colours
Google is the only connector with a per-event colour, so it is the only target where a rule's colour (or a gate's transform.color) shows up. Any Google calendar and any Google account works — there is no Workspace or primary-calendar requirement. Out of office events are the one exception: Google renders those in a fixed style, so a colour is not applied to them.
Troubleshooting
- "Access blocked" error -- Make sure you are signed into the correct Google account. If you have multiple accounts, try using an incognito window to sign in with the specific account you want to connect.
- Calendars not showing -- Only calendars you own or have write access to will appear. Shared calendars with read-only access can be used as source calendars but not as target calendars.
- "Reconnect required" on a connected account -- Google stopped accepting the connection, so its sync rules are paused. Click Reconnect on the account; you do not need to disconnect first, and the rules resume on their own. See Reconnecting a connection.
- "Calendar access missing" on a connected account -- The account was connected without the calendar permission. Click Reconnect on the account and leave the calendar permission checked on Google's screen. You do not need to disconnect first. See Why CalendarPipe needs calendar access.