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

> ## Agent Instructions
> Use the public API base URL: https://api.teamfollowup.ai/api.
> Authenticate public API requests with Authorization: Bearer YOUR_API_KEY.
> Use product-owned terms: agents, campaigns, projects (GoHighLevel sub-accounts), contacts, calls, outcomes, skills, cadences, phone numbers.
> Scope requests by locationId rather than projectName.
> Read the guide linked from each API reference group before recommending an endpoint.

# Appointment Booking

> Choose where this capability books appointments and when it should offer them.

Appointment Booking lets your agent offer available times and book the time the
caller accepts. Add it from **Skills & Tools**, then select a calendar for that
installation. Its settings belong to the capability on this campaign.

## Outbound and inbound campaigns

The capability's calendar is where new appointments are booked. The campaign's
trigger stays the same: an outbound campaign starts from its trigger (a tag, by
default); an inbound campaign starts from an incoming call.

With **Conditional routing** on, calendar rules can choose a different calendar
for a matching lead. The first matching rule wins, with the **Default calendar**
as fallback. Changing the default does not remove those rules.

<img className="block dark:hidden" src="https://mintcdn.com/teamfollowupai/QX4GFVxyRVTtiDDs/images/skills/calendar-rules-light.gif?s=d93b6adc9c414ddd271f5cbb0ad47eaf" alt="A lead whose service is roofing is checked against the rules from the top. The solar rule does not match, the roofing rule does, so the appointment goes on the Roofing calendar. The default calendar is used only when no rule matches." width="1000" height="360" data-path="images/skills/calendar-rules-light.gif" />

<img className="hidden dark:block" src="https://mintcdn.com/teamfollowupai/QX4GFVxyRVTtiDDs/images/skills/calendar-rules-dark.gif?s=ea61187480a0a933257538a31f265ec5" alt="A lead whose service is roofing is checked against the rules from the top. The solar rule does not match, the roofing rule does, so the appointment goes on the Roofing calendar. The default calendar is used only when no rule matches." width="1000" height="360" data-path="images/skills/calendar-rules-dark.gif" />

## Confirmation campaigns

A confirmation campaign watches appointments on the calendar selected on its trigger.
Rescheduling currently uses that same calendar. There is no separate booking
calendar, conditional booking routing or address-collection setting here.

## When booking is absent

A calendar value or an instruction to book does not install a capability. Check
**Skills & Tools** to see what this agent actually has. Removing Appointment
Booking does not remove the agent or turn its campaign into another type.

## In the API

* [Update campaign](/api-reference/campaigns/update-campaign) installs or edits it under `capabilities.appointment_booking`, with the calendar as `config.calendarId`
* [Get campaign](/api-reference/campaigns/get-campaign) reads the current setting and the `expectedVersion` to send back
* [The tool library](/skills/tool-library) lists every capability
