The big risk when you switch to a booking tool: the tool offers a slot at 2pm on Tuesday, the customer books, then you realise you'd already promised that hour to a school pickup or a personal appointment that lives in Google Calendar. The double-booking is on you to untangle, and it's the kind of thing that erodes trust fast.
StudioOps's Google Calendar integration solves this both ways:
- Push (1-way out): confirmed StudioOps appointments appear automatically in your Google Calendar.
- Busy-slot read (2-way): personal meetings already in your Google Calendar block those slots from being offered on your public booking page.
Both are off by default. Connect once to enable both.
1. Before you connect
A few things to decide first:
Which Google account — usually the owner's primary work account, the one where you already manage your day. It needs to be a Google account; Outlook / iCloud / Yahoo aren't supported in v1.
Which calendar — v1 reads and writes your primary calendar only (the one labelled with your email address in Google Calendar). If you keep work and personal on separate Google calendars, only the primary is in scope. Per-calendar selection is on the roadmap.
If your personal stuff and your work stuff are on the same primary calendar, you're in the right shape. If you keep work bookings on a secondary calendar today, you might want to swap which calendar is "primary" before you connect.
2. Connecting
Go to Settings → Calendar and click Connect Google Calendar.
Google sends you to its hosted sign-in. Pick the account you want StudioOps to use.
Google then asks you to approve four permissions:
| What | Why |
|---|---|
Add events to the calendar you choose (calendar.app.created) |
So confirmed StudioOps bookings appear in your diary. |
Read free/busy info (calendar.freebusy) |
So personal meetings block StudioOps from offering conflicting slots. |
Verify it's you (openid + userinfo.email) |
So StudioOps can confirm the right account stayed connected and detect if someone re-connects with a different account by accident. |
All four are needed for the integration to work. None of them are sensitive scopes — StudioOps can't read the content of your calendar events, only whether each slot is busy or free.
Approve. Google sends you back to StudioOps with the integration wired up.
3. What turns on automatically
Once connected, two things start happening:
Push. Every new confirmed StudioOps appointment is added to your Google Calendar as an event with the customer's name, the service, and the time. Updates (reschedules, cancellations) flow through too.
Busy-block. The public booking page reads your busy slots from Google and removes them from the offered list. If you've got a doctor's appointment 14:00–15:00 on a Tuesday in your Google Calendar, customers visiting your booking page won't see 14:00 Tuesday as bookable.
The freebusy check runs every time a customer loads your booking page. There's a 60-second cache so a popular booking page doesn't hammer Google's API, but for practical purposes any change you make to your Google calendar is reflected within a minute.
4. What happens when something goes wrong
Google integrations sometimes drop — token revocations, scope changes, account swaps. StudioOps handles each:
Connection lost or revoked. A red banner appears on your dashboard:
Google Calendar disconnected — new bookings aren't appearing in your diary and personal meetings aren't being checked. Reconnect →
Clicking reconnect runs you through the Google sign-in flow again. The previous integration state is preserved (same calendar, same settings) as long as you reconnect with the same Google account.
Google account mismatch on reconnect. If you reconnect with a different Google account than the one StudioOps had on file, you'll see a clear error and StudioOps refuses to swap silently. This protects against the case where a team member accidentally signs in with their personal account instead of the studio's. Sign out of Google in your browser and try again with the right account.
Transient Google outage. Once in a while Google's API has a hiccup (5xx error, rate limit). StudioOps treats these as transient and fails open: the booking page still works, your push events still get a retry attempt, you might briefly see a slot offered that you'd otherwise have blocked. The cache + retry usually closes the gap within a minute. If a Google outage runs for hours, you'd see this as occasional double-bookings against personal meetings — rare, but worth knowing.
Auth-class failures (the more serious case — Google rejecting your token) are NOT fail-open. The amber banner tells you to reconnect; until you do, the integration is paused for safety.
5. Disconnecting
Go to Settings → Calendar and click Disconnect.
Confirmed StudioOps bookings stop being pushed to your Google calendar. Personal-meeting blocks stop being read. Your existing pushed events stay where they are in Google Calendar (StudioOps doesn't delete them on disconnect).
You can also revoke the connection from Google's side: Google Account → Security → Third-party apps with account access → StudioOps → Remove access.
6. The bits we don't do (yet)
A few honest notes on what v1 doesn't cover:
- Per-calendar selection — we read and write your primary calendar only. If you want only "work" bookings on a separate calendar, the workaround is to make that calendar your primary. Selection across multiple calendars is on the post-launch roadmap.
- Bidirectional event creation — events you create in Google Calendar manually don't become StudioOps appointments. Google → StudioOps is busy-blocks only, not full event sync.
- Free/busy across multiple calendars — even with multiple calendars on the same Google account, we only read busy from your primary. A meeting on a secondary calendar wouldn't block a StudioOps slot.
- Other calendar providers — Outlook, iCloud, Yahoo — not in v1.
See also
- Setting up your people — staff availability inside StudioOps (the layer that runs on top of Google's busy-blocks).
- Booking rules and your cancellation policy — what governs which slots are offered before the calendar check runs.
Questions or stuck? Help centre at studioops.uk/help, or email help@studioops.uk.