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

# Appointment Scheduling

> Let the agent read your real availability, offer times, and book the appointment on your calendar during the call.

**Appointment Scheduling** connects the agent to your calendar. It reads genuine
availability, offers times, collects the details it needs, and books the appointment
before the call ends.

***

## Set it up

Connect your calendar first. The providers offered are **Google Calendar**,
**Microsoft Outlook**, **Cal.com V2**, **GoHighLevel** and **Calendly**.

Then, on the agent's **Basic Information** tab, click **Appointment Scheduling** under
**Choose Skills**.

<Frame>
  <img src="https://mintcdn.com/fluents/Ntis-q5QWqwCqRQw/images/product/skills/appointment-scheduling.png?fit=max&auto=format&n=Ntis-q5QWqwCqRQw&q=85&s=a178a27a47664db69e5d6107ce0b516a" alt="The Configure Appointment Scheduling dialog, with Event Type showing Select a calendar provider first until a provider is chosen" width="1567" height="574" data-path="images/product/skills/appointment-scheduling.png" />
</Frame>

| Field | What it does |
| - | - |
| **Calendar Provider** | Which connected calendar to book against. Required. |
| **Time zone** | The timezone availability is offered in. Required. |
| **Event Type** | The meeting type to book, such as a 15 minute intro call. Required, and it stays empty until you pick a provider. |
| **Location** | Where the appointment happens. Appears when your event types offer locations. |
| **Collect user's email** | Whether the agent must get an email address before booking. |

<Note>
  **Event Type** reads "Select a calendar provider first" until a provider is chosen.
  The meeting types come from your calendar, not from Fluents, so create them there.
</Note>

The length of an appointment and how far ahead the agent looks are not settable here.

***

## How the conversation goes

The agent only brings up availability if asked. It will not open with your calendar.

When asked generally, it offers the earliest opening rather than reading out a list.
If there are more than a couple of options it asks whether the person has a preferred
time, instead of reciting slots. This keeps the exchange short, which is the
difference between a booking and a hang up.

Once a time is chosen, and only then, it asks for the details it needs. It asks for
everything still missing in one sentence rather than interrogating field by field,
then confirms the booking back.

***

## Collecting an email by voice

Email addresses are where voice booking usually breaks, so the agent handles them
specifically. It reads addresses back in speakable form, saying "at" and "dot" rather
than the symbols, and spells out the part before the domain letter by letter to
confirm it.

<Tip>
  Leave **Collect user's email** off if you do not need the address. Every email
  collected by voice is a chance to get it wrong, and it adds real time to the call.
</Tip>

***

## Where to go next

* Connect the calendar: **[Google Workspace](/product/integrations/google-workspace)**, **[Outlook](/product/integrations/outlook)** or **[Cal.com](/product/integrations/cal-com)**
* Book the follow up when nobody is available now: **[Call Back Later](./call-back-later)**
* Test the booking flow before you rely on it: **[Testing an agent](/product/features/agent-testing)**


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