Calendly MCP server for AI agents and assistants

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Calendly MCP or direct API to schedule meetings, check open time slots, send invites, and manage event reminders through natural language.

Calendly logoCalendly
Oauth2

Calendly is an appointment scheduling tool that automates meeting invitations, availability checks, and reminders. It helps individuals and teams avoid endless email back-and-forth when booking meetings.

51 Tools

Try Calendly now

Type what you want done — sign in and watch it run live in the Tool Router playground.

TOOL ROUTER PLAYGROUND
Calendly
Try asking
TOOLS

Supported Tools

Every Calendly action and event your agent gets out of the box.

Cancel scheduled event

Tool to cancel a scheduled Calendly event by creating a cancellation record.

Create Event Type

Tool to create a new one-on-one event type (kind: solo) in Calendly.

Create One-Off Event Type

Creates a temporary Calendly one-off event type for unique meetings outside regular availability, requiring valid host/co-host URIs, a future date/range for `date_setting`, and a positive `duration`.

Create scheduling link

Create a single-use scheduling link.

Create share

Creates a customizable, one-time share link for a Calendly event type, allowing specific overrides to its settings (e.

Create single use scheduling link

Creates a one-time, single-use scheduling link for an active Calendly event type, expiring after one booking.

Create webhook subscription

Tool to create a webhook subscription for receiving Calendly event notifications.

Delete invitee data

Permanently removes all invitee data associated with the provided emails from past organization events, for data privacy compliance (requires Enterprise subscription; deletion may take up to one week).

Delete invitee no show

Deletes an Invitee No-Show record by its `uuid` to reverse an invitee's 'no-show' status; the `uuid` must refer to an existing record.

Delete organization membership

Tool to remove a user from a Calendly organization by membership UUID.

Delete scheduled event data

For Enterprise users, initiates deletion of an organization's scheduled event data between a `start_time` and `end_time` (inclusive, where `start_time` must be <= `end_time`); actual data deletion may take up to 7 days to complete.

Delete webhook subscription

Deletes an existing webhook subscription to stop Calendly sending event notifications to its registered callback URL; this operation is idempotent.

Get event

Use to retrieve a specific Calendly scheduled event by its UUID, provided the event exists in the user's Calendly account.

Get event invitee

Retrieves detailed information about a specific invitee of a scheduled event, using their unique UUIDs.

Get event type

Retrieves details for a specific Calendly event type, identified by its UUID, which must be valid and correspond to an existing event type.

Get event type availability

Tool to retrieve availability schedules configured for a specific Calendly event type.

Get group

Retrieves all attributes of a specific Calendly group by its UUID; the group must exist.

Get group relationship

Retrieves a specific Calendly group relationship by its valid and existing UUID, providing details on user-group associations and membership.

Get invitee no show

Retrieves details for a specific Invitee No Show record by its UUID; an Invitee No Show is marked when an invitee does not attend a scheduled event.

Get organization

Tool to retrieve information about a specific Calendly organization.

Get organization invitation

Retrieves a specific Calendly organization invitation using its UUID and the parent organization's UUID.

Get organization membership

Retrieves a specific Calendly organization membership by its UUID, returning all its attributes.

Get routing form

Retrieves a specific routing form by its UUID, providing its configuration details including questions and routing logic.

Get routing form submission

Tool to retrieve details about a specific routing form submission by its UUID.

Get sample webhook data

Tool to retrieve sample webhook payload data for testing webhook subscriptions.

Get user

Retrieves comprehensive details for an existing Calendly user.

Get user availability schedule

Retrieves an existing user availability schedule by its UUID; this schedule defines the user's default hours of availability.

Get webhook subscription

Retrieves the details of an existing webhook subscription, identified by its UUID, including its callback URL, subscribed events, scope, and state.

Mark invitee as no-show

Tool to mark an invitee as a no-show for a scheduled event.

List activity log entries

Retrieves a list of activity log entries for a specified Calendly organization (requires an active Enterprise subscription), supporting filtering, sorting, and pagination.

List event invitees

Retrieves a list of invitees for a specified Calendly event UUID, with options to filter by status or email, and sort by creation time.

List event type available times

Fetches available time slots for a Calendly event type within a specified time range; results are not paginated.

List event type hosts

Tool to retrieve a list of event type hosts (memberships) for a specific event type.

List Event Types

Tool to list all Event Types associated with a specified User or Organization.

List group relationships

Retrieves a list of group relationships defining an owner's role (e.

List groups

Returns a list of groups for a specified Calendly organization URI, supporting pagination.

List organization invitations

Retrieves a list of invitations for a specific organization, identified by its UUID.

List organization memberships

Retrieves a list of organization memberships.

List outgoing communications

Retrieves a list of outgoing SMS communications for a specified organization; requires an Enterprise subscription and if filtering by creation date, both `min_created_at` and `max_created_at` must be provided to form a valid range.

List routing forms

Retrieves routing forms for a specified organization; routing forms are questionnaires used to direct invitees to appropriate booking pages or external URLs.

List scheduled events

Tool to retrieve a list of scheduled Calendly events.

List user availability schedules

Retrieves all availability schedules for the specified Calendly user.

List user busy times

Fetches a user's busy time intervals (internal and external calendar events) in ascending order for a period up to 7 days; keyset pagination is not supported.

List User Meeting Locations

Tool to retrieve configured meeting location information for a given Calendly user.

List webhook subscriptions

Retrieves webhook subscriptions for a Calendly organization; `scope` determines if `user` or `group` URI is also required for filtering.

Invite user to organization

Tool to invite a user to a Calendly organization via email.

Create Event Invitee

Tool to create a new Event Invitee with standard notifications, calendar invites, reschedules, and workflows.

Remove user from organization

Removes a user (who is not an owner) from an organization by their membership UUID, requiring administrative privileges.

Revoke a user's organization invitation

Revokes a pending and revokable (not yet accepted or expired) organization invitation using its UUID and the organization's UUID, rendering the invitation link invalid.

Update Event Type

Tool to update an existing one-on-one event type (kind: solo) in Calendly.

Update Event Type Availability

Tool to update an event type availability schedule in Calendly.

SETUP GUIDE

Connect Calendly MCP Tool with your Agent

1

Install Composio

typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
Install the Composio SDK and your agent framework
2

Create a session with MCP enabled

typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["calendly"],
  mcp: true,
});
Create a session scoped to Calendly and read its MCP URL and headers
3

