Skip to main content

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 output result is true when the booking flow completes successfully and false when it does not.

Available Tools

ToolProvider
CalendlyCalendly event type
GHLGo High Level calendar
O365 BookingsMicrosoft Bookings (Graph)
Cal.comCal.com event
GoogleGoogle Calendar
RexRex calendar

What the Booking Tool Does

Each calendar booking tool runs a booking flow that:
  1. Loads availability for the configured calendar/service.
  2. Asks the user for a date and time, or responds when they ask what is available.
  3. Checks the user’s requested date/time against available slots.
  4. Confirms the selected slot with the user.
  5. Creates the appointment in the connected calendar provider.
  6. 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:
IDSettingTypeRequiredDefaultWhat it does
0Number of WeeksintegerNo4Weeks to check availability. Tool definition range is 1-8.
1SMS MessagetextNoemptyCustom SMS confirmation message. Written to {{sms.message}}.
3Booking PurposetextNoemptyPurpose of the appointment. Written to {{calendar.purpose}}.
5Check Timezone Before BookingbooleanNofalseWhether the flow verifies the user’s timezone before booking. Written to {{timezone.check_timezone}}.
6Send SMS ConfirmationbooleanNotrueWhether to send an SMS confirmation after booking. Written to {{calendar.sms_flag}}.
7Booking Window Start Offset (Minutes)integerNo15Availability 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.
VariableWhen setMeaning
{{calendar.purpose}}Tool entryBooking purpose configured on the tool.
{{sms.message}}Tool entryCustom SMS confirmation message.
{{timezone.check_timezone}}Tool entryTimezone verification flag.
{{calendar.sms_flag}}Tool entrySMS confirmation flag.
{{calendar.event_id}}Availability loadProvider calendar/integration identifier.
{{calendar.availability_spoken}}Availability checkLatest spoken availability response.
{{calendar.booking_time_raw}}Slot validation and booking successExact selected slot in ISO date-time format.
{{calendar.booking_time_spoken}}Booking successSpoken confirmation time.
{{calendar.booking_time_written}}Booking successWritten confirmation time for SMS, email, or on-screen copy.
{{calendar.booking_id}}Booking successProvider booking ID, used to reference or cancel the booking.
{{calendar.booking_link}}Booking successBooking, 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