> ## Documentation Index
> Fetch the complete documentation index at: https://docs.opentherapy.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Connected calendar

> Connect your own calendar so nobody books over it, and subscribe to your sessions.

<Info>
  Connecting Google Calendar is being rolled out. The calendar feed — the subscribe link that
  publishes your Open Therapy sessions — is available now.
</Info>

Two separate things live under **Availability**, and they run in opposite directions.

|                       |                                                                 |
| --------------------- | --------------------------------------------------------------- |
| **Your own calendar** | Reads when you're busy elsewhere, so clients can't book over it |
| **Calendar feed**     | Publishes your Open Therapy sessions out to any calendar app    |

Neither is required. Both can be on at once.

## Reading your calendar

**Connect Google Calendar** under **Your own calendar** asks Google for one thing: the hours you are busy. 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.

### 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.

### Sync runs hourly

A pass reads a window of your calendar and rewrites it whole, so an appointment moved, shortened, declined or deleted isn't in the next answer, and the hour comes back onto the market.

|               |                                                                           |
| ------------- | ------------------------------------------------------------------------- |
| How often     | About once an hour                                                        |
| How far ahead | 120 days                                                                  |
| Staleness     | Something you add at ten past isn't blocking bookings until the next pass |

The panel says when the calendar was last checked and how many things on it are holding hours.

<Info>
  There's no "sync now" button, and no live push from Google.
</Info>

### 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](/therapists/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.

<Warning>
  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.
</Warning>
