Calendly MCP Server
Calendly MCP Server
A minimal MCP server that exposes your personal Calendly account to Claude (or any MCP client) as a set of tools, using a Personal Access Token.
Tools included
get_current_user— your profile infolist_event_types— your bookable event types (e.g. "30 Minute Meeting")list_scheduled_events— bookings on your calendarget_scheduled_event— full details of one bookinglist_event_invitees— who booked, and their answers to your questionscancel_scheduled_event— cancel a bookingget_event_type_available_times— open slots for an event typecreate_scheduling_link— generate a single-use booking link to share
1. Get a Calendly Personal Access Token
Log into Calendly in your browser.
Go to Account Settings → Integrations → API & Webhooks.
Under Personal Access Tokens, click Generate New Token, name it (e.g. "MCP Server"), and copy the value — Calendly only shows it once.
2. Install dependencies
cd calendly-mcp
python3 -m venv venv
source venv/bin/activate # on Windows: venv\Scripts\activate
pip install -r requirements.txt3. Configure your token
cp .env.example .envOpen .env and paste your token in place of the placeholder:
CALENDLY_API_TOKEN=your_actual_token_here4. Test it locally with the MCP Inspector
mcp dev server.pyThis opens a local web UI where you can call each tool directly and see the raw Calendly API responses — the fastest way to catch bugs before wiring it into a client.
5. Connect it to Claude Desktop
Local (stdio) MCP servers like this one run through Claude Desktop or Claude Code, not the claude.ai web/mobile app (which only connects to remote/hosted MCP servers via its connector picker).
Open Claude Desktop's config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add an entry (use the absolute path to your venv's python and server.py):
{
"mcpServers": {
"calendly": {
"command": "/absolute/path/to/calendly-mcp/venv/bin/python",
"args": ["/absolute/path/to/calendly-mcp/server.py"],
"env": {
"CALENDLY_API_TOKEN": "your_actual_token_here"
}
}
}
}Restart Claude Desktop. You should see "calendly" listed under available tools (hammer icon), and you can ask things like "What meetings do I have this week?" or "Cancel my 3pm tomorrow."
6. Where to go from here
Add a
reschedule_eventtool (Calendly doesn't have a direct reschedule endpoint — typically you cancel + share a new scheduling link).Add organization-level tools if you're on a Teams/Enterprise plan (
/organizations/{uuid}/memberships,/organizations/{uuid}/invitations).Add webhook support (
/webhook_subscriptions) if you want push notifications instead of polling.Wrap errors from
resp.raise_for_status()into friendlier messages — right now a bad UUID or expired token will surface as a raw HTTP error.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pranjalkumar-evonence/Calendly-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server