> For a complete page index, fetch https://docs.synthflow.ai/llms.txt. For full documentation content, fetch https://docs.synthflow.ai/llms-full.txt.

# Real-Time Booking

> Set up a real-time booking action so your agent can check calendar availability and schedule appointments during a conversation.

Real-time booking actions let your agent connect to supported calendar systems, check availability while a call is happening, and confirm appointments without handing the caller off to another channel.

![Real-Time Booking action configured with a connected Cal.com account, a selected event, and a lead\_email variable](https://files.buildwithfern.com/synthflow.docs.buildwithfern.com/1715bf4d4c395384d434e1c5e9e842c20c2374a2ad5709f09add5b0e13488d15/docs/assets/screenshots/real_time_booking_1.png)

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:

<Tabs>
  <Tab title="Cal.com">
    ### 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.

    ![](https://files.buildwithfern.com/synthflow.docs.buildwithfern.com/400530f71b7b88a7b158ac4ef5362e9f4077ad916ab8085dea68b021c171b97b/docs/assets/screenshots/calcom_event_id.png)

    ## 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**](https://synthflow.ai/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](/logs#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](/variables#system-variables), pre-call data, or another [action’s result](/variables#action-result-variables)).

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

    ![](https://files.buildwithfern.com/synthflow.docs.buildwithfern.com/6f30866a186296d3c910e1d5febbdfc70830ca980408361fc55f2f31e45da689/docs/assets/screenshots/action-variables-picker.png)

    ## FAQs

    <AccordionGroup>
      <Accordion title="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.
      </Accordion>

      <Accordion title="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.
      </Accordion>

      <Accordion title="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.
      </Accordion>

      <Accordion title="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.
      </Accordion>

      <Accordion title="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.
      </Accordion>

      <Accordion title="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.
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="GoHighLevel">
    ### Step 1. Connect your GoHighLevel account

    <Steps>
      <Step>
        In your Synthflow dashboard, select 

        **Actions**

         on the left-hand sidebar.
      </Step>

      <Step>
        Click 

        **Real-time booking**

        .
      </Step>

      <Step>
        Click 

        <i class="fa-solid fa-plus" />

         

        **Create**

        .
      </Step>

      <Step>
        Select GoHighLevel and click 

        **Connect**

        .
      </Step>

      <Step>
        Select your Subaccount. Important: Agency account doesn't have calendars, pick a subaccount.
      </Step>
    </Steps>

    ### Step 2. Create an action

    <Steps>
      <Step>
        Click 

        **Create**

         under Real-time booking again and select GoHighLevel.
      </Step>

      <Step>
        Choose your calendar in the dropdown and click 

        **Next**

        .
      </Step>

      <Step>
        Choose a title for this calendar and switch on 

        **Automatically confirm this appointment**

        . Click 

        **Save**

        .
      </Step>
    </Steps>

    ### Step 3. Add the action to your agent

    <Steps>
      <Step>
        Select 

        **Assistants**

         on the left-hand sidebar.
      </Step>

      <Step>
        Select the agent you want to add this action to.
      </Step>

      <Step>
        Click the 

        **Actions**

         tab.
      </Step>

      <Step>
        Click 

        <i class="fa-regular fa-circle-plus" />

         

        **Add**

        .
      </Step>

      <Step>
        Select the real-time booking action you previously created.
      </Step>
    </Steps>
  </Tab>
</Tabs>