Related workflows: Check availability (Cal.com).Related agents: Appointment management (Cal.com).
What it does
The agent passes it the appointment type (event_type_id), the start date and time (start_date, in local time), and the customer’s email, and the workflow books the appointment in Cal.com. The customer’s name is optional.
Unlike Check availability, this workflow doesn’t re-check the slot before booking: it calls Cal.com’s booking action directly and relies on Cal.com to reject an already-taken slot.
It’s a during-call workflow running in sync mode: the agent runs it mid-conversation and waits for the response before confirming the appointment to the customer.
How it works
What you need
- A Cal.com connection
- The appointment type (
event_type_id) being booked, from the same Cal.com account Check availability (Cal.com) queries
Getting started
1
Copy the template
From the Workflows section, open the template catalog and copy it. The workflow is created disabled.
2
Select the Cal.com connection
In the Create booking in Cal step, add your Cal.com connection.
3
Check the time zone
Europe/Madrid appears in the zona input of Format start date and in the Attendee Timezone field of Create booking in Cal. If you operate in a different time zone, change both.4
Mark start_date as required
The template ships with the trigger’s
start_date parameter marked as optional, when in reality it’s always needed to book the appointment. Mark it as required before publishing: otherwise the agent can call the tool with no date, and the conversion step fails without a clear message for the customer.5
Publish the workflow
Publish the workflow.
6
Assign it to the agent
Add it from the agent’s Workflows section. The workflow’s name is the tool name the agent sees, so leave it as
create_appointment. This step isn’t needed if the workflow was created from the agent.Before publishing
- There’s no slot check right before booking. Unlike
check_availability, this workflow doesn’t re-query Cal.com before booking: if the slot got taken in the meantime, Cal.com is what rejects the booking, not the workflow. - If Cal.com rejects the booking, the agent is left with no response. The booking step is set to stop the workflow on failure, and there’s no step afterward to tell the agent what happened — unlike Reschedule appointment and Cancel appointment, which do have an error branch with a message for the customer. If you want that same behavior here, add a router that splits on the result before the final response.
- The event is created with no guests: the customer’s email stays on the Cal.com booking, but the workflow doesn’t add extra guests or notes.
- The workflow only creates. It doesn’t cancel or reschedule existing appointments; that’s what Reschedule appointment and Cancel appointment are for.
- The appointment’s length is set by the appointment type in Cal.com, not by the workflow or the agent’s prompt.
Next Steps
Appointment management (Cal.com)
The agent that uses this workflow.
Check availability (Cal.com)
The other workflow the agent needs.

