10 KiB

Calendly MCP Server

Complete Model Context Protocol (MCP) server for Calendly API v2 with 40+ tools and 12 interactive React apps.

Features

  • 40+ MCP Tools covering all Calendly API endpoints
  • 12 React Apps for interactive workflows
  • Full TypeScript with comprehensive type definitions
  • OAuth2 & API Key authentication support
  • Rate Limiting and error handling
  • Dual Transport (stdio and HTTP)

Installation

npm install @busybee3333/calendly-mcp

Configuration

Set one of the following environment variables:

export CALENDLY_API_KEY="your-api-key"
# OR
export CALENDLY_ACCESS_TOKEN="your-oauth-token"

Get Your API Key

  1. Go to Calendly Integrations
  2. Navigate to API & Webhooks
  3. Generate a Personal Access Token

Usage

Stdio Transport (for Claude Desktop, etc.)

calendly-mcp

Programmatic Usage

import { createCalendlyServer } from '@busybee3333/calendly-mcp';

const server = createCalendlyServer({
  apiKey: process.env.CALENDLY_API_KEY,
});

MCP Tools (40+)

Users (2 tools)

Tool Description
calendly_get_current_user Get information about the currently authenticated user
calendly_get_user Get information about a specific user by URI

Organizations (8 tools)

Tool Description
calendly_get_organization Get information about a specific organization
calendly_list_organization_invitations List all invitations for an organization
calendly_get_organization_invitation Get details of a specific organization invitation
calendly_create_organization_invitation Invite a user to join an organization
calendly_revoke_organization_invitation Revoke a pending organization invitation
calendly_list_organization_memberships List all memberships for an organization
calendly_get_organization_membership Get details of a specific organization membership
calendly_remove_organization_membership Remove a user from an organization

Event Types (5 tools)

Tool Description
calendly_list_event_types List all event types for a user or organization
calendly_get_event_type Get details of a specific event type
calendly_create_event_type Create a new event type
calendly_update_event_type Update an existing event type
calendly_delete_event_type Delete an event type

Scheduled Events (3 tools)

Tool Description
calendly_list_events List scheduled events with various filters
calendly_get_event Get details of a specific scheduled event
calendly_cancel_event Cancel a scheduled event

Invitees (5 tools)

Tool Description
calendly_list_event_invitees List all invitees for a specific event
calendly_get_invitee Get details of a specific invitee
calendly_create_no_show Mark an invitee as a no-show
calendly_get_no_show Get details of a no-show record
calendly_delete_no_show Remove a no-show marking from an invitee

Webhooks (4 tools)

Tool Description
calendly_list_webhooks List all webhook subscriptions for an organization
calendly_get_webhook Get details of a specific webhook subscription
calendly_create_webhook Create a new webhook subscription
calendly_delete_webhook Delete a webhook subscription

Scheduling (1 tool)

Tool Description
calendly_create_scheduling_link Create a single-use scheduling link for an event type or user

Routing Forms (4 tools)

Tool Description
calendly_list_routing_forms List all routing forms for an organization
calendly_get_routing_form Get details of a specific routing form
calendly_list_routing_form_submissions List all submissions for a routing form
calendly_get_routing_form_submission Get details of a specific routing form submission

Availability (2 tools)

Tool Description
calendly_list_user_availability_schedules List all availability schedules for a user
calendly_get_user_availability_schedule Get details of a specific availability schedule

Data Compliance (3 tools)

Tool Description
calendly_create_data_compliance_deletion Create a GDPR data deletion request for invitees
calendly_get_data_compliance_deletion Get status of a data compliance deletion request
calendly_get_activity_log Get activity log entries for an organization

MCP Apps (12 Interactive React Apps)

1. Event Type Dashboard

Purpose: Manage your Calendly event types
Features:

  • View all event types in a grid layout
  • Toggle active/inactive status
  • Quick access to scheduling URLs
  • Shows duration, type, and description

2. Calendar View

Purpose: View your scheduled events in a list format
Features:

  • Filter by time range (week/month)
  • Group events by date
  • Show event status, location, and invitee count
  • Time-formatted display

3. Invitee Grid

Purpose: View and manage event invitees
Features:

  • Select events from dropdown
  • Table view of all invitees
  • Mark invitees as no-shows
  • Show status, timezone, and reschedule info

