Book an AI Call

Hey guys,

I want to give people the option to schedule a call with our AI agent, rather than only being able to call it on demand. We already have the on-demand option, but we’d like to offer both.

What’s the best way to set this up?

I can see the Book on the Calendar (Cal.com) function, but I believe that’s for the AI agent to book an appointment for the caller during a conversation, rather than for someone to schedule a future call with the AI agent itself.

You’re reading it correctly. The Cal.com function is for the agent to book something into a calendar during a conversation. It won’t let a caller book the agent to ring them later.

For what you want, flip it around: let people book a slot on your normal Cal.com booking page, then fire an outbound call at that time. Two ways:

  1. Retell’s batch call API. POST /create-batch-call takes a trigger_timestamp (Unix ms) and Retell holds the call until then. Put a single task in the batch and it works fine as a “one scheduled call”. There’s also call_time_window if you want to keep calls inside business hours. Worth knowing the docs say a scheduled batch sits in “Planned” state and can’t be edited once scheduled, so a reschedule means creating a new one.
  2. n8n, Make or Zapier. Cal.com booking webhook, wait until the start time, then POST /v2/create-phone-call. More moving parts, but cancels and reschedules get handled properly, and you can pass their name and booking details through retell_llm_dynamic_variables so the agent opens with context. This is the route I usually take.

One thing that trips people up: /v2/create-phone-call has no delay or schedule parameter, it dials the moment you call it. So the waiting has to live either in the batch call trigger_timestamp or in your automation tool.

Are you taking the bookings through Cal.com already, or something else? Happy to sketch out the n8n side if that’s useful.

Russell
amplifyautomation.ai

Hello @chris1

The recommended approach is to use the Create Phone Call API triggered at the scheduled time via an external scheduler (e.g., a cron job, Make.com, Zapier, or your own backend).

Here’s the flow:

  1. Collect the user’s preferred time via your website/form
  2. Store the scheduled time in your system
  3. At the scheduled time, trigger the Retell Create Phone Call API to initiate an outbound call to the user

This is the standard pattern for scheduled outbound calls. The Make outbound calls page shows how to trigger calls programmatically, including a Make.com integration example.

Thank You

Thank hello8

I do have Pabbly and can see Pabbly Connect it has connection with cal, with cal can the free plan work with this or i need teams as it has the custom APIs?

Hey @chris1

I’m not sure which plan gates Cal.com webhooks. Their docs don’t say, and the pricing page reads both ways. Quickest check is Settings > Developer > Webhooks in your Cal account. If you can add one, you’re set.

Either way, the waiting doesn’t have to happen in Cal or Pabbly. Send it to Retell as a batch call, POST /create-batch-call, one task, with trigger_timestamp set to the booking start in Unix ms. Retell holds the call until then, so Pabbly fires once at booking time and it’s done. If webhooks aren’t on your plan, a scheduled Pabbly workflow polling the Cal.com API works too, just less instant.

One caveat.. Retell’s docs say a scheduled batch sits in “Planned” and can’t be edited. So if you want to skip calls for cancelled bookings, use Pabbly’s “Delay Until” instead, check the booking is still live, then POST /v2/create-phone-call.

You can definitely use pabbly to do this, but the scheduling part is what you will need to figure out. I do scheduling via cron dialer, but you can set it up any way using the retell API for the https://api.retellai.com/v2/create-phone-call endpoint.