Skip to main content
Connecting Google Calendar is being rolled out. The calendar feed — the subscribe link that publishes your Open Therapy sessions — is available now.
Two separate things live under Availability, and they run in opposite directions. Neither is required. Both can be on at once.

Reading your calendar

Connect Google Calendar on the Calendar sync panel asks Google when you are busy — never what you are doing — and writes booked sessions only to a calendar Open Therapy creates. Google Calendar is the only provider: no Outlook, iCloud or CalDAV. The Google account you connect doesn’t have to be the account you sign in with, and connecting one doesn’t change how you sign in.

Free/busy only

The free/busy scope returns intervals and nothing else: no title, no guests, no location, no description, no attachment, no organiser. Disconnecting deletes what was stored.

Which calendars

If the grant allows it, you tick which of your calendars close hours. Names are read live and never stored. Unticking everything is a real answer: your hours are then decided here only. A grant given before that choice existed reads your primary calendar. Reconnect asks again, so you can pick the list.

What it does to your slots

A busy hour closes that slot for clients. It does not stop you: your connected calendar isn’t consulted when you book one of your own clients in, though your grid still draws the busy hour. Two things do still stop you: an existing Open Therapy session at the same time, and the buffer you keep between sessions.

When a change lands

Google tells Open Therapy when a watched calendar changes, so an appointment you move at ten past closes that hour at ten past. An hourly pass is the backstop: a grant from before that scope existed, a calendar Google will not push for (a subscribed holiday or sports calendar), or a notification that never arrived. Sync on the panel forces a read now. There is no count of busy hours and no last-checked time — the ticked list is the control. Booked Open Therapy sessions are written to the calendar we created, the moment they are booked. Nothing here can read or write your own calendars.

When a conflict appears after a booking

A booked session stays booked. Busy hours close slots that haven’t been taken; they never cancel one that has. If you accept a meeting on top of an existing session, the client is told nothing and it’s yours to resolve: reschedule the session, or move the other thing. See Managing sessions.

If the connection breaks

A grant can be withdrawn, in your Google account or by Google. The connection then stops refreshing and the panel shows the error. Reconnect from the same place; until you do, your published availability is governed by your hours alone.

Publishing your sessions out

Calendar feed gives you a URL to subscribe to from Google Calendar, Apple Calendar, Outlook or anything else that takes an ICS feed. It is one-way and read-only: editing an event in your calendar app changes nothing here, and deleting one doesn’t cancel a session. The feed carries the time, the service and a first name, and travels as a URL with a random token in it, so anyone holding it can read the feed. Rotate issues a new URL and breaks the old one immediately. Do that if the link has been shared, indexed, or added to a calendar you no longer control, then re-subscribe.
A subscribed feed sits in whatever account you added it to. Adding it to a shared or work calendar puts client first names and session times in front of whoever else can see that calendar.