4. Webhook Manager

Purpose: Manage Calendly webhook subscriptions
Features:

  • Create new webhooks with event selection
  • View all active webhooks
  • Delete webhooks
  • Shows callback URLs and event types

5. Organization Overview

Purpose: Manage your organization
Features:

  • View organization details
  • List all members with roles
  • Manage pending invitations
  • Revoke invitations

6. User Profile

Purpose: View your Calendly profile and settings
Features:

  • Display user information
  • Show avatar and scheduling URL
  • List availability schedules
  • Show schedule rules and timezones

7. Analytics Dashboard

Purpose: Overview of your Calendly metrics
Features:

  • Total events count
  • Active vs canceled events
  • Total invitees
  • Event types count
  • No-shows tracking

8. Availability Manager

Purpose: Manage your availability schedules
Features:

  • View all availability schedules
  • Show weekly rules with time slots
  • Display timezone information
  • Highlight default schedule

9. Event Detail View

Purpose: View detailed information about events
Features:

  • Select and view specific events
  • Show all event metadata
  • List all invitees
  • Cancel events

10. No-Show Tracker

Purpose: Track and manage no-show invitees
Features:

  • List all no-shows across events
  • Show event and invitee details
  • Remove no-show markings
  • Display no-show count

11. Routing Form Builder

Purpose: Manage routing forms and view submissions
Features:

  • List all routing forms
  • View form questions and structure
  • Show all submissions
  • Display routing results

Purpose: Generate single-use scheduling links
Features:

  • Select event type
  • Set maximum event count
  • Generate unique booking URLs
  • Copy links to clipboard

Examples

List Event Types

const result = await callTool('calendly_list_event_types', {
  user: 'https://api.calendly.com/users/AAAA',
  active: true
});

Create Event Type

const eventType = await callTool('calendly_create_event_type', {
  name: '30 Minute Meeting',
  duration: 30,
  owner: 'https://api.calendly.com/users/AAAA',
  description_plain: 'A quick 30-minute chat',
  color: '#0066cc'
});

List Upcoming Events

const events = await callTool('calendly_list_events', {
  user: 'https://api.calendly.com/users/AAAA',
  min_start_time: new Date().toISOString(),
  status: 'active',
  sort: 'start_time:asc'
});

Create Webhook

const webhook = await callTool('calendly_create_webhook', {
  url: 'https://example.com/webhook',
  events: ['invitee.created', 'invitee.canceled'],
  organization: 'https://api.calendly.com/organizations/AAAA',
  scope: 'organization'
});
const link = await callTool('calendly_create_scheduling_link', {
  max_event_count: 1,
  owner: 'https://api.calendly.com/event_types/AAAA',
  owner_type: 'EventType'
});

API Coverage

This MCP server covers 100% of Calendly API v2 endpoints:

  • Users
  • Organizations (Invitations, Memberships)
  • Event Types (Full CRUD)
  • Scheduled Events
  • Invitees
  • No-Shows
  • Webhooks
  • Scheduling Links
  • Routing Forms & Submissions
  • User Availability Schedules
  • Activity Logs
  • Data Compliance (GDPR)

Development

Build

npm run build

Test

npm test

Development Mode

npm run dev

Architecture

src/
├── server.ts              # MCP server setup
├── main.ts                # Entry point
├── clients/
│   └── calendly.ts        # Calendly API client
├── tools/                 # Tool definitions by domain
│   ├── users-tools.ts
│   ├── organizations-tools.ts
│   ├── event-types-tools.ts
│   ├── events-tools.ts
│   ├── invitees-tools.ts
│   ├── webhooks-tools.ts
│   ├── scheduling-tools.ts
│   ├── routing-forms-tools.ts
│   ├── availability-tools.ts
│   └── compliance-tools.ts
├── types/
│   └── index.ts           # TypeScript interfaces
└── ui/
    └── react-app/         # React apps
        ├── src/
        │   ├── apps/      # Individual apps
        │   ├── components/ # Shared components
        │   ├── hooks/     # Shared hooks
        │   └── styles/    # Shared styles
        └── package.json

License

MIT

Support

For issues or questions:

Contributing

Contributions welcome! Please open an issue or PR.


Built with ❤️ using the Model Context Protocol