Docs/Bookings

Google Calendar integration

Connect Google for real-time availability and automatic appointment booking.

1. Click Connect on the Google Calendar row

In Dashboard → **Channels** tab → Google Calendar row. If your bot is in info-only mode, a small "(optional)" label sits next to it. Click Connect — we redirect to Google OAuth with scope `https://www.googleapis.com/auth/calendar`, `access_type=offline`, and `prompt=consent` (to get a refresh token). Note: this OAuth is **for the calendar**, different from Google Sign-In (which is for identity and uses scope `openid email profile`).
Google Calendar row in the Channels tab

2. Pick a calendar in the picker modal

Once you return from Google OAuth, a modal opens. Title and content vary by whether you have a team: **Without team** (solo mode): • Title: "Pick a calendar". • Subtitle: "Bookings will land in the chosen calendar". • Radio list — all your Google calendars. One has a "PRIMARY" badge (your primary calendar). • Bottom button: "Connect calendar". **With team** (barbers/specialists): • Title: "Pick a calendar for each team member". • Subtitle: "Each barber can have their own calendar". • At the top a quick dropdown "One for all — Pick a calendar for all barbers" for bulk assignment. • Below — one row per member (initials avatar + name + level + calendars dropdown; a "No calendar" option is OK). • Bottom button: "Save selection".
Picker modal — with-team and without-team variants
Tip: We recommend a separate business calendar (not your personal one). That way personal events don't mix with client bookings.

What's stored in our database

After you save — we store only the ID of the selected calendar (e.g. `primary` or a shared calendar ID) and the encrypted refresh token in `google_refresh_token_encrypted`. The actual calendar events are never stored on our side — we read them in real time when needed (to check availability) and don't cache them.

If "No calendars found"

Sometimes Google returns an empty list — rare but possible. The modal shows "We didn't find any calendars in your Google account" + a "Try again" button. Click it; if it fails again — check at `calendar.google.com` that you have at least one calendar visible to the account you're signed in with.

Disconnect / change calendar

Next to the "Connected" status on the Google Calendar row there's a menu button. From there → Disconnect removes the link and tokens (we delete the refresh token within 24 hours). To switch calendars — disconnect, then connect again and pick another. You can also revoke access from Google's side at <a href="https://myaccount.google.com/permissions" target="_blank" rel="noopener">myaccount.google.com/permissions</a>.
Google Calendar integration · rAIceptionist Docs