Webhook tool

Calendly AI voice agents that book meetings without a link

The agent reads open Calendly times to the caller and books the one they choose, so nobody has to click a link.

Meeting booking agent

Offers times and books meetings.

Instructions

Ask what the meeting is about, read two available times, and book the one the caller picks. Confirm the name and email by spelling them back. If the caller wants to talk to someone first, transfer to the rep.

Handoff
Sales rep

Connected tools

  • Get available timesWebhook
  • Book meetingWebhook
  • Transfer to sales repTransfer

What a Calendly AI voice agent can do

Open one to watch a call. The grey lines are the tools the agent calls mid-sentence.

The agent reads available times for the event type from Calendly and offers the caller two that fit the day they asked for.

Tool definitions

Webhook tools go to POST /v1/agents/tools. Transfers are a system tool on the agent. Replace the placeholder values in capitals with your own.

Webhook

Get available times

Lists open times for an event type.

Show the JSON definition
get_available_times
{
  "type": "webhook",
  "name": "get_available_times",
  "description": "Lists available times for the meeting type in a date range.",
  "pre_tool_speech": "auto",
  "execution_mode": "immediate",
  "response_timeout_secs": 20,
  "api_schema": {
    "url": "https://api.calendly.com/event_type_available_times",
    "method": "GET",
    "query_params_schema": {
      "properties": {
        "event_type": {
          "type": "string",
          "constant_value": "https://api.calendly.com/event_types/YOUR_EVENT_TYPE_UUID"
        },
        "start_time": {
          "type": "string",
          "description": "Start of the range, ISO 8601 in UTC."
        },
        "end_time": {
          "type": "string",
          "description": "End of the range, ISO 8601 in UTC, no more than 31 days after the start."
        }
      },
      "required": [
        "start_time",
        "end_time"
      ]
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_CALENDLY_TOKEN"
      }
    }
  }
}

Webhook

Book meeting

Creates the booking for the chosen time.

Show the JSON definition
book_meeting
{
  "type": "webhook",
  "name": "book_meeting",
  "description": "Books the meeting for the caller.",
  "pre_tool_speech": "auto",
  "execution_mode": "immediate",
  "response_timeout_secs": 20,
  "api_schema": {
    "url": "https://api.calendly.com/invitees",
    "method": "POST",
    "request_body_schema": {
      "type": "object",
      "properties": {
        "event_type": {
          "type": "string",
          "constant_value": "https://api.calendly.com/event_types/YOUR_EVENT_TYPE_UUID"
        },
        "start_time": {
          "type": "string",
          "description": "The chosen time, ISO 8601 in UTC."
        },
        "invitee": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Caller's name."
            },
            "email": {
              "type": "string",
              "description": "Caller's email, spelled back to them."
            },
            "timezone": {
              "type": "string",
              "description": "Caller's IANA time zone, such as America/Chicago."
            }
          },
          "required": [
            "name",
            "email",
            "timezone"
          ]
        }
      },
      "required": [
        "start_time",
        "invitee"
      ]
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_CALENDLY_TOKEN"
      }
    }
  }
}

Transfer

Transfer to sales rep

Cold transfer to your sales rep.

Show the JSON definition
transfer_to_sales
{
  "config": {
    "system_tools": {
      "transfer_to_number": {
        "description": null,
        "pre_tool_speech": "auto",
        "transfers": [
          {
            "destination": {
              "type": "phone",
              "phone_number": "+14155550121"
            },
            "condition": "The caller wants to talk to a rep before booking."
          }
        ]
      }
    }
  }
}

Set it up

No native connector. The tools call Calendly's API with a personal access token or OAuth token that you store as a secret. Vendor details read in October 2026.

  1. Create an access token

    In Calendly, open the profile menu, then Developer, then Personal access tokens. Give the token availability:read and scheduled_events:write.

  2. Pick the event type

    Find its URI with the event types endpoint and store it as a constant on the tools.

  3. Add both tools

    Set the event type URI as a constant on both tools. The booking tool also sends the invitee's name, email and time zone.

  4. Test a real booking

    Book and cancel a test meeting.

Before you build

Booking needs a paid Calendly plan

Calendly requires a paid plan to use apps that call its Scheduling API. If the event type sets a location, the booking must also send a location.

Time zones

Tell the agent the caller's time zone, send it with the booking, and read the times back in that zone.

Enterprise-grade security

  • HIPAA compliant badge

    HIPAA compliant

  • SOC 2 Type 2 badge

    SOC 2 Type 2

  • GDPR badge

    GDPR

Calendly AI voice agent FAQs

Does Calendly integrate with AI voice agents?

Yes, through Calendly's Scheduling API. A Cartesia agent uses two webhook tools: one reads open times from event_type_available_times and the other books the caller with the invitees endpoint, using an access token you store as a secret. There is no Calendly app to install, and a transfer sends callers who want a person to your sales rep.

Can an AI agent book Calendly meetings on the free plan?

No. Calendly requires a paid plan to use apps that call its Scheduling API, which the booking tool uses. Your personal access token needs the availability:read scope to read times and scheduled_events:write to book. If the event type sets a location, the booking must send one too.

Can callers book a Calendly meeting without clicking a link?

Yes. The agent reads two open times for the event type, the caller picks one, and the booking tool creates the invitee with their name, email and time zone while they are still on the call. The agent spells the email back before it books, and reads times in the caller's time zone.

Can callers reschedule a Calendly meeting by phone?

Yes, if you add a tool that calls Calendly's cancel and rebook endpoints, or you transfer reschedules to your team. The tools on this page only read times and book, so add the extra tool before the agent offers to move a meeting.

What does a Calendly voice agent cost to run?

Agents run at $0.03/min, plus LLM usage and telephony. Calendly bills its own plan, and booking through the API needs a paid one. Transfers work only on Twilio and SIP trunk numbers, not on Cartesia numbers, so put the number on Twilio or a SIP trunk if the agent hands callers to staff.

Get started today

Talk to an expert.

Connect with a member of our team and learn how Cartesia can help you build world-class voice experiences.

Contact Sales

Start building.

Access our models via API and bring a voice agent into production in minutes.

Try Cartesia