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 name and email, and the workflow books the appointment in Cal.com. All four are required: Cal.com doesn’t accept a booking without a name, so the agent asks for it before calling the tool.
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. If Cal.com rejects the booking, the agent gets a message telling it to apologize and offer another time, same as in Reschedule appointment.
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
Publish the workflow
Publish the workflow.
5
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. - The agent doesn’t get the reason for a rejection. If Cal.com rejects the booking, the agent always gets the same error message, without the specific reason: a step that fails and lets the workflow carry on leaves no result the router can read.
- The success check depends on an internal field from the Cal.com piece (
status: "success"), same as in Reschedule appointment. - 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.

