## Overview

The AI agent can handle scheduling inside the conversation itself: read an event type's free times,
**send the link** for the customer to choose, or **book directly** the time you agreed on. It uses
exactly the same rules as the public page — availability, buffers, notices, the overlap guard and
payment — so nothing the AI books escapes your configuration.

You decide which of these actions the agent may use; none of them is on by default.

## Prerequisites

- **Agenda** module enabled, with at least one published **event type**.
- An AI agent configured on the account.
- The agenda tools enabled on that agent (they appear in its tool list).

## Step by step

1. Open the AI agent's configuration and enable the agenda tools you want: **list event types**,
   **read free times**, **send booking link**, **book appointment**, **reschedule**, **cancel** and
   **list the contact's appointments**.
2. Choose the approval mode. Actions that touch the customer's calendar or send a message — book,
   reschedule, cancel, add a guest and send the link — ask for **human approval** before running while
   the agent is in hybrid mode.
3. In the conversation the agent asks for what it needs (day, time of day, customer details) and uses
   the tools.
4. You approve the action in the conversation; only then does it happen.

## Settings & options

- **Read free times**: the agent reads an event type's times **per date window**. It should always ask
  for one day (or a few days) at a time — the answer is deliberately bounded, so the agent sees the
  right day instead of a huge, vague list.
- **Send booking link**: posts the public link in the conversation so the customer picks for
  themselves. It is the safest option while the customer is still deciding. Because it sends a message
  the customer sees, it goes through approval.
- **Book appointment**: reserves a slot on the customer's behalf, using one of the free times read in
  the previous step. If the event type is **paid**, the booking is created as *pending payment* and the
  charge starts — the customer still has to pay for it to confirm.
- **Reschedule / cancel**: honour the event type's **minimum cancellation notice** and **reschedule
  limit**, exactly as the customer would on the public page.
- **List the contact's appointments**: shows only the appointments of **that conversation's contact**.

## Use cases

- The customer asks "anything Thursday afternoon?" and the agent answers with that day's real times.
- The customer asks to move an appointment and the agent offers next week's options.
- The agent sends the link and lets the customer choose, without occupying an agent.
- Before booking, the agent checks whether the contact already has an appointment.

## Tips, limits & best practices

- Ask the agent to **confirm the day** before reading times. A broad query returns a few times across
  many days; a one-day query returns that whole day.
- Prefer **sending the link** while the customer has not decided, and **booking** once the time has
  been agreed in writing in the conversation.
- Keep **human approval** on for book, reschedule and cancel while you build confidence in the agent:
  there is a real customer's calendar on the other side.
- An **archived** event type accepts no new bookings, not even from the AI.

## Troubleshooting

- **The agent says there are no times**: check the event type's availability, buffers and notices — the
  AI reads the very same times as the public page.
- **The agent only shows the next few times and never moves to another day**: ask for the date
  explicitly ("September 12th"); the query is windowed, and with no date it only covers the next few
  days.
- **The booking did not confirm**: if the type is paid, it stays *pending payment* until the charge is
  paid.
- **"Slot unavailable"**: somebody took the time between the read and the confirm. Read the times again
  and pick another one.
- **The action never happened**: check whether it is waiting for **approval** in the conversation.

## See also

- [Event types, availability and buffers](/hc/ajuda/articles/calendar-scheduling-tipos-de-evento-disponibilidade-buffers-en)
- [Account scheduling defaults and inheritance](/hc/ajuda/articles/calendar-scheduling-padroes-de-agendamento-da-conta-en)
- [Public booking page](/hc/ajuda/articles/calendar-scheduling-pagina-publica-de-agendamento-en)
- [Reschedule, cancel, Google Meet and the .ics file](/hc/ajuda/articles/calendar-scheduling-reagendar-cancelar-meet-ics-en)