Overview
The calendar booking tools run a complete booking flow that interacts with the user, checks availability, and creates an appointment in the connected provider. Each provider has its own tool with the same shared behaviour; the provider-specific pages list every setting. The tool outputresult is true when the booking flow completes successfully and false when it does not.
Available Tools
What the Booking Tool Does
Each calendar booking tool runs a booking flow that:- Loads availability for the configured calendar/service.
- Asks the user for a date and time, or responds when they ask what is available.
- Checks the user’s requested date/time against available slots.
- Confirms the selected slot with the user.
- Creates the appointment in the connected calendar provider.
- Optionally sends an SMS confirmation.
How Availability Works
Availability is prepared before the user chooses a time. The system fetches the provider’s available slots for the configured number of weeks, formats those slots for the assistant, and stores the machine-readable slot list for later validation. When a user asks for options, the assistant checks the available slots and offers the most relevant choices based on the user’s request. If the user asks for a specific date, time, time of day, or a pair of options, the flow tries to match that request to the available slots and then asks for confirmation before booking.How Booking Works
The booking flow keeps the conversation natural while still validating the final appointment time before it creates anything in the calendar provider. First, the assistant asks the user for a date and time. If the user gives a partial answer, such as only a day or only a time, the flow asks for the missing detail. If the user asks what is available, the assistant offers suitable options from the loaded availability. Once the user has chosen or confirmed a time, the flow extracts the date and time from the conversation, then checks that selected time against the availability loaded for the provider. If the selected time is not available, the assistant offers nearby alternatives or asks the user to choose another time. When a valid slot is confirmed, the flow creates the appointment through the configured provider. Provider-specific settings decide where the appointment is created, who it is assigned to, how long it is, and which calendars or staff members are checked. After a successful booking, the flow stores confirmation details that later script steps can use, such as the provider booking ID, booking time, and any booking link returned by the provider. If SMS confirmation is enabled and the contact has a compatible phone number, the flow sends the configured SMS message after the appointment is created.Common Settings
Every provider tool shares these settings:| ID | Setting | Type | Required | Default | What it does |
|---|---|---|---|---|---|
0 | Number of Weeks | integer | No | 4 | Weeks to check availability. Tool definition range is 1-8. |
1 | SMS Message | text | No | empty | Custom SMS confirmation message. Written to {{sms.message}}. |
3 | Booking Purpose | text | No | empty | Purpose of the appointment. Written to {{calendar.purpose}}. |
5 | Check Timezone Before Booking | boolean | No | false | Whether the flow verifies the user’s timezone before booking. Written to {{timezone.check_timezone}}. |
6 | Send SMS Confirmation | boolean | No | true | Whether to send an SMS confirmation after booking. Written to {{calendar.sms_flag}}. |
7 | Booking Window Start Offset (Minutes) | integer | No | 15 | Availability starts this many minutes after call start. |
Shared Global Variables
Every provider tool writes the same{{calendar.*}} variables. Provider pages note any provider-specific meaning.
| Variable | When set | Meaning |
|---|---|---|
{{calendar.purpose}} | Tool entry | Booking purpose configured on the tool. |
{{sms.message}} | Tool entry | Custom SMS confirmation message. |
{{timezone.check_timezone}} | Tool entry | Timezone verification flag. |
{{calendar.sms_flag}} | Tool entry | SMS confirmation flag. |
{{calendar.event_id}} | Availability load | Provider calendar/integration identifier. |
{{calendar.availability_spoken}} | Availability check | Latest spoken availability response. |
{{calendar.booking_time_raw}} | Slot validation and booking success | Exact selected slot in ISO date-time format. |
{{calendar.booking_time_spoken}} | Booking success | Spoken confirmation time. |
{{calendar.booking_time_written}} | Booking success | Written confirmation time for SMS, email, or on-screen copy. |
{{calendar.booking_id}} | Booking success | Provider booking ID, used to reference or cancel the booking. |
{{calendar.booking_link}} | Booking success | Booking, join, reschedule, or confirmation link when the provider returns one. |
Cancellation Behavior
If the user cancels during the same call, the flow uses the provider’s cancellation path where supported. A successful cancellation clears the stored booking ID, booking link, and stored booking time values.Next Steps
- Calendly — Book through a Calendly event type
- O365 Bookings — Book through Microsoft Bookings
- Tool Steps — Learn how to configure tool steps

