What the model is told
Book a meeting for the customer. First check availability, then confirm the exact time, name and email address with the customer before booking. start_time must be an available slot exactly as returned, in UTC. The customer receives a Calendly confirmation email. Tell them the booking is made, or that the slot was taken if it fails and offer another time.
Request
POSThttps://api.calendly.com/invitees
Headers
Content-Typeapplication/jsonAuthorizationBearer YOUR_CALENDLY_PERSONAL_ACCESS_TOKEN
Body
{
"event_type": "https://api.calendly.com/event_types/{{eventTypeId}}",
"start_time": "{{startTime}}",
"invitee": {
"name": "{{name}}",
"email": "{{email}}",
"timezone": "{{timezone}}"
}
}Parameters
eventTypeId stringThe UUID of the Calendly event type, the last part of its API URI.startTime stringThe chosen start time in UTC, 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": "c4a489a1-3d90-4c00-a211-fd296e8889de",
"type": "HTTP_REQUEST",
"label": "Book Calendly Meeting",
"name": "book_calendly_meeting",
"customName": false,
"description": "Book a meeting for the customer. First check availability, then confirm the exact time, name and email address with the customer before booking. start_time must be an available slot exactly as returned, in UTC. The customer receives a Calendly confirmation email. Tell them the booking is made, or that the slot was taken if it fails and offer another time.",
"parameters": [
{
"name": "eventTypeId",
"type": "string",
"description": "The UUID of the Calendly event type, the last part of its API URI."
},
{
"name": "startTime",
"type": "string",
"description": "The chosen start time in UTC, 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.calendly.com/invitees"
},
"headers": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer YOUR_CALENDLY_PERSONAL_ACCESS_TOKEN"
}
],
"body": "{\n \"event_type\": \"https://api.calendly.com/event_types/{{eventTypeId}}\",\n \"start_time\": \"{{startTime}}\",\n \"invitee\": {\n \"name\": \"{{name}}\",\n \"email\": \"{{email}}\",\n \"timezone\": \"{{timezone}}\"\n }\n}",
"timeout": null
}
}
}IDs are regenerated on every copy.