Google Calendar MCP Server Cursor IDE Setup 2026
Set up the Google Calendar MCP server in Cursor: create a Google Cloud OAuth client, authorize once in the browser, then check and create calendar events from chat.
Google Calendar MCP Server Cursor IDE Setup 2026
How do you set up the Google Calendar MCP server in Cursor? Create an OAuth client in Google Cloud Console, download its credentials file, add a google-calendar block to ~/.cursor/mcp.json pointing at those credentials, then restart Cursor. The first time a calendar tool actually runs, a browser window opens for you to authorize access — after that, the connection stays authorized without repeating the flow. Once it's set up, your AI can check your schedule, find open time slots, and draft calendar events without you switching to a browser tab.
This is the one setup in the "cursor ide mcp setup" family that's OAuth-first rather than API-key-first, because Google doesn't offer a scoped API-key path for personal Calendar data the way Stripe or GitHub do for their APIs. That one extra step (registering an OAuth client) is also the part people get stuck on, so this guide spends more time there than on the mcp.json block itself.
What You Can Do with Google Calendar + Cursor MCP
Once connected:
The most common real use isn't "read my calendar" on its own — it's combining calendar state with something else in the same prompt, like checking availability before proposing a meeting time in an email draft, or blocking focus time around a string of back-to-back calls.
Prerequisites
Step 1: Create a Google Cloud OAuth Client
1. Go to console.cloud.google.com and create a new project (or pick an existing one you don't mind attaching this to)
2. In the sidebar, go to APIs & Services → Library, search for Google Calendar API, and enable it
3. Go to APIs & Services → OAuth consent screen and configure it — for personal use, choose External and add yourself as a test user (this avoids a Google app-verification review, which you don't need for a single-user setup)
4. Go to APIs & Services → Credentials → Create Credentials → OAuth client ID
5. Choose Desktop app as the application type
6. Download the resulting credentials file (Google names it something like client_secret_....json)
Keep this file somewhere outside your project's git repo — it's a credential, not sample data, even though it doesn't contain a password directly.
Step 2: Add to Cursor MCP Config
Open ~/.cursor/mcp.json:
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": ["-y", "google-calendar-mcp"],
"env": {
"GOOGLE_OAUTH_CREDENTIALS": "/absolute/path/to/client_secret.json"
}
}
}
}
Use an absolute path, not a relative one — mcp.json-launched processes don't reliably share your shell's working directory, so a relative path that works when you test the command manually in terminal can silently fail to resolve once Cursor launches it.
Step 3: Restart Cursor and Authorize
Quit and reopen Cursor. The server itself will start without errors even before authorization — the OAuth prompt fires the first time a tool actually runs, not at startup. Try:
What's on my calendar today?
A browser window should open asking you to sign in and grant calendar access. Approve it. The authorization is cached locally after this — you won't see the browser prompt again unless you revoke access or the token file is deleted.
Step 4: Verify
Once authorized, confirm with something concrete rather than a vague prompt:
List my next 5 calendar events
If real event titles and times come back, the connection is working end to end.
Practical Workflows
Finding Meeting Time
I need to schedule a 45-minute call with someone in a similar timezone sometime this week. Find three open slots on my calendar between 9am and 6pm.
Pre-Meeting Prep
What meetings do I have in the next 2 hours, and what are they about based on the event descriptions?
Creating Events from Context
Create a calendar event for the deploy window we just discussed — Thursday 6pm to 7pm, title it "Prod Deploy: Payments Service"
Conflict Checking Before Committing
Before I confirm this 2pm Thursday meeting, check if it conflicts with anything already on my calendar
Troubleshooting
Browser window never opens for authorization
GOOGLE_OAUTH_CREDENTIALS is correct and absolute — a bad path usually fails silently rather than throwing an obvious error"Access blocked: this app's request is invalid" in the browser
Works, then stops working after a few weeks
Can see events but can't create or edit them
Wrong calendar or wrong account's events showing up
When Not to Use This
Be deliberate about letting an AI create or move calendar events unattended, especially recurring events or anything with external attendees — a wrong date or an accidentally-cancelled recurring series is annoying to unwind, and calendar invites notify other people the moment they're sent. Have Cursor draft the event details and confirm them with you before creating anything that isn't purely for your own calendar.
This also isn't the right tool if your organization manages calendars through a managed Google Workspace domain with admin-restricted API access — a personal OAuth client you register yourself may get blocked by domain-wide app restrictions, and you'll need your Workspace admin to either approve the app or provision a domain-managed service account instead.
Frequently Asked Questions
Q: Do I need a paid Google Cloud account to set this up?
A: No. Enabling the Calendar API and creating an OAuth client is free at the usage levels a single person's calendar generates. Billing only becomes relevant at API-call volumes far beyond normal personal or small-team use.
Q: Why does Google Calendar need a Cloud Console project instead of a simple API key like Stripe or GitHub?
A: Google's Calendar API doesn't offer a personal-data-scoped API key path — access to a specific user's calendar requires OAuth so the user explicitly consents to what's being shared. It's a Google-wide pattern, not something specific to MCP servers.
Q: Does this work with a Google Workspace (business) account, or only personal Gmail accounts?
A: Both, generally, but Workspace admins can restrict which third-party OAuth apps are allowed to request calendar access. If authorization fails on a work account but works fine on a personal one, that's usually a Workspace admin policy, not a broken config.
Q: My AI can read my calendar but can't create events — why?
A: Check the OAuth scope granted during authorization. Some setups default to a read-only calendar scope; creating and editing events requires the broader read-write scope, which may mean deleting the cached token and re-running authorization after adjusting the server's requested scopes.
Q: Can I connect more than one Google Calendar (like a personal and a work calendar) at once?
A: Run two separate server entries under different keys in mcp.json, each pointing at its own OAuth credentials file and authorized against a different Google account — similar to running separate test and live entries for a service like Stripe. There's no supported way to have one authorized session cover two different Google accounts simultaneously.
Related Guides
---
Related guides
- MongoDB MCP Server in Cursor IDE: Query Collections & Debug Schemas (2026)
- MySQL MCP Server Setup for Cursor IDE (2026): Query Your Database from Chat
- Neon MCP Server Setup for Cursor IDE (2026): Branch, Query, and Migrate Serverless Postgres from Chat
- Netlify MCP Server Setup for Cursor IDE (2026): Deploy & Manage Sites from Chat