# Google Calendar MCP Server

> **Google Calendar MCP Server** is a hosted, multitenant Model Context Protocol (MCP) server run by **MewCP** (https://mewcp.com), giving AI agents managed access to Google Calendar.
>
> MewCP takes care of all MCP infrastructure for you — credential storage, OAuth flows,
> token refresh, and production-grade auto-scaling — so your AI agents can connect to
> third-party services and run freely without you managing any MCP server yourself.
>
> Server page:  https://mewcp.com/mcp/google-calendar
> MewCP docs:   https://docs.mewcp.com
> All servers:  https://mewcp.com/servers (JSON: https://mewcp.com/api/servers)
> About MewCP:  https://mewcp.com/llms.txt

---

## About

Manage events, schedules and availability across Google Calendar. Create meetings, coordinate calendars, track availability and automate scheduling workflows.

---

## Details

- Server ID: `google-calendar`
- Version: 1.0.0
- Tools: 19
- Authentication: OAuth, managed by MewCP
- Calls served: 1556
- Transport: http

---

## Access

The gateway URL below serves your **entire MewCP toolset**, not this server on its
own. Pasting a config snippet is not enough — Google Calendar has to be in the toolset
first. In order:

1. Add Google Calendar to your toolset at https://mewcp.com/mcp/google-calendar
2. Connect your Google Calendar account (OAuth); MewCP stores the credential and attaches it to each call
3. Add the gateway URL to your client (see Connect below). It signs in with OAuth
   the first time it connects, so there is no key to copy.

Once connected, an agent does **not** see this server's tools as top-level tools.
It sees four meta-tools and reaches everything through them:

- `search(query)` — find tools by keyword across the toolset
- `get_schema(tools)` — full description and arguments for the tools you picked
- `list_accounts(provider)` — only when one app has several connected accounts
- `call_tool(server_maskedId, tool_name, args)` — execute

So the list below is what `search` can return for this server, not a set of
callable tool names on their own.

---

## Tools (19)

Descriptions are truncated to 160 characters; call `get_schema`
for the full text and the argument schema. Where a tool is annotated, its type
is shown — treat `destructive` as irreversible.

- `list_events` _(read)_ — Lists events from a calendar within an optional time range. Returns events in start-time order. Recurring events are expanded into individual instances. Use…
- `get_event` _(read)_ — Gets full details of a specific event including attendees, RSVP statuses, recurrence rules, reminders, and conferencing info.
- `search_events` _(read)_ — Searches for events by text across titles, descriptions, and locations. Optionally bound the search to a time range with time_min/time_max (ISO 8601, e.g.…
- `get_upcoming_events` _(read)_ — Gets events starting from now through the next N days. Returns events in start-time order. Recurring events are expanded into individual instances.
- `get_todays_events` _(read)_ — Gets all events scheduled for today in the given timezone. Pass the user's local timezone to get the correct day (e.g. 'America/New_York'). Defaults to UTC.
- `list_event_instances` _(read)_ — Lists all individual instances of a recurring event by its master event ID. Use this to see every occurrence of a recurring series — use get_event or…
- `create_event` _(write)_ — Creates a new calendar event and optionally invites attendees. For timed events use ISO 8601 datetime: '2026-01-08T14:30:00' with a timezone. For all-day…
- `create_quick_event` _(write)_ — Creates an event from a natural language text description. Google Calendar parses the text to extract title, date, time, and recurrence. Examples: 'Lunch with…
- `create_recurring_event` _(write)_ — Creates a recurring calendar event using an RRULE recurrence pattern. recurrence_rule must start with 'RRULE:' followed by RFC 5545 parameters. Examples:…
- `update_event` _(write)_ — Updates an existing calendar event. Only the fields you provide are changed — leave a field empty to keep its current value. Fetches the current event first,…
- `add_attendees` _(write)_ — Adds new attendees to an existing event and sends them invitation emails. Skips emails that are already on the attendee list.
- `delete_event` _(destructive)_ — DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a calendar event. This action is irreversible: the event, its attendees…
- `move_event` _(destructive)_ — DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Moves a default event from one calendar to another. Only events of type 'default' can be…
- `list_calendars` _(read)_ — Lists all calendars the user has access to. Returns calendar IDs, names, timezones, colors, and access roles. Use min_access_role to filter to calendars the…
- `get_calendar` _(read)_ — Gets full details of a specific calendar including its name, description, timezone, and color settings.
- `create_calendar` _(write)_ — Creates a new calendar owned by the user. Returns the created calendar with its ID, which is needed for all subsequent operations on that calendar.
- `delete_calendar` _(destructive)_ — DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes an entire calendar and every event it contains. This action is…
- `clear_calendar` _(destructive)_ — DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes ALL events from a calendar without deleting the calendar itself. This…
- `get_free_busy` _(read)_ — Returns busy time blocks for one or more calendars within a time range. Use this to find when someone is available or to schedule without conflicts. Provide…

---

## Connect

- URL: https://gateway.mewcp.com/personal/mcp
- Transport: Streamable HTTP (remote). Nothing to install.
- Sign-in: OAuth. On first connect the client opens a browser window to sign in
  to MewCP and approve access. No API key.
- Headless clients (SDKs, servers without a browser) send an API key instead:
  `Authorization: Bearer <API_KEY>`, key from https://mewcp.com/dashboard/api-keys

Agents setting themselves up: follow https://mewcp.com/SKILL.md

Step-by-step guide per client:

- Claude Desktop: https://mewcp.com/mcp/google-calendar/connect/claude
- ChatGPT: https://mewcp.com/mcp/google-calendar/connect/chatgpt
- VS Code: https://mewcp.com/mcp/google-calendar/connect/vscode
- Cursor: https://mewcp.com/mcp/google-calendar/connect/cursor
- Codex: https://mewcp.com/mcp/google-calendar/connect/codex
- Claude Code: https://mewcp.com/mcp/google-calendar/connect/claude-code
- OpenCode: https://mewcp.com/mcp/google-calendar/connect/opencode
- OpenClaw: https://mewcp.com/mcp/google-calendar/connect/openclaw
- Antigravity: https://mewcp.com/mcp/google-calendar/connect/antigravity
- Hermes: https://mewcp.com/mcp/google-calendar/connect/hermes
- DeepSeek Harness: https://mewcp.com/mcp/google-calendar/connect/dsh
- Python: https://mewcp.com/mcp/google-calendar/connect/python
- TypeScript: https://mewcp.com/mcp/google-calendar/connect/typescript