Skip to main content
The Calendar Booking stage integrates appointment scheduling into your voice agent. Callers can check availability, book, cancel, or reschedule appointments.

Overview

Calendar Booking nodes connect to your calendar system to:
  • Check available time slots
  • Book new appointments
  • Cancel existing bookings
  • Reschedule appointments
  • Look up appointment details
Calendar Booking nodes are colored green with purple accents and are inherently global (available throughout the flow).

Configuration

Enabled Operations

Select which calendar operations this node can perform:
OperationDescription
check_availabilityFind available time slots
bookCreate a new appointment
cancelCancel an existing appointment
updateReschedule an appointment
findLook up an existing appointment
Enable only the operations needed for your use case.

Duration

Appointment length in minutes (15-480).
Duration: 30  # 30-minute appointments

Appointment Type

Label for the type of appointment:
Appointment Type: "Consultation"
# or
Appointment Type: "Demo Call"
# or
Appointment Type: "Support Session"

Confirmation Settings

SettingDescription
Require ConfirmationAsk caller to confirm before booking
Auto Check AvailabilityAutomatically check slots before offering times
Days to CheckHow far ahead to look (1-90 days)

Business Hours

Define when appointments can be scheduled:
Business Hours:
  Start: "09:00"
  End: "17:00"

Messages

MessageWhen Used
Success MessageBooking completed successfully
Failure MessageBooking could not be completed

Transitions

Calendar Booking nodes have operation-specific transitions:
TransitionTrigger
BOOKING_SUCCESSAppointment booked successfully
BOOKING_FAILEDBooking operation failed
SLOT_AVAILABLEAvailable slots found
SLOT_UNAVAILABLENo slots available
APPOINTMENT_FOUNDExisting appointment located
APPOINTMENT_NOT_FOUNDNo matching appointment

Example Configurations

Operations: [check_availability, book]
Duration: 30 minutes
Type: "Consultation"
Require Confirmation: true
Auto Check: true
Days to Check: 14
Business Hours: 09:00 - 17:00

Success Message: |
  Your appointment is confirmed for {{appointment_time}}.
  You'll receive a confirmation email shortly.

Failure Message: |
  I'm sorry, I couldn't complete the booking.
  Would you like to try a different time?

Transitions:
  - BOOKING_SUCCESS → End Call (Success)
  - BOOKING_FAILED → Conversation (Retry)
  - SLOT_UNAVAILABLE → Conversation (Alternatives)
Operations: [check_availability, book, cancel, update, find]
Duration: 60 minutes
Type: "Service Appointment"
Require Confirmation: true
Auto Check: true
Days to Check: 30
Business Hours: 08:00 - 18:00

Success Message: |
  Done! Your appointment details have been updated.

Failure Message: |
  I encountered an issue. Let me connect you with
  our scheduling team.

Transitions:
  - BOOKING_SUCCESS → Confirmation Node
  - BOOKING_FAILED → Human Transfer
  - APPOINTMENT_NOT_FOUND → Data Extraction (get details)
Operations: [check_availability]
Duration: 45 minutes
Days to Check: 7
Business Hours: 10:00 - 16:00

Transitions:
  - SLOT_AVAILABLE → Data Extraction (collect info)
  - SLOT_UNAVAILABLE → Conversation (offer callback)

Conversation Flow Example

Here’s how a typical booking conversation flows:
Agent: "I can help you schedule an appointment. What day works best for you?"
Caller: "How about next Tuesday?"
Agent: "Let me check availability for Tuesday... I have openings at 10 AM,
        2 PM, and 4 PM. Which would you prefer?"
Caller: "2 PM works"
Agent: "Great! I have you down for Tuesday at 2 PM for a 30-minute
        consultation. Should I confirm this booking?"
Caller: "Yes, please"
Agent: "Your appointment is confirmed for Tuesday, January 15th at 2 PM.
        You'll receive a confirmation email shortly. Is there anything else?"

Integrating with Data Extraction

Combine Calendar Booking with Data Extraction for complete flows:
┌─────────────────┐
│  Data Extract   │
│  - name         │
│  - email        │
│  - date pref    │
└────────┬────────┘
         │ all_extracted

┌─────────────────┐
│Calendar Booking │
│  check & book   │
└────────┬────────┘
         │ BOOKING_SUCCESS

┌─────────────────┐
│    End Call     │
│  Confirmation   │
└─────────────────┘

Best Practices

Confirm Before Booking

Always enable confirmation to prevent accidental bookings.

Offer Alternatives

When preferred times aren’t available, suggest 2-3 alternatives.

Set Realistic Windows

Don’t offer times too far in advance. 2 weeks is usually sufficient.

Handle Failures

Always have a fallback path for booking failures (human transfer or callback).