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`).
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".
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>.