For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
AcademyContact SalesHelp CenterDashboard
DocumentationAPI ReferenceIntegrationsAdministrationChangelog
DocumentationAPI ReferenceIntegrationsAdministrationChangelog
  • Get Started
    • Introduction
    • Aurora
  • Build
    • Create an Agent
    • The Agent Editor
    • Single-Prompt Agents
      • Getting Started
      • Multi-Agent System
        • Global Settings
        • Greeting Message
        • Conversation
        • Message Node
        • Branch
        • Jump To
        • Custom Action
        • Call Transfer
        • Real-Time Booking
        • End Call
      • Publishing to Live
      • Flow Designer Agents vs Single-Prompt Agents
    • Memory
    • Knowledge Base
    • Variables
    • Version Control
  • Evaluate
    • Manual Testing
    • Custom Evaluations
    • Simulations
  • Launch
    • Deployment Options
    • WhatsApp
    • Website and Apps
    • Launching a Chat Agent
    • Workflows
  • Learn
    • Analytics Dashboard
    • Logs
    • Export Call Data
  • Legal
    • Subscriber Terms
    • GTC - Direct Use (DACH)
    • GTC - Direct Use (US)
    • GTC - Distribution (DACH)
    • GTC - Distribution (US)
    • Business Associate Agreement
    • Privacy Policy
    • Imprint
    • AI Transparency Statement
    • Trust Vault
LogoLogo
AcademyContact SalesHelp CenterDashboard
On this page
  • Overview
  • Supported Platforms
  • Prerequisites
  • Connect your Cal.com account
  • Select your Cal.com event
  • Use‑case examples
  • Troubleshooting
  • Variables
  • FAQs
  • Step 1. Connect your GoHighLevel account
  • Step 2. Create an action
  • Step 3. Add the action to your agent
  • Purpose
  • How It Works
  • Prerequisites
  • Configuration
  • Step 1: Add the Node
  • Step 2: Select Booking Action
  • Step 3: Configure Required Variables
  • Typical Flow Pattern
  • Best Practices
  • 1. Collect Information Upfront
  • 2. Offer Flexible Options
  • 3. Confirm and Reassure
  • 4. Handle Booking Failures Gracefully
  • 5. Offer Rescheduling
  • Common Use Cases
  • Sales Demo Scheduling
  • Support Callback Scheduling
  • Consultation Booking
  • Multi-Service Booking
  • Advanced Features
  • Calendar Pooling
  • Buffer Times
  • Custom Fields
  • Time Zone Handling
  • Integration Options
  • Troubleshooting
  • Booking Fails Despite Availability
  • User Can’t Find Suitable Time
  • Confirmation Email Not Sent
  • FAQ
  • Next Steps
BuildFlow Designer AgentsAbout Nodes

Real-Time Booking Node

Schedule appointments directly from your conversation flow
||View as Markdown|
Was this page helpful?
Previous

End Call Node

Terminate conversations cleanly
Next
Built with

Real-time booking integrations allow your AI agent to check calendar availability and schedule appointments during phone conversations. The agent can propose available time slots, confirm bookings instantly, and send confirmation details—all without human intervention.

Overview

Real-time booking actions connect your agent to your calendar system, enabling it to:

  • Check real-time availability across multiple calendars
  • Propose available time slots to customers
  • Create confirmed bookings instantly during calls
  • Handle time zone conversions automatically
  • Send booking confirmations and reminders

This integration is ideal for businesses that want to automate appointment scheduling while maintaining a conversational, helpful experience for customers.

Supported Platforms

Synthflow supports real-time booking with the following calendar platforms:

Cal.com
GoHighLevel

Prerequisites

  • A Cal.com account with at least one published event type.
  • Proper availability configured in Cal.com (hosts, time buffers, timezones, and booking windows).
  • A Synthflow agent created and accessible to you.
  • Access to Synthflow Actions and the Real‑Time Booking action.

Connect your Cal.com account

Navigate to Integrations > Cal.com and provide your Cal.com API key.

Select your Cal.com event

After your Cal.com account is connected, Synthflow fetches your published event types.

  1. Create Real-Time Booking action and choose Cal.com as the provider.
  2. Open the Event control and pick the event this action should book from the list (synced from your Cal.com account).
  3. Press Save to finish creating your action.

Use‑case examples

  • Real‑time booking during calls: The agent proposes slots, confirms a time, and instantly creates a Cal.com booking.
  • 24/7 AI receptionist: Outside business hours, your agent still schedules meetings so you never miss a lead.
  • Qualification + scheduling: Ask a few qualifying questions before offering times, then book with the right host or event.

Troubleshooting

  • Calendar/event not showing: Verify the Cal.com event is published, that your API key connection is valid, and that you selected the correct event in the action. Make sure the event is visible to the host and not restricted by team settings.
  • Booking not created: Confirm the Real‑Time Booking action is attached to the agent and that your prompt contains a clear instruction to schedule. Check call logs for any errors in booking.
  • No availability returned: Ensure host calendars are connected in Cal.com and that booking windows/buffers don’t block all times.
  • Wrong time zone: Confirm the caller’s time zone detection and your event’s default time zone in Cal.com.

