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.
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.
Create Real-Time Booking action and choose Cal.com as the provider.
Open the Event control and pick the event this action should book from the list (synced from your Cal.com account).
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
User expresses interest in scheduling
AI collects preferences (date, time, meeting type)
Booking node checks availability against connected calendar
Available slots presented to user
User selects a time
Appointment is confirmed and created in calendar
Confirmation sent to user (email, SMS, or spoken)
Prerequisites
Before using the Real-Time Booking Node, ensure you have:
Calendar integration configured (Cal.com, Google Calendar, or other supported provider)
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:
Collect name
Collect email
Collect date preference
Collect time preference
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}
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:
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.