@calmesh/mcp-server
Allows connecting Google Calendar to the CalMesh calendar infrastructure, enabling read/write access to events, availability checks, and booking management.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@calmesh/mcp-server check my calendar for next week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@calmesh/mcp-server
MCP server for CalMesh — AI-first calendar infrastructure. Connects AI agents to your calendars, bookings, and scheduling polls via the Model Context Protocol.
Quick Start
CALMESH_API_KEY=cm_live_... npx @calmesh/mcp-serverRelated MCP server: gg-mcp
Setup
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"calmesh": {
"command": "npx",
"args": ["@calmesh/mcp-server"],
"env": {
"CALMESH_API_KEY": "cm_live_your_key_here"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"calmesh": {
"command": "npx",
"args": ["@calmesh/mcp-server"],
"env": {
"CALMESH_API_KEY": "cm_live_your_key_here"
}
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"calmesh": {
"command": "npx",
"args": ["@calmesh/mcp-server"],
"env": {
"CALMESH_API_KEY": "cm_live_your_key_here"
}
}
}
}Available Tools
Core Tools
Read operations (require read scope)
Tool | Description |
| List all unified calendars |
| Get events within a date range |
| Get full event details (title, description, location) |
| Check available time slots |
| Find overlapping events |
Write operations (require write scope)
Tool | Description |
| Create a calendar event |
| Delete a calendar event |
Booking Tools (require book scope)
Tool | Description |
| Get available booking slots |
| Create a new booking |
| Cancel a booking |
| List bookings with pagination |
Poll Tools (require book scope for create/decide, read for list/overlap)
Tool | Description |
| Create a scheduling poll |
| List all polls |
| Get participant overlap |
| Finalize poll with chosen time |
Setup Tools (require full scope)
Tool | Description |
| Connect Google or Microsoft calendar |
| Connect CalDAV or iCal URL |
| Check connection sync status |
| List all connections |
| Remove a connection |
| Create unified calendar with sources |
| Update calendar, manage sources |
HTTP Transport
For remote or hosted MCP clients, use the HTTP transport:
CALMESH_API_KEY=cm_live_... \
CALMESH_HTTP_SECRET=your_secret_token \
npx @calmesh/mcp-server --transport http --port 3100The server binds to 127.0.0.1 by default. All requests must include Authorization: Bearer <http-secret>.
CLI Options
--api-key <key> CalMesh API key (prefer CALMESH_API_KEY env var)
--base-url <url> API base URL (default: https://calmesh.xyz)
--transport <type> stdio (default) or http
--port <port> HTTP port (default: 3100)
--host <host> HTTP host (default: 127.0.0.1)
--http-secret <token> Required for HTTP transport
--help Show help
--version Show versionTroubleshooting
"Invalid or expired API key" Generate a new API key at calmesh.xyz/dashboard/api-keys.
"Insufficient permissions"
Your API key scope is too low. Core tools need read, booking tools need book, setup tools need full.
"Rate limit exceeded" Wait a moment and retry.
"Unable to reach CalMesh API"
Check your network connection and --base-url value.
"CalMesh API request timed out" Requests time out after 30 seconds. Retry or check service status.
HTTP transport "Unauthorized"
Ensure your client sends Authorization: Bearer <http-secret> with every request.
Available Tools
22 toolscalmesh_cancel_bookingA
Cancel an existing booking by ID. Returns the booking ID and cancelled status. Requires "book" scope.
Inputs: booking_id (required).
calmesh_check_availabilityB
Check available time slots on a calendar for a given date. Returns free slots where meetings can be scheduled. Requires "read" scope.
Inputs: slug (required), date, duration, timezone.
calmesh_check_connection_statusA
Check the sync status of a calendar connection. Shows if the connection is active, errored, or disconnected. Requires "full" scope.
Inputs: connection_id (required).
calmesh_create_bookingA
Create a new booking on a booking page. Returns booking ID, status, and confirmed time. Requires "book" scope.
Inputs: start_time (required), visitor_name (required), visitor_email (required), visitor_timezone (required), +2 more.
calmesh_create_calendarA
Create a new unified calendar and optionally attach connection sources. Returns the calendar and source attachment results (may be partial on failure). Requires "full" scope.
Inputs: name (required), slug, timezone, connection_ids.
calmesh_create_eventA
Create a calendar event on a connected calendar. The event is written to the default write target (first writable source by sort order) unless a specific sourceId is provided. Use calmesh_list_calendars to find calendar slugs. Requires "write" scope or higher.
Inputs: slug (required), summary (required), end_time (required), timezone (required), +4 more.
calmesh_create_pollA
Create a scheduling poll and send invitation emails to participants. Returns the poll with a shareable URL. Requires "book" scope.
Inputs: title (required), timezone (required), participants (required), date_range_end (required), +2 more.
calmesh_decide_pollA
Finalize a poll by selecting the decided meeting time. Marks the poll as decided. Requires "book" scope.
Inputs: slug (required), decided_time (required).
calmesh_delete_eventA
Delete a calendar event from a connected calendar. Requires the remoteEventId (from calmesh_create_event or calmesh_get_events) and the sourceId identifying which calendar source to delete from. Requires "write" scope or higher.
Inputs: slug (required), source_id (required), remote_event_id (required).
calmesh_find_conflictsA
Find overlapping events (conflicts) within a date range. Returns pairs of events that overlap in time. Requires "read" scope.
Inputs: end (required), slug (required), start (required).
calmesh_get_event_detailsA
Get full event details (title, description, location) for a date range. Fetches from calendar providers on demand. Use this when you need to understand what events are about, not just when they occur. Requires "read" scope.
Inputs: end (required), slug (required), start (required).
calmesh_get_eventsA
Get calendar events within a date range. Returns event title, start/end times, status, and source connection. Requires "read" scope.
Inputs: end (required), slug (required), start (required), limit, +1 more.
calmesh_get_poll_overlapA
Get overlapping availability slots for a poll. Shows which time slots work for the most participants. Requires "read" scope.
Inputs: slug (required).
calmesh_get_slotsA
Get available booking slots for a booking page on a given date. Returns time slots visitors can book. Requires "book" scope.
Inputs: date (required), slug (required), timezone.
calmesh_list_bookingsA
List bookings with optional pagination and filtering. Returns booking details including visitor info and status. Requires "book" scope.
Inputs: limit, offset, stakeholder_id.
calmesh_list_calendarsA
List all unified calendars for the authenticated user. Returns name, slug, timezone, and default status for each calendar. Requires "read" scope.
Inputs: no named parameters.
calmesh_list_connectionsA
List all calendar connections for the authenticated user. Shows provider, status, and last sync time. Requires "full" scope.
Inputs: no named parameters.
calmesh_list_pollsA
List all scheduling polls. Returns poll details with participant counts and status. Requires "read" scope.
Inputs: no named parameters.
calmesh_manage_calendarA
Update a calendar: rename, change timezone, add/remove connection sources, set write-back connection. Returns what succeeded and what failed. Requires "full" scope.
Inputs: slug (required), name, timezone, add_connections, +2 more.
calmesh_remove_connectionA
Remove a calendar connection. This disconnects the provider and stops syncing. Requires "full" scope.
Inputs: connection_id (required).
calmesh_start_credential_connectionA
Connect a CalDAV server or iCal URL using credentials. For CalDAV: server URL, username, and password required. For iCal URL: only the public URL is needed. Requires "full" scope.
Inputs: url (required), provider (required), password, username.
calmesh_start_oauth_connectionA
Start an OAuth calendar connection. Returns an auth_url the user must visit in their browser to authorize access. Requires "full" scope.
Inputs: provider (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 22 tools
Most tools are clearly separated by domain (events, bookings, polls, connections), but 'get_events' and 'get_event_details' both fetch events in a date range with different detail levels, and 'check_availability' and 'get_slots' both return free time slots but in different contexts. These overlapping boundaries could cause agents to select the wrong tool.
All tool names follow a consistent calmesh_verb_noun snake_case pattern, which is easy to read and predict. However, read operations use a mix of 'list', 'get', and 'check' (e.g., list_calendars, get_events, check_availability), a minor inconsistency that slightly reduces predictability.
With 22 tools covering calendars, events, bookings, polls, and connections, the count is high but justified by the breadth of functionality. It sits slightly above the ideal 3-15 range but is not excessive for the domain.
The tool surface covers most workflows, but there is no update_event tool, making it impossible to modify existing events, and no delete_calendar. Bookings and polls also lack update operations, forcing workarounds like delete-and-recreate. These gaps could hinder common tasks.
Related MCP Connectors
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseAqualityDmaintenanceCalendar MCP server with atomic booking, conflict prevention, deterministic RRULE expansion, and TOON token compression for AI agents.1813MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that connects AI agents to Google Workspace (Gmail, Calendar, Drive, Docs, Sheets, and Slides).302MIT
- AlicenseNot gradedqualityNot gradedmaintenanceMCP server that lets AI agents manage Google Calendar -- create events, check availability, and manage schedules.MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server for the Calendly API. Manage events, invitees, and schedule meetings directly via AI assistants.12131 npmMIT