Skip to main content
Glama

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 info

  • list_event_types — your bookable event types (e.g. "30 Minute Meeting")

  • list_scheduled_events — bookings on your calendar

  • get_scheduled_event — full details of one booking

  • list_event_invitees — who booked, and their answers to your questions

  • cancel_scheduled_event — cancel a booking

  • get_event_type_available_times — open slots for an event type

  • create_scheduling_link — generate a single-use booking link to share

1. Get a Calendly Personal Access Token

  1. Log into Calendly in your browser.

  2. Go to Account Settings → Integrations → API & Webhooks.

  3. 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.txt

3. Configure your token

cp .env.example .env

Open .env and paste your token in place of the placeholder:

CALENDLY_API_TOKEN=your_actual_token_here

4. Test it locally with the MCP Inspector

mcp dev server.py

This 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.json

  • Windows: %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_event tool (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

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