Calendly MCP Server
Official Calendly-hosted MCP server for scheduling actions: list event types, find available times, book, cancel, and reschedule meetings via AI assistants.
The Calendly MCP server is an official, fully hosted Model Context Protocol endpoint at https://mcp.calendly.com that lets AI assistants and agents take real scheduling actions on a connected Calendly account. It maps tools to Calendly's public API v2, covering event types, scheduled events, invitees, availability schedules, busy times, scheduling links, routing forms, and organization management.
The server is provider-hosted only. There is no self-hosting or local deployment option, and no official open-source GitHub repository. Authentication uses OAuth 2.1 Authorization Code with PKCE (S256) and Dynamic Client Registration (DCR, RFC 7591), so the MCP client must self-register at runtime to obtain a client_id. Clients that only support pasting a pre-issued client_id/client_secret from a developer console will not work with Calendly MCP today. Required scopes are mcp:scheduling:read and mcp:scheduling:write.
Each tool ships with annotation metadata (a human-readable title and hints like readOnlyHint, destructiveHint, idempotentHint) so MCP clients can present clearer confirmations and optimize repeated calls. Calendly also offers a first-party connector in Claude (web and desktop) that wraps the same MCP server, so most users do not need to configure JSON manually.
Tools
| Tool | Description |
|---|---|
event_types-list_event_types |
List event types for a user or organization. |
event_types-get_event_type |
Retrieve event type details. |
event_types-create_event_type |
Create a new event type. |
event_types-update_event_type |
Update event type details. |
event_types-list_event_type_available_times |
List available time slots for an event type. |
event_types-list_event_type_availability_schedule |
List availability schedules attached to an event type. |
event_types-update_event_type_availability_schedule |
Update an availability schedule on an event type. |
locations-list_user_meeting_locations |
List a user's meeting locations. |
meetings-list_events |
List scheduled events with optional filters. |
meetings-get_event |
Retrieve a scheduled event's details. |
meetings-cancel_event |
Cancel a scheduled event. |
meetings-create_invitee |
Create a new booking via the Scheduling API. |
meetings-list_event_invitees |
List invitees for an event. |
meetings-get_event_invitee |
Get invitee details for an event. |
meetings-create_invitee_no_show |
Mark an invitee as a no-show. |
meetings-get_invitee_no_show |
Get no-show details. |
meetings-delete_invitee_no_show |
Remove no-show status from an invitee. |
scheduling_links-create_single_use_scheduling_link |
Create a single-use scheduling link without customization. |
shares-create_share |
Create and customize a single-use scheduling link (share). |
availability-list_user_availability_schedules |
List a user's availability schedules. |
availability-get_user_availability_schedule |
Get details of an availability schedule. |
availability-list_user_busy_times |
List busy times for a user within a range. |
routing_forms-list_routing_forms |
List routing forms. |
routing_forms-get_routing_form |
Get routing form details. |
routing_forms-list_routing_form_submissions |
List submissions for a routing form. |
routing_forms-get_routing_form_submission |
Retrieve a routing form submission. |
users-get_current_user |
Get the authenticated user. |
users-get_user |
Get a specific user by UUID. |
organizations-get_organization |
Retrieve organization details. |
organizations-list_organization_memberships |
List organization members. |
organizations-get_organization_membership |
Get membership details. |
organizations-delete_organization_membership |
Remove a member from the organization. |
organizations-list_organization_invitations |
List pending invitations. |
organizations-create_organization_invitation |
Invite a user to the organization. |
organizations-revoke_organization_invitation |
Revoke a pending invitation. |
Prerequisites
- A Calendly account with permission to authorize OAuth apps.
- An MCP client that supports OAuth 2.1 Authorization Code + PKCE and Dynamic Client Registration (DCR, RFC 7591). Clients that only accept a pre-issued
client_id/client_secretwill not work.
Server URL
https://mcp.calendly.com/
The server is fully hosted by Calendly. Self-hosting and personal access tokens are not supported.
OAuth scopes
The server requires both of:
mcp:scheduling:readmcp:scheduling:write
Connect from Claude (web or desktop)
The easiest path is the first-party Calendly connector:
- Open Claude, go to Customize in the sidebar.
- Choose Connect your tools and search for Calendly.
- Sign in to Calendly when prompted and click Approve.
Connect from a generic MCP client
For clients that support remote MCP servers with DCR, add a custom connector pointing to:
{
"mcpServers": {
"calendly": {
"url": "https://mcp.calendly.com/"
}
}
}
On first use, the client will:
- Receive a 401 with a
WWW-Authenticateresource metadata URL. - Fetch
/.well-known/oauth-protected-resourceand/.well-known/oauth-authorization-server. - POST to the registration endpoint (DCR) to obtain a
client_id. - Run OAuth 2.1 Authorization Code + PKCE (S256) and request
mcp:scheduling:read mcp:scheduling:write.
Production redirect URIs must use HTTPS with no wildcards. http://localhost and http://127.0.0.1 are accepted for local development.
- Let an assistant book, reschedule, or cancel meetings on a user's calendar from chat, without leaving the AI tool.
- Generate single-use scheduling links during outreach or support conversations and paste them into replies.
- Pull a user's busy times and event type availability so an agent can negotiate a meeting time across attendees.
- Triage scheduled events: list upcoming meetings, fetch invitee details, and mark no-shows after the fact.
- Manage routing forms and submissions, or organization memberships and invitations, via an admin-facing agent.
- "What event types do I have, and what's my next available 30 minute slot this week?"
- "Cancel my 3pm meeting with Priya tomorrow and send a note that I'll reschedule."
- "Create a single-use scheduling link for a 45 minute intro call and give it to me."
- "List everyone who booked time with me last week and flag any no-shows."
- "Invite alex@acme.com to my Calendly organization as a member."
- Official, Calendly-hosted server with no infrastructure to run.
- Broad tool coverage across event types, bookings, availability, routing forms, and org admin.
- Uses standards-based OAuth 2.1 + PKCE with Dynamic Client Registration, so no manual app provisioning.
- Tools ship with MCP annotation hints (
readOnlyHint,destructiveHint,idempotentHint) for safer agent UX.
- No self-hosting or local deployment option, and no official open-source repository.
- Requires an MCP client that supports Dynamic Client Registration; clients expecting a pasted
client_id/client_secretor personal access token are not compatible. - Personal access tokens and manually provisioned OAuth apps are explicitly unsupported, limiting scripted or headless use.
- Google Calendar MCP (nspady/google-calendar-mcp) for calendar event management on Google Calendar.
- Community Calendly MCP servers such as meAmitPatil/calendly-mcp-server and bcharleson/calendly-cli for self-hosted setups using a Calendly personal access token.
- Composio Calendly toolkit for a managed MCP wrapper around Calendly with their own auth layer.