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

# Google Calendar and Outlook

> The agent sees free time in your calendar and books appointments into it during the call.

## Overview

With **Google Calendar** or **Outlook (Microsoft 365)** connected, the agent
does two things during a call:

1. **checks what is free** on the day the caller asks about,
2. **books the meeting** - and refuses a time somebody already has.

You need no API keys and no n8n or Make scenario of your own. You sign in once
to the account whose calendar the appointments should land in.

<Note>
  The agent sees busy time and adds new events. It never deletes or changes
  existing entries.
</Note>

## Connecting the account

1. Open **Integrations** and the **Google Calendar** or **Outlook Calendar**
   tile.
2. Click **Connect with Google** (or **Connect with Microsoft**) and accept the
   permissions on the provider's screen.
3. You land back in the panel, and the connection is listed under the account's
   address. Its settings open straight away: check the hours, days and meeting
   length and click **Save**.

Calendars are available on every plan, including Free.

## When the agent may book

The settings open on their own right after you connect; change them later with
the pencil next to the connection. The fields come filled with the defaults
below.

| Field | Default | What it does |
| - | - | - |
| **Timezone** | `Europe/Warsaw` | Callers give a local time; this is the zone the agent reads it in. |
| **Book from / until** | `08:00` - `20:00` | Outside these hours the agent neither offers nor books a time. |
| **Days the agent may book** | every day | `1-5` is Monday to Friday, `1-6` adds Saturday. 1 is Monday. |
| **Meeting length** | 30 minutes | How long an appointment takes unless the agent settles otherwise. |
| **Calendar ID** (Google only) | main calendar | Another calendar's id: Settings for that calendar -> Integrate calendar. |

<Tip>
  The default hours are wide on purpose. If the salon takes clients from 9 to 5,
  say so here - a sentence in the agent's prompt alone will not stop a booking at
  7 pm.
</Tip>

## Turning it on in the agent

In the agent editor, **Integrations** tab, switch on **Schedule meeting** and
pick the connection. Under **When to use it, and what to say**, say which appointments
the agent books and what it must collect, e.g. "Book consultations. Ask for the
full name and the email we will send the confirmation to."

If no connection is picked in the agent, or the picked one was removed, and the
organization has exactly one calendar, the agent uses that one. With two or more
calendars it does not guess: pick the connection in the editor.

If the caller gives an email, they receive the calendar invitation, addressed
by their name. The name and phone number also go into the event description.

## What it looks like in a call

1. Caller: *"I'd like to come in on Thursday afternoon."*
2. The agent checks Thursday and offers two or three free times.
3. The caller picks one, and the agent reads the date and time back.
4. The agent books the meeting and confirms it only once the calendar answers.

When a day is full, the agent names the next day with an opening straight away
(it looks up to 7 days ahead). When somebody took the chosen time in the
meantime, the agent is told what is left and offers another.

Two calls booking the same calendar at the same moment cannot both get the
same time. Bookings into one calendar on one day go one at a time, and the
calendar is read again right before the event is created; the second caller's
agent hears that the time was just taken and offers another. A meeting the
agent has just booked counts as taken for the next few minutes even if Google
or Outlook does not list it yet.

## The calendar in the panel

Events from connected calendars show on the **Calendar** page of the panel,
alongside Cal.com bookings and [the organization's own calendars](/en/features/calendar).

## When something is off

| Symptom | Cause | What to do |
| - | - | - |
| Connection test: "no longer accepts this sign-in" | Access was revoked, or the account's password changed | Pencil next to the connection -> **Reconnect the account**. Agents need no changes. |
| The agent says it cannot check the calendar and takes details for a call back | Same as above - in a call the agent never confirms a time it could not book | Reconnect the account |
| The agent never offers Saturdays | The **Days** field says `1-5` | Change it to `1-6` |
| The agent says it cannot book, or gives a date years back | No calendar is picked in the agent and the organization has several (or none switched on) | Agent editor -> **Integrations** -> **Schedule meeting** -> pick the connection |
| The agent offers a time that is taken | The event is marked "free", or the invitation was declined | Mark the event as "busy" in the calendar |

## Older webhook connections

Google Calendar connections created earlier through an n8n/Make webhook keep
working, but they only write - the agent cannot see busy time through them. To
move to sign-in, open such a connection with the pencil and click **Connect
with Google**. The connection keeps its id, so agents do not need re-pointing.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.