Related workflows: Find appointment (Cal.com) and Check availability (Cal.com).Related agents: Appointment management (Cal.com).
What it does
The agent passes it the booking’s identifier (booking_uid, obtained from Find appointment) and the new date and time (start_date, in local time), and the workflow moves the booking in Cal.com to the new slot.
Unlike Create appointment, this workflow does distinguish between success and failure: if Cal.com rejects the change (for example, because the slot just got taken), the agent gets a message meant for apologizing and offering alternatives, instead of being left with no response.
It’s a during-call workflow running in sync mode.
How it works
The reason for the change (
reschedulingReason) isn’t collected from the customer: the template always sends it empty to Cal.com, even though the action supports it.
What you need
- A Cal.com connection
- The Find appointment (Cal.com) workflow, to get the
booking_uid - The Check availability (Cal.com) workflow, to check the new slot is free before calling this tool
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 Reschedule booking in Cal step, add your Cal.com connection.
3
Check the time zone
Europe/Madrid appears in the zona input of the Convert date to UTC step. If you operate in a different time zone, change it there.4
Add the reason for the change (optional)
If you want the reschedule reason recorded in Cal.com, replace the empty Rescheduling Reason value in the Reschedule booking in Cal step with a variable collected from the customer, the same way Cancel appointment does with
cancellation_reason.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
reschedule_appointment. This step isn’t needed if the workflow was created from the agent.Before publishing
- It doesn’t check availability on its own. The agent has to have already called
check_availabilityfor the new slot; this workflow only attempts the change and lets Cal.com accept or reject it. - The reschedule reason isn’t saved unless you configure it yourself (see the step above).
- The success check depends on an internal field from the Cal.com piece (
status: "success"). If Cal.com changed that value in a future version of the integration, the router would stop telling the two cases apart correctly. - The appointment type can’t be changed here. Rescheduling only moves the time; if the customer wants a different appointment type, the booking has to be canceled and a new one created.
Next Steps
Find appointment (Cal.com)
Where the uid this workflow needs comes from.
Check availability (Cal.com)
Checks the new slot before rescheduling.
Appointment management (Cal.com)
The agent that uses this workflow.

