Google Calendar MCP Server is a Model Context Protocol (MCP) server that integrates with Google Calendar, enabling Large Language Models to read, create, update, and search calendar events through a standardized interface. It allows dynamic interactions with your Google Calendar including adding events from screenshots, analyzing your schedule, checking attendance, and coordinating availability.
https://www.googleapis.com/auth/calendar.events
(or broader https://www.googleapis.com/auth/calendar
)npm install
gcp-oauth.keys.json
and place it in the project rootcp gcp-oauth.keys.example.json gcp-oauth.keys.json
and add your credentialsThe server handles Google OAuth 2.0 authentication to access your calendar data.
gcp-oauth.keys.json
is in the project rootnpm start
.gcp-saved-tokens.json
.gcp-saved-tokens.json
To re-authenticate:
npm run auth
.gcp-saved-tokens.json
(not committed to version control)Add this configuration to your Claude Desktop config file (e.g., /Users/<user>/Library/Application Support/Claude/claude_desktop_config.json
):
{
"mcpServers": {
"google-calendar": {
"command": "node",
"args": ["<absolute-path-to-project-folder>/build/index.js"]
}
}
}
Replace <absolute-path-to-project-folder>
with your actual project path
Restart Claude Desktop
The MCP server enables the following interactions:
Add this event to my calendar based on the attached screenshot.
Supports PNG, JPEG, and GIF images containing event details
What events do I have coming up this week that aren't part of my usual routine?
Which events tomorrow have attendees who have not accepted the invitation?
Here's some available that was provided to me by someone.
Take a look at the available times and create an event that is free on my work calendar.
Please provide availability looking at both my personal and work calendar for this upcoming week.
Choose times that work well for normal working hours on the East Coast. Meeting time is 1 hour
gcp-oauth.keys.json
contains Desktop App credentials.gcp-saved-tokens.json
and re-authenticatenpm install
againbuild/
directory and run npm run build
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"cursor-rules-mcp": {
"command": "npx",
"args": [
"-y",
"cursor-rules-mcp"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.