Google now has an official Calendar MCP server that can read events, find availability, create meetings, update them, RSVP, and delete them. But a calendar action and a standing calendar rule are different things. Here’s how the current options work.
Google Calendar now has an official remote Model Context Protocol (MCP) server.
As of September 2026, Google’s public toolset contains nine tools: list_events, get_event, list_calendars, suggest_time, create_event, update_event, delete_event, respond_to_event, and search_events.
So an AI assistant can do much more than simply read your calendar. It can take action too. Google’s server is still marked Developer Preview.
Google’s official Calendar MCP reference
Google’s official Calendar MCP
The remote endpoint is:
https://calendarmcp.googleapis.com/mcp/v1
Google says the server inherits the user’s existing Calendar permissions and data-governance controls. To set it up, you currently need a Google Cloud project, the Calendar API and Calendar MCP API enabled, OAuth configuration, and a compatible MCP client.
There is one preview-stage inconsistency worth knowing about.
Google’s setup guide currently tells developers to configure only three consent-screen scopes: calendar-list read access, event free/busy access, and event read access. But the MCP reference exposes write tools for creating, updating, deleting, and responding to events.
If you need write access, confirm which scopes your client is actually granted rather than assuming that every documented tool will work after following the setup guide verbatim.
Google’s Calendar MCP setup guide
Claude: built-in connector or Google’s MCP
Claude already has a built-in Google Workspace connector that can view calendars, create and update events, delete events, find mutual availability, manage attendees, RSVP, and create recurring meetings.
Anthropic currently says its Google Workspace connectors are available to all Claude users. Team and Enterprise organizations require an owner to enable them first.
Anthropic’s Google Workspace connector documentation
If that’s all you need, the built-in connector is the simpler route.
If you specifically want Google’s standardized MCP interface, Google’s setup guide says adding its remote Calendar MCP as a Claude custom connector currently requires a Pro, Max, Team, or Enterprise plan — custom connectors are a paid-plan feature.
ChatGPT: built-in app vs. custom MCP
ChatGPT also has an OpenAI-built Google Calendar app.
The important distinction is between OpenAI-built apps and custom MCP apps. OpenAI currently says its built-in apps are search-only; write and modify actions require a custom MCP app.
As of September 2026, OpenAI’s current plan matrix says full MCP support, including write/modify actions, is available in beta for Business, Enterprise, and Edu. Pro users can connect MCPs with read/fetch permissions, but not full write support. Plus is not currently listed for full MCP. Write actions may require confirmation depending on permissions and context.
OpenAI’s current developer mode and MCP documentation
Because this changed several times during 2026, it’s worth checking that page when you actually connect a server.
Cursor: connect a remote MCP
Cursor supports remote MCP servers, so Google’s Calendar MCP can be configured there as a remote server.
Community projects such as nspady/google-calendar-mcp remain useful for features like multiple Google accounts and more specialized behavior. But Google’s official server now covers the core Calendar operations itself — assuming your OAuth configuration actually grants the required write access.
nspady/google-calendar-mcp on GitHub
The important distinction: an action vs. a standing rule
Suppose you tell your assistant:
“Schedule a meeting with John tomorrow at 15:00.”
That’s a calendar action.
The assistant calls a Calendar tool, creates the event, and the job is finished.
Now compare it with:
“From now on, whenever I have an external meeting, make it purple and protect 15 minutes afterward.”
That’s a standing instruction.
Google’s Calendar MCP can modify an event. What it doesn’t currently provide is somewhere to store and continuously enforce that conditional behavior as future events appear.
That’s the distinction Heldrey is designed around.
One-time calendar action
The assistant creates, moves, or inspects an event. When the tool call finishes, the job is done.
Standing calendar rule
The assistant configures behavior that keeps applying whenever matching events appear.
Connecting an assistant to Heldrey
Heldrey has its own remote MCP at https://app.heldrey.com/mcp. The server is Streamable HTTP and POST-only. See Heldrey for AI assistants and the MCP docs for the configuration model.
Heldrey acts as an OAuth 2.1 authorization server, with PKCE, protected-resource metadata, and dynamic client registration for clients that require it. Leave the OAuth client id and secret empty — Heldrey uses public clients. The person authorizes in the browser at https://app.heldrey.com/assistants. Disconnect an assistant there to revoke its tokens immediately.
Connect Heldrey in Claude, ChatGPT, or Cursor
Claude. Open Customize → Connectors and add a custom connector. Name it and enter https://app.heldrey.com/mcp. Leave the OAuth client id and secret empty. Claude opens Heldrey’s consent page; sign in and allow. Enable the connector per conversation from the “+” menu. Custom connectors run from Anthropic’s cloud. Free Claude plans currently allow one custom connector; Claude Desktop uses the same connectors.
ChatGPT. Turn on Developer mode under Settings → Security and login (available on Pro, Plus, Business, Enterprise, and Education on the web). From the Apps/Plugins page add a developer-mode connector and enter https://app.heldrey.com/mcp. Complete Heldrey consent when ChatGPT opens it.
Cursor. Add a remote MCP server with the URL https://app.heldrey.com/mcp and complete consent in the browser when Cursor starts the OAuth flow.
What the assistant can do once connected
The intended workflow is:
get_capabilities or can_automate → get_connection_status → start_google_authorization if Google is not connected → create_rule_draft → validate_rule → preview_rule → the person agrees → enable_rule
Never claim a rule is active before the person turned it on in Heldrey. enable_rule answers with a link; it does not switch the rule on. Preview never changes the calendar.
The same connection also covers setup and modules, behind Heldrey scopes rather than Google Calendar scopes:
heldrey.rules— rules, undo, reorder, and Calendar Syncheldrey.configure— calendars, timezone, internal domains, locations, weekly schedule, Invite Hold, Travel Time, attention items, pauseheldrey.audit— Activity and explanationsheldrey.account— status, Google authorization, upgrades, feature requests
Calendar Sync returns a preview of what is mirrored where, and what is not and why, before enable_sync. Deletes, switching Invite Hold or Travel Time on, enabling a sync, pausing, and the custom-rules switch take confirmed: true, passed only after the person agreed. Never pre-fill it.
The MCP also exposes the trust layer:
preview_undo and execute_undo let an assistant inspect and reverse changes, while explain_execution can answer questions such as:
“Why did Heldrey make this meeting purple?”
That’s a different job from a Calendar MCP. The Calendar MCP changes the calendar; Heldrey never moves, cancels, or replies to events. It can explain which persistent rule caused a change and undo that execution safely.
An assistant can check Heldrey before you even sign in
Heldrey also exposes unauthenticated discovery tools at https://app.heldrey.com/mcp/public before you sign in:
get_capabilitiescan_automateget_plansget_referral_program
For example, an assistant can ask whether Heldrey can express a behavior such as:
whenever a meeting is external, make it purple and protect 15 minutes after
The response can be:
supportedpartially_supportedunsupportedclarification_required
along with the matched conditions and actions, anything missing, relevant limitations, and a draft rule where possible.
can_automate doesn’t create anything. Its job is to let an assistant determine what Heldrey can actually express before asking the user to authorize or enable a rule.
That distinction matters. partially_supported and clarification_required give the assistant a way to stop and explain what’s missing rather than inventing behavior the product doesn’t support.
On the public server, get_referral_program returns how referrals work without any account fields. After sign-in it can include the person’s own referral link. Never invent a token or reveal who was referred.
From “can this be automated?” to a connected calendar
Heldrey can also guide a new user through the Google authorization step from the assistant.
If Google Calendar hasn’t been connected yet, start_google_authorization returns a secure browser URL for the user to complete Google’s OAuth flow. The assistant can then use get_authorization_status to check whether the connection has been completed. Before rules that mention internal or external meetings, saved locations, or weekdays, the assistant should activate a calendar and set timezone, week start, and internal domains.
Heldrey’s own MCP permissions are handled separately.
If an assistant’s Heldrey connection is missing a scope required by a tool, Heldrey returns an insufficient_scope error explaining which permission is needed and which scopes the user granted, with a hint to reconnect Heldrey and allow the missing permission. A reconnect only widens the grant.
So there are two distinct authorization layers:
- Assistant ↔ Heldrey permissions
- Heldrey ↔ Google Calendar permissions
Keeping them separate makes failures easier to explain and recover from.
For assistants without an MCP connection, the same rule-building flow is also available through Heldrey’s Import page. Never claim a rule is active before the person confirms on the import screen.
Guardrails still apply through MCP
Using an assistant doesn’t bypass Heldrey’s normal controls.
Plan limits are enforced server-side. MCP is not a separate plan and cannot process payments.
Calendar titles, descriptions, locations, and other event text are also treated as data, not instructions. Heldrey returns calendar-derived strings inside calendar_data, cut at 200 characters.
That matters because Google explicitly warns MCP developers about indirect prompt injection. Its security guidance notes that unverified sources such as calendar events can contain hidden instructions capable of hijacking an AI session, and advises against connecting Calendar MCP servers to untrusted applications.
Google’s security guidance for Workspace MCP servers
For developers, Heldrey exposes machine-readable rule documentation and a JSON Schema generated from the same condition and action registries used by the product. See the MCP documentation.
That means an assistant can inspect exactly what a valid Heldrey rule can contain instead of relying on prose documentation that may drift away from the implementation.
Which connection should you use?
If you want an assistant to find, create, move, or cancel a meeting, use a Google Calendar integration — Google’s MCP or the assistant’s built-in Calendar connector.
If you want:
“From now on, whenever this kind of meeting appears, always do this.”
you need somewhere to store that behavior as a rule.
Google’s Calendar MCP and Heldrey therefore solve different layers of the same problem:
- Calendar MCP → act on the calendar now
- Heldrey → define how the calendar should keep behaving
Frequently asked questions
Does Google Calendar have an official MCP server?
Yes. Google’s remote Calendar MCP is currently in Developer Preview and exposes nine tools covering event search, availability, creation, updates, deletion, and invitation responses.
Can Google’s MCP create Google Calendar events?
Yes. Its tool reference includes create_event, update_event, and delete_event. Because Google’s setup guide currently documents only read/free-busy consent scopes, verify the actual scopes granted to your client if write operations fail.
Can Claude manage Google Calendar?
Yes. Claude’s built-in Google Workspace connector can read and manage Calendar events. Google’s official remote MCP can also be added as a custom connector on supported paid Claude plans.
Can ChatGPT use a Google Calendar MCP?
Yes, where the ChatGPT plan supports the required custom MCP capabilities. As of September 2026, OpenAI’s current documentation lists full MCP write/modify support for Business, Enterprise, and Edu, while Pro supports read/fetch MCP connections. Because this has changed during 2026, check OpenAI’s current documentation when connecting.
Can Google’s Calendar MCP create recurring calendar rules?
Not currently. It can create recurring events, but it doesn’t provide a persistent conditional-rule system.
A rule engine can store something like:
external meeting → purple + 15-minute buffer
and keep applying it whenever matching events appear.
How do I connect Heldrey MCP in Claude, ChatGPT, or Cursor?
Point the assistant at https://app.heldrey.com/mcp. In Claude, add a custom connector and leave the OAuth client id and secret empty. In ChatGPT, turn on Developer mode and add a developer-mode connector. In Cursor, add a remote MCP server. Consent happens in the Heldrey browser page. See Connect for the steps.