How to connect a Google Calendar MCP with Claude Code (5 steps)
.png)
Developers carry more scheduling context in their heads than Claude Code has access to. Which hours are blocked for the on-call handoff? Is anyone on the team out during the deployment window? Does the planned maintenance window overlap with a sprint ceremony?
Getting answers means tabbing out to Google Calendar, checking manually, and tabbing back.
To help your developers read and update calendar data without leaving the terminal, we'll show you how to connect Google Calendar with Merge Agent Handler's Google Calendar MCP server.
How it works
Merge Agent Handler sits between Claude Code and the Google Calendar API. You configure a Tool Pack and Registered User in Merge Agent Handler, which generates a unique MCP URL. Claude Code connects to that URL over HTTP and uses an API key (generated in Merge Agent Handler) for authentication.
Here's the connection config before you substitute your specific values:
Claude Code sends requests to that MCP URL, and Merge handles OAuth token management and API calls to Google Calendar on the backend. You don't store Google credentials locally or manage token refresh yourself. Merge handles both.
Prerequisites
Before getting started, you'll need the following:
- A Merge Agent Handler account
- Claude Code installed (run
claude --versionto confirm) - A Google account with access to the calendars you want to connect
Related: A guide to connecting a Google Sheets MCP with Claude Code
1. Create a Tool Pack
Log into Merge Agent Handler and navigate to Tool Packs. Click Create Tool Pack and give it a name tied to your use case, like Calendar Context Agent.

Under connectors, select Google Calendar and choose which tools to enable.

For read-heavy workflows—checking event schedules, querying attendees, or reviewing availability windows—enabling event listing, event retrieval, and calendar listing covers the core cases. Add write tools like create_event or update_event if your agent needs to schedule or modify events.
Save the Tool Pack. You'll return here to copy your MCP URL in step 4.
2. Add a Registered User
Inside your Tool Pack, create a Registered User.

This is the identity context under which your agent operates: the Google account it acts on behalf of when calling the Calendar API.
Give it a name that maps to your environment, like dev-local or your own name. Once created, Merge generates a unique MCP URL scoped to this user.
3. Authenticate Google Calendar
From the Registered User detail page, click Add Connector and select Google Calendar. This starts a standard Google OAuth flow.

Sign in with the Google account whose calendar you want Claude Code to access, and grant the requested permissions.
Once the OAuth flow completes, Merge stores and manages the access token. You won't need to re-authenticate unless you revoke access.
4. Gather your credentials
You need two things before configuring Claude Code:
1. MCP URL: found on the Tool Pack detail page under the Registered User you just created. It looks like the following:
2. API key: found in Settings > API Keys in your Merge Agent Handler dashboard. Create one if you don't have one yet.
Keep both handy for the next step.
5. Configure Claude Code with Google Calendar
Run the following command in your terminal, substituting your actual MCP URL and API key:
Verify the connection registered with the command <code class="blog_inline-code">claude mcp list</code>.
<code class="blog_inline-code">agent-handler</code> should appear in the output with a connected status.
To confirm the connector is accessible, open a Claude Code session and run a command like "List all events on my calendar for this Thursday and flag any that overlap with our 3pm deployment window."
You should see an output that looks something like the following:

{{this-blog-only-cta}}
Google Calendar MCP FAQ
In case you have more questions on setting up and using the Google Calendar MCP in Claude Code, we've addressed several more commonly-asked questions below.
What can you do once the Google Calendar MCP is connected to Claude Code?
With Google Calendar connected, Claude Code can:
- List and query events: retrieve events from any calendar filtered by date range, attendee, or keyword, without switching to a browser tab
- Check availability windows: query free/busy data across calendars before scheduling a deployment, incident review, or sprint ceremony
- Read event details: pull attendees, descriptions, and video links for a specific meeting when you need that context mid-session
- Create and update events: schedule a new event or modify an existing one directly from the terminal (if write tools are enabled in your Tool Pack)
- List all calendars: browse the calendars accessible to the authenticated account, useful when you need to query a shared team or on-call calendar specifically
- Cross-reference schedule context while coding: ask Claude whether a release window is clear before triggering a deploy, without leaving the session
Why use Merge Agent Handler vs. a self-hosted Google Calendar MCP server?
You can build a self-hosted MCP server that wraps the Google Calendar API directly. For a single developer querying their own calendar, that's a viable path: store OAuth credentials locally, define tool schemas for the event queries you need, and connect it to Claude Code.
The setup breaks down at team scale. OAuth credentials stored locally carry access to everything that account can read, not just the specific calendars you intend to expose. There are no tool-level controls to restrict an agent to read-only queries or block it from writing events on calendars it shouldn't touch. And there's no record of what the agent queried or modified.
Merge Agent Handler adds a control layer that addresses these issues.
You choose exactly which tools each Tool Pack exposes, so a read-only scheduling agent never gets access to create_event or delete_event. Each developer gets a Registered User with isolated credentials, so one person's revoked access doesn't affect anyone else's setup. And every tool call is logged with the tool name, inputs, and response metadata, which matters when an agent modifies events on shares team calendars.
Why connect Google Calendar to Claude Code?
Calendar data has more operational relevance for developers than it gets credit for. Deployment windows, on-call handoffs, incident retrospectives, and sprint ceremonies all live in Google Calendar, and all of them affect decisions that happen in the terminal: when to push a release, whether a teammate is available to review, how long an incident window actually lasted, etc.
Without Calendar connected, Claude Code has no access to any of that. Developers tab out to check manually or work from memory.
Connecting Google Calendar via MCP closes that gap. Your developers can ask Claude to verify whether a deployment window is clear, pull the attendee list for an upcoming retro, find all events overlapping with a reported incident time window, and more. For teams that treat their calendar as a source of truth for engineering operations, that's a real reduction in context-switching during time-sensitive work.

.avif)


.png)
.avif)