Variables

When you attach a real-time booking action to an agent, the action exposes a single input: lead_email. Map it to a fixed email address, or link it to any variable your agent or flow already provides (for example something collected during the call, a system field, pre-call data, or another action’s result).

In the screenshot below, lead_email is mapped to user_email, where user_email was collected earlier in the conversation.

FAQs

What happens if the time becomes double‑booked?

Cal.com checks live availability at booking time. If a slot becomes unavailable, the agent will offer alternative times and attempt a new booking.

How are time zones handled?

The integration uses the caller’s time zone when available; otherwise it falls back to the event/host defaults configured in Cal.com.

Can the caller cancel or reschedule?

Yes. Cal.com’s confirmation emails include manage links. You can also add a follow‑up flow in your agent to retrieve or modify bookings.

Does this work with team/round‑robin events?

Yes—use team or round‑robin events in Cal.com. The agent will book into whichever host Cal.com assigns per your rules.

How do I choose which Cal.com event to use?

When you configure a Real‑Time Booking action with Cal.com, open the Event field and select from the list we load from your connected account. You do not paste an Event ID from the Cal.com URL.

Do I need an API key or OAuth?

You will be asked to provide your API key once upon connection. After that, each Real‑Time Booking action lets you pick an event from the events we fetch from Cal.com.

The Real-Time Booking Node enables your AI agent to schedule appointments, meetings, and consultations in real-time by checking calendar availability and creating bookings—all within the conversation flow.


Purpose

Use the Real-Time Booking Node when you need to:

  • Schedule appointments (demos, consultations, support calls)
  • Check calendar availability in real-time
  • Book confirmed time slots directly
  • Send confirmation details to users and internal systems
  • Reduce scheduling friction (no back-and-forth emails)

How It Works

  1. User expresses interest in scheduling
  2. AI collects preferences (date, time, meeting type)
  3. Booking node checks availability against connected calendar
  4. Available slots presented to user
  5. User selects a time
  6. Appointment is confirmed and created in calendar
  7. Confirmation sent to user (email, SMS, or spoken)

Prerequisites

Before using the Real-Time Booking Node, ensure you have:

  1. Calendar integration configured (Cal.com, Google Calendar, or other supported provider)
  2. Booking action created in your Actions settings
  3. Calendar availability properly configured (business hours, buffer times)

For setup instructions, see:

  • Create a Real-Time Booking Action
  • Cal.com Integration

Configuration

Step 1: Add the Node

  1. In Flow Designer, click Add
  2. Select Real-Time Booking
  3. Name the node descriptively (e.g., “Schedule Demo Call”)

Step 2: Select Booking Action

Choose the booking action you created in your Actions settings:

  • Each action corresponds to a specific calendar or event type
  • Example: “Sales Demo,” “Support Consultation,” “Onboarding Call”

Step 3: Configure Required Variables

The booking node typically requires:

  • Date preference: {preferred_date}
  • Time preference: {preferred_time} or time range
  • Duration: Automatically determined by event type
  • User details: {user_name}, {user_email}, {user_phone}

These variables should be collected in Collect Variables nodes before the booking node.


Typical Flow Pattern

Here’s a common pattern for implementing real-time booking:

[Greeting]
↓
[Conversation: "Would you like to schedule a demo?"] → {wants_demo}
↓
[Branch: {wants_demo} == "yes"]
↓ (Yes)
[Conversation: "What's your name?"] → {user_name}
↓
[Conversation: "What's your email?"] → {user_email}
↓
[Conversation: "What date works for you?"] → {preferred_date}
↓
[Conversation: "Morning or afternoon?"] → {time_preference}
↓
[Real-Time Booking: Check availability and book]
↓
[Branch: Booking successful?]
↓ (Yes)
[Message: "Perfect! Your demo is scheduled for {booked_date} at {booked_time}."]
↓ (No)
[Message: "I'm sorry, we don't have availability at that time. Let me suggest alternatives..."]
[Jump back to date collection or offer alternatives]

Best Practices

1. Collect Information Upfront

Gather all required details before attempting to book:

✅ Correct order:

  1. Collect name
  2. Collect email
  3. Collect date preference
  4. Collect time preference
  5. Attempt booking

❌ Avoid: Trying to book without complete information, then having to go back and collect missing details.


2. Offer Flexible Options

❌ Don’t Do This✅ Do This Instead
”I can only do Tuesday at 2pm. Take it or leave it.""What day works best for you? I’ll check what times are available.”

Then present options:
“I have openings at 10am, 2pm, and 4pm on that day. Which works for you?“

3. Confirm and Reassure

After booking, confirm the details and explain next steps:

Example:

"Perfect! Your demo with {agent_name} is confirmed for {date} at {time}. You'll receive a calendar invite at {user_email} with the meeting link. Is there anything else you'd like to know?"

4. Handle Booking Failures Gracefully

Not every booking attempt will succeed. Plan for failures:

