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

# Connect Google Calendar

> Hook up Google Calendar so the AI Receptionist books appointments against your real availability — no double-bookings.

When the AI Receptionist is offering appointment slots to a caller or chatter, you want it checking your real schedule, not guessing. Google Calendar integration solves that — one OAuth click and the AI Receptionist knows when you're free.

## Connect

<Steps>
  <Step title="Open Settings → Integrations">
    From your dashboard, navigate to **Settings → Integrations**.
  </Step>

  <Step title="Click 'Connect Google Calendar'">
    You'll see the Google Calendar card. Click **Connect**.
  </Step>

  <Step title="Approve the OAuth disclosure">
    Before we redirect to Google, we show you exactly what permissions we're requesting and why. Read it; click **Continue**.

    The permissions are:

    * **Read your calendar** — to check availability before suggesting slots.
    * **Write to your calendar** — to insert booked appointments.
    * **Read your email address** — for record-keeping (knowing which calendar account you connected).

    We don't read your emails, contacts, drive files, or anything else. The scopes are minimal.
  </Step>

  <Step title="Sign in with Google">
    Google's auth page loads. Sign in with the account that owns your business calendar, approve, and you'll be redirected back to ServiceBooked.
  </Step>

  <Step title="Pick a calendar">
    If your Google account has multiple calendars (work, personal, secondary), pick which one ServiceBooked should use. Most owners pick a dedicated "Bookings" calendar so the AI Receptionist doesn't pollute their personal calendar.
  </Step>
</Steps>

You're connected. The dashboard's **Calendar** view will start showing events from this calendar within seconds.

## What the AI Receptionist does with calendar access

* **Checks availability** before offering slots in conversations: "I have Tuesday at 2pm or Thursday at 10am — do either work?"
* **Respects your business hours**: even if Tuesday at 6am is technically free in your calendar, the AI Receptionist won't offer it.
* **Books confirmed appointments**: when a caller agrees, the event lands on your calendar with the contact's name, phone, and a summary of the conversation.
* **Skips already-booked slots**: in real-time. Two simultaneous callers can't get offered the same slot.

## Want visitors to book themselves on your website?

This integration lets the AI Receptionist book *for* a customer during a call, text, or chat — it doesn't put a self-serve booking calendar on your website. If you want visitors to pick their own slot from a calendar embedded on your site (a month grid with times, like a "Schedule a call" page), that's a **Cal.com** job: its inline embed drops a booking calendar onto any page and — because Cal.com syncs back to ServiceBooked via webhook — those self-booked appointments still land in your CRM. Google's own "Book now" appointment page can be embedded too, but bookings through it only appear on your Google Calendar, not as contacts/deals in ServiceBooked. See [Let customers self-book from your website](/calendar/cal-com#let-customers-self-book-from-your-website). You can keep Google Calendar connected for the AI side and use Cal.com for the on-site self-serve calendar.

## Default appointment duration

Set in **Settings → Business → Default appointment duration**. The AI Receptionist uses this when booking ("how long is a typical estimate visit?" — 30 min, 1 hour, etc.). You can override per-conversation if a customer mentions a longer-than-usual job.

## Booking rules (buffer / lead time / max-advance)

The AI respects three universal rules from **Settings → Business → Booking rules**:

* **Buffer between bookings** — the AI Receptionist keeps a gap of N minutes between back-to-back appointments and before close. Set this to your travel-time-between-jobs (e.g., 30 minutes). With a 60-minute buffer, a 9–10 a.m. appointment blocks any new slot from 8 a.m. through 11 a.m.
* **Minimum advance notice** — the AI Receptionist won't book sooner than N hours from now. Use `24` for "next-day only", `4` for "at least 4 hours notice", or `0` for same-day instant booking.
* **Maximum advance booking** — how far into the future the AI Receptionist can book. Set `30` to cap booking at a month out, leave blank for unlimited.

These apply to every booking channel — voice, SMS, and chat widget — so a customer can't sneak past a rule by switching channels.

## Blackout dates

Owner-defined date ranges the AI Receptionist must skip — vacations, training days, conference closures. Set them in **Settings → Business → Blackout dates** as one-off entries.

A few things to know:

* **Statutory holidays are automatic.** Federal/public holidays for your region (US, Canada, UK, AU, NZ, MX) are detected from your timezone and treated as closed without you having to add them. You only need blackouts for the irregular stuff.
* **Single days are fine.** Leave the end date blank to mark a single day as closed.
* **Add a label** ("Summer vacation", "Conference") and the AI Receptionist mentions it when declining a slot: "We're closed that day for Summer vacation — could you try the following Monday?"
* **For recurring closures** (e.g., daily lunch break), use **Business hours** instead — set Monday open as 9–12 and 1–5 to carve out a midday gap. Blackouts are for one-off exceptions, not weekly patterns.

The AI considers blackouts before proposing any slot, so callers and chatters never see them offered in the first place.

## What gets written to your calendar

Each AI-booked appointment writes an event with:

* **Title**: contact's name + service (e.g., "Alex Jones — Kitchen quote")
* **Time**: the slot agreed on
* **Description**: a summary of the conversation, the caller's contact info, and a link back to the contact in your dashboard
* **Location**: blank (we don't auto-set Google Maps locations — too easy to get wrong)

You can edit the event normally in Google Calendar after the fact; ServiceBooked won't fight your edits.

## What if the customer cancels or reschedules?

If the customer reaches out (call, text, chat) and asks to reschedule or cancel, the AI Receptionist handles it — updates or deletes the calendar event accordingly. Both directions sync: deleting the event from Google Calendar marks the appointment as cancelled in ServiceBooked, and vice versa.

## Disconnecting

**Settings → Integrations → Google Calendar → Disconnect**. We immediately stop accessing your calendar and revoke the tokens with Google. Existing booked events stay on your calendar (we don't delete them); the AI Receptionist just stops being able to read or write going forward.

## Multi-calendar / shared calendars

The integration is per-user. Each team member can connect their own Google Calendar account from their **Settings → Account**. By default the AI Receptionist uses the org owner's calendar; if you want round-robin booking across multiple techs, talk to support about multi-calendar configurations.

## Sync delay

Real-time. The AI calls Google's API directly when checking availability, so the calendar state it sees is the live state — even an event you created 5 seconds ago is reflected.

## Next

If you don't use Google Calendar, two alternatives:

<CardGroup cols={2}>
  <Card title="Cal.com" icon="calendar-clock" href="/calendar/cal-com">
    Open-source scheduler that works with any backing calendar.
  </Card>

  <Card title="Calendly" icon="calendar-check" href="/calendar/calendly">
    Use your existing Calendly link as a booking destination.
  </Card>
</CardGroup>
