- Calendly API v2 client with auth, pagination, error handling - 27 MCP tools across 6 categories (events, event types, scheduling, users, orgs, webhooks) - 12 React MCP apps with dark theme and client-side state - Both stdio and HTTP modes supported - Full TypeScript types and documentation
5.0 KiB
5.0 KiB
Calendly MCP Server
Complete Model Context Protocol (MCP) server for Calendly API v2 with 27 tools and 12 React UI apps.
Features
🛠️ 27 MCP Tools
Events (8 tools)
calendly_list_scheduled_events- List events with filterscalendly_get_event- Get event detailscalendly_cancel_event- Cancel an eventcalendly_list_event_invitees- List invitees for an eventcalendly_get_invitee- Get invitee detailscalendly_list_no_shows- List no-showscalendly_mark_no_show- Mark invitee as no-showcalendly_unmark_no_show- Remove no-show status
Event Types (3 tools)
calendly_list_event_types- List event typescalendly_get_event_type- Get event type detailscalendly_list_available_times- List available time slots
Scheduling (3 tools)
calendly_create_scheduling_link- Create single-use scheduling linkcalendly_list_routing_forms- List routing formscalendly_get_routing_form- Get routing form details
Users (3 tools)
calendly_get_current_user- Get current user infocalendly_get_user- Get user by URIcalendly_list_user_busy_times- List user busy times
Organizations (6 tools)
calendly_get_organization- Get organization detailscalendly_list_organization_members- List memberscalendly_list_organization_invitations- List invitationscalendly_invite_user- Invite user to organizationcalendly_revoke_invitation- Revoke invitationcalendly_remove_organization_member- Remove member
Webhooks (4 tools)
calendly_list_webhook_subscriptions- List webhookscalendly_create_webhook_subscription- Create webhookcalendly_get_webhook_subscription- Get webhook detailscalendly_delete_webhook_subscription- Delete webhook
🎨 12 React MCP Apps
All apps feature dark theme and client-side state management:
- Event Dashboard (
src/ui/react-app/event-dashboard) - Overview of scheduled events - Event Detail (
src/ui/react-app/event-detail) - Detailed event information - Event Grid (
src/ui/react-app/event-grid) - Calendar grid view - Event Type Manager (
src/ui/react-app/event-type-manager) - Manage event types - Availability Calendar (
src/ui/react-app/availability-calendar) - View available times - Invitee List (
src/ui/react-app/invitee-list) - Manage event invitees - Scheduling Links (
src/ui/react-app/scheduling-links) - Create scheduling links - Organization Members (
src/ui/react-app/org-members) - Manage team members - Webhook Manager (
src/ui/react-app/webhook-manager) - Manage webhooks - Booking Flow (
src/ui/react-app/booking-flow) - Multi-step booking interface - No-Show Tracker (
src/ui/react-app/no-show-tracker) - Track no-shows - Analytics Dashboard (
src/ui/react-app/analytics-dashboard) - Metrics and insights
Installation
npm install
npm run build
Configuration
Set your Calendly API key as an environment variable:
export CALENDLY_API_KEY="your_api_key_here"
Get your API key from: https://calendly.com/integrations/api_webhooks
Usage
Stdio Mode (Default for MCP)
npm start
Use in your MCP client configuration:
{
"mcpServers": {
"calendly": {
"command": "node",
"args": ["/path/to/calendly/dist/main.js"],
"env": {
"CALENDLY_API_KEY": "your_api_key"
}
}
}
}
HTTP Mode
npm run start:http
Server runs on http://localhost:3000
Endpoints:
GET /health- Health checkPOST /- MCP requests (tools/list, tools/call, resources/list, resources/read)
API Client
The Calendly client (src/clients/calendly.ts) provides:
- ✅ Full Calendly API v2 support
- ✅ Bearer token authentication
- ✅ Automatic pagination handling
- ✅ Error handling with detailed messages
- ✅ Type-safe responses
Architecture
src/
├── clients/
│ └── calendly.ts # Calendly API v2 client
├── tools/
│ ├── events-tools.ts # Event management tools
│ ├── event-types-tools.ts # Event type tools
│ ├── scheduling-tools.ts # Scheduling & routing tools
│ ├── users-tools.ts # User management tools
│ ├── organizations-tools.ts # Organization tools
│ └── webhooks-tools.ts # Webhook tools
├── types/
│ └── index.ts # TypeScript definitions
├── ui/
│ └── react-app/ # 12 React MCP apps
├── server.ts # MCP server setup
└── main.ts # Entry point (stdio + HTTP)
Development
Build
npm run build
Watch Mode
npm run dev
Run React Apps
Each app is standalone:
cd src/ui/react-app/event-dashboard
npm install
npm run dev
Resources
- Calendly API Documentation: https://developer.calendly.com/api-docs
- Model Context Protocol: https://modelcontextprotocol.io
- MCP SDK: https://github.com/modelcontextprotocol/typescript-sdk
License
MIT