[Real-Time Booking Node]
↓
[Branch: Did booking succeed?]
↓ (Yes)
[Message: Confirmation message]
↓ (No)
[Message: "I'm sorry, that time isn't available. Let me check other options."]
↓
[Conversation: "Would you prefer an earlier or later time?"]
↓
[Jump back to Real-Time Booking with new preferences]

5. Offer Rescheduling

Allow users to change their mind:

[Message: "Your demo is scheduled for {date} at {time}."]
↓
[Conversation: "Does that time work for you?"]
↓
[Branch: Needs rescheduling?]
↓ (Yes) → [Jump back to date collection]
↓ (No) → [Continue]

Common Use Cases

Sales Demo Scheduling

[Qualify lead with questions]
↓
[Branch: Qualified?]
↓ (Yes)
[Message: "Great! Let's schedule a personalized demo."]
↓
[Collect contact info and preferences]
↓
[Real-Time Booking: Sales Demo]
↓
[Confirmation]

Support Callback Scheduling

[Troubleshoot issue with AI]
↓
[Branch: Issue resolved?]
↓ (No)
[Message: "Let me schedule a call with a specialist."]
↓
[Real-Time Booking: Technical Support Call]
↓
[Confirmation with ticket number]

Consultation Booking

[Collect information about user's needs]
↓
[Branch: Needs consultation?]
↓ (Yes)
[Message: "I'd love to connect you with one of our consultants."]
↓
[Real-Time Booking: Consultation]
↓
[Message: "You're all set! Check your email for details."]

Multi-Service Booking

Route to different calendars based on service type:

[Conversation: "Which service? Haircut, Coloring, or Styling?"] → {service}
↓
[Branch: {service}]
↓ (Haircut) → [Real-Time Booking: Haircut Calendar]
↓ (Coloring) → [Real-Time Booking: Coloring Calendar]
↓ (Styling) → [Real-Time Booking: Styling Calendar]

Advanced Features

Calendar Pooling

Book across multiple team members’ calendars:

  • Configure booking action to check multiple calendars
  • Agent books with first available team member
  • User doesn’t need to choose specific person

Use cases: Sales teams, support rotations, medical practices


Buffer Times

Add buffer time before/after appointments:

  • Prevents back-to-back bookings
  • Gives teams time to prepare
  • Configure in your booking action settings

Example: 15-minute buffer = no bookings within 15 minutes of existing appointments


Custom Fields

Collect and store custom information with bookings:

  • Special requests or notes
  • Additional attendees
  • Equipment needs

Pass these as variables to the booking node.


Time Zone Handling

Ensure correct time zone handling:

  • Detect user’s time zone (via variable or API)
  • Display times in user’s local time
  • Store appointments in correct time zone

Example:

"All times are in your local time zone ({user_timezone}). Your appointment is at {time_local}."

Integration Options

The Real-Time Booking Node works with:

  • Cal.com (recommended)
  • Google Calendar
  • Microsoft Outlook
  • Custom calendar APIs

Each requires proper authentication and configuration. See integration-specific guides:

  • Cal.com Setup
  • Real-Time Booking Action

Troubleshooting

Booking Fails Despite Availability

Possible causes:

  • Calendar sync issues
  • Permissions not properly configured
  • Time zone mismatch
  • Booking outside of configured business hours

Solution: Check your calendar integration settings and business hours configuration.


User Can’t Find Suitable Time

Possible causes:

  • Calendar is heavily booked
  • User’s availability doesn’t match business hours
  • Not enough advance notice (bookings require X hours notice)

Solution: Offer to add user to waitlist, provide alternative dates, or escalate to human scheduler.


Confirmation Email Not Sent

Possible causes:

  • Email address not collected or invalid
  • Email integration not configured
  • Spam filters blocking confirmation

Solution: Verify email collection, check integration settings, provide confirmation verbally as backup.


FAQ

Can users book appointments outside of business hours?

No, unless you explicitly configure it. Business hours are set in your booking action configuration. Attempts to book outside these hours will be declined with alternative suggestions.

What happens if two people try to book the same time slot?

The first booking succeeds. The second attempt will be told that time is no longer available and offered alternatives. Real-time syncing prevents double-booking.

Can users reschedule or cancel via the AI agent?

This depends on your configuration. You can create separate flows for:

  • Rescheduling (modify existing appointment)
  • Cancellation (delete appointment)

These typically require the user to provide a booking reference or identifier.

How far in advance can users book?

This is configured in your booking action settings. Common configurations:

  • Minimum notice: 24 hours (prevents last-minute bookings)
  • Maximum advance: 90 days (prevents bookings too far out)
Can I charge for appointments during booking?

Yes, with additional integration. You can:

  1. Collect payment information
  2. Process payment via Custom Action (Stripe, etc.)
  3. Only create booking if payment succeeds

See Stripe Integration for details.

Can different team members have different availability?

Yes. Set up separate booking actions for each team member or role, each linked to their individual calendar. Route users to the appropriate action based on their needs.


Next Steps

  • Create a Real-Time Booking Action
  • Cal.com Integration Guide
  • Collect Variables Node for gathering booking details
  • Branch Nodes for handling booking outcomes