Available tools
These tools appear in your agent’s function menu once your account is connected. Check Availability and Book Appointment each take an event type ID, so they’re pinned to one event type. See use integration tools in an agent for how to add and configure them.Add tools to an agent
In a conversation flow, add a Function node, then choose + Add, your Cal.com connection, and a tool. In a prompt agent, use the Functions section. The connection name identifies which account the tool uses; the default OAuth name isCal.com - OAuth.

Select a tool from the Cal.com OAuth connection in a function node.
Find an event type ID
Cal.com now calls event types links, and its dashboard shows a link’s ID instead of the numeric event type ID. The tool accepts either, so tools that already have a numeric ID keep working.Open the link
Copy the link ID
/links/, up to any ?. In https://app.cal.com/links/1cBDsFTQV6qXPjkbeb1gwW?tabName=setup, it’s 1cBDsFTQV6qXPjkbeb1gwW. Copy only the ID, not the whole URL.Paste it into the tool and save

A link open in Cal.com, with its link ID outlined in the address bar.
Permissions
Both connection methods use the same six tools. Each tool runs through the connection you selected, subject to the connected account’s access and the event type’s booking rules.- OAuth: Retell requests
BOOKING_READandEVENT_TYPE_READduring authorization. You don’t select scopes separately for each tool or supply an API key for booking operations. - API key: tools use the key’s access. There are no additional per-tool permissions to grant in Retell.
team_id.
Test a booking
Check a future time window
Asia/Shanghai. Use Run a test to inspect the returned available_slots.Book a returned slot
time input uses local datetime format, such as YYYY-MM-DDTHH:mm:ss, with the timezone supplied separately. Convert a returned timestamp to that timezone before entering it; don’t just remove its UTC suffix or offset.In an agent conversation, collect the required details and ask for confirmation before entering the booking function node. A fixed Value isn’t overwritten by what the caller says; use Description for inputs the agent should fill from the conversation.Verify the result in Cal.com
Troubleshooting
Availability comes back empty
Availability comes back empty
Saving fails with "Failed to load Cal.com event type"
Saving fails with "Failed to load Cal.com event type"
List Bookings can't find the caller's booking
List Bookings can't find the caller's booking
Booking fails with HTTP 409 Conflict
Booking fails with HTTP 409 Conflict
FAQ
What happens to my agents on the built-in Cal.com tools?
What happens to my agents on the built-in Cal.com tools?
What if my scheduling lives somewhere else?
What if my scheduling lives somewhere else?
Does the attendee get a confirmation email?
Does the attendee get a confirmation email?

