What the model is told
Book a meeting for the customer. Check availability first, then confirm the exact time, name and email address with the customer before booking. start must be an available slot in UTC. The customer receives a confirmation email. Tell them the booking is made and give the booking uid so they can quote it later.
Request
POSThttps://api.cal.com/v2/bookings
Headers
Content-Typeapplication/jsoncal-api-version2026-02-25AuthorizationBearer YOUR_CAL_API_KEY
Body
{
"start": "{{start}}",
"eventTypeSlug": "YOUR_CAL_EVENT_TYPE_SLUG",
"username": "YOUR_CAL_USERNAME",
"attendee": {
"name": "{{name}}",
"email": "{{email}}",
"timeZone": "{{timeZone}}"
}
}Parameters
start stringThe chosen start time in UTC ISO 8601, exactly as returned by the availability check.name stringThe customer's full name.email stringThe customer's email address.timeZone stringThe customer's IANA time zone.
Engage payload
{
"source": "VOICE_AI",
"tool": {
"id": "4bb33b80-b592-4932-a0c5-5b30d4f51deb",
"type": "HTTP_REQUEST",
"label": "Create Cal.com Booking",
"name": "create_cal_com_booking",
"customName": false,
"description": "Book a meeting for the customer. Check availability first, then confirm the exact time, name and email address with the customer before booking. start must be an available slot in UTC. The customer receives a confirmation email. Tell them the booking is made and give the booking uid so they can quote it later.",
"parameters": [
{
"name": "start",
"type": "string",
"description": "The chosen start time in UTC ISO 8601, exactly as returned by the availability check."
},
{
"name": "name",
"type": "string",
"description": "The customer's full name."
},
{
"name": "email",
"type": "string",
"description": "The customer's email address."
},
{
"name": "timeZone",
"type": "string",
"description": "The customer's IANA time zone."
}
],
"config": {
"endpoint": {
"method": "POST",
"url": "https://api.cal.com/v2/bookings"
},
"headers": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "cal-api-version",
"value": "2026-02-25"
},
{
"name": "Authorization",
"value": "Bearer YOUR_CAL_API_KEY"
}
],
"body": "{\n \"start\": \"{{start}}\",\n \"eventTypeSlug\": \"YOUR_CAL_EVENT_TYPE_SLUG\",\n \"username\": \"YOUR_CAL_USERNAME\",\n \"attendee\": {\n \"name\": \"{{name}}\",\n \"email\": \"{{email}}\",\n \"timeZone\": \"{{timeZone}}\"\n }\n}",
"timeout": null
}
}
}IDs are regenerated on every copy.