Connect your agent to the MCP server

typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "Create a single-use Calendly scheduling link for a 30-minute meeting next week.",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
Pass the session's MCP URL and headers to your agent and run a Calendly request
SETUP GUIDE

Connect Calendly API Tool with your Agent

1

Install Composio

typescript
npm install @composio/core @composio/openai openai
Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
2

Create a Composio session

typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["calendly"] });
const tools = await session.tools();
Initialize Composio with the OpenAI Responses provider and create a session scoped to Calendly
3

Run Calendly tools with your agent

typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "Create a single-use Calendly scheduling link for a 30-minute meeting next week." }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
Send a request, execute the Calendly tool calls through the session, and print the final answer
Guide

Connect multiple Calendly accounts to Claude and tell it which one to use by name.

Read the guide

Why Use Composio?

AI Native Calendly Integration

  • Supports both Calendly MCP and direct API based integrations
  • Structured, LLM-friendly schemas for reliable tool execution
  • Rich coverage for reading, writing, and querying your Calendly data

Managed Auth

  • Built-in OAuth handling with automatic token refresh and rotation
  • Central place to manage, scope, and revoke Calendly access
  • Per user and per environment credentials instead of hard-coded keys

Agent Optimized Design

  • Tools are tuned using real error and success rates to improve reliability over time
  • Comprehensive execution logs so you always know what ran, when, and on whose behalf

Enterprise Grade Security

  • Fine-grained RBAC so you control which agents and users can access Calendly
  • Scoped, least privilege access to Calendly resources
  • Full audit trail of agent actions to support review and compliance

Rolling this out across your team?

Give your team centralized access control across every framework with Composio’s MCP Gateway.

EXPLORE MCP GATEWAY
FAQ

Frequently asked questions

No. Composio provides a managed OAuth app for Calendly, so you sign in with your normal Calendly account and approve access. If you later want the consent screen to show your own company name, you can add your own Calendly OAuth app in the Composio dashboard, and every connection after that uses it.

Yes! Composio's Tool Router enables agents to use multiple toolkits. Learn more.

Yes. Composio is SOC 2 Type II compliant and is built to keep your Calendly connection and credentials secure. OAuth tokens and API keys are encrypted, and sensitive customer data is protected at rest and in transit.

Composio also undergoes independent security testing and continuously monitors its systems for security threats. You can review the latest reports and policies in the Composio Trust Center.

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

When you connect a Calendly account through Composio, every action runs under that account, so anything the agent creates, sends, or changes shows up in Calendly as done by you. Keep an approval step in your prompt for actions with side effects, such as sending or deleting, and have the agent draft first.

Exactly the ones Calendly lists on its consent screen when you connect. Review that screen before approving. If you connect a work account, your Calendly administrator may need to approve the app first, and you can revoke the access inside Calendly whenever you want.

Yes. Composio supports multiple connected accounts for the same app, and that works in Claude, ChatGPT, or any other assistant you connect through Composio. Give each Calendly connection a name such as work or personal, and the assistant uses the one you mention in the request. Each account keeps its own credentials and nothing is merged.

Composio refreshes Calendly tokens automatically, so day to day you do nothing. If you revoke access inside Calendly, or Calendly invalidates the session, the connection shows as expired in Composio and the agent stops acting on that account until you reconnect it, which is a single sign-in.

Composio's free Hobby plan includes 100,000 tool calls per month with no credit card, and up to 20,000 of those can run through Composio-managed apps like Calendly. Personal Calendly use rarely gets near that. Paid plans add higher limits and team features, and Calendly's own pricing is unaffected.

Built-in connectors usually give one AI access to a limited set of apps. Many people use Composio because it lets their AI connect to more apps than it normally supports, or connect to multiple accounts for the same app (e.g. connect Claude to multiple Calendly accounts).

With Composio, you connect Calendly once and then use it across different AI assistants without setting it up separately in each one. Connect your apps to Composio once, then connect Composio to whichever AI you use, whether that's Claude, ChatGPT, Hermes, or your own custom assistant.

Start with Calendly.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Calendly tool your agent needs.Free to start.

Start building