mcp-google-calendar
A Model Context Protocol (MCP) server implementation for Google Calendar integration. Create and manage calendar events directly through Claude or other AI assistants.
claude mcp add --transport stdio markelaugust74-mcp-google-calendar node index.js \ --env GOOGLE_CLIENT_ID="Your Google OAuth2 Client ID" \ --env GOOGLE_CALENDAR_ID="Optional: specific calendar ID to use" \ --env GOOGLE_CLIENT_SECRET="Your Google OAuth2 Client Secret" \ --env GOOGLE_REFRESH_TOKEN="Your Google OAuth2 Refresh Token"
How to use
This MCP server enables an AI assistant to create and manage Google Calendar events via the MCP protocol. It supports creating events with a title, description, start and end times, and can add attendees to events. OAuth2 authentication with the Google Calendar API is used, and the server exposes MCP endpoints that allow clients to request event creation, updates, and attendee management. Debug logging is available for troubleshooting during development or integration.
To use the server, first obtain OAuth2 credentials and a refresh token for Google Calendar access. After cloning the repository, install dependencies and configure environment variables as described in the installation steps. Start the server with npm start. The assistant or client can then send MCP requests to the server to create and manage calendar events. If you need to re-authenticate or refresh tokens, use the provided auth flow (npm run auth) and update the index.js with the new refresh token if required.
How to install
Prerequisites:
- Node.js v18 or later
- npm (comes with Node.js)
- Google Cloud Console project with Calendar API enabled
- OAuth2 Client ID and Client Secret
Steps:
-
Clone the repository git clone https://github.com/markelaugust74/mcp-google-calendar.git cd mcp-google-calendar
-
Install dependencies npm install
-
Copy environment configuration cp .env.example .env
Edit .env and populate credentials such as GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, and GOOGLE_REFRESH_TOKEN
-
Run the authentication flow to obtain a refresh token (if not already obtained) npm run auth
-
Start the MCP server npm start
Notes:
- Ensure the Google Calendar API is enabled in your Google Cloud Console project.
- The server expects environment variables for Google OAuth2 credentials and the refresh token. If you change credentials, re-run the auth flow and update the environment accordingly.
Additional notes
Tips and common issues:
- If npm start fails, check that Node.js 18+ is installed and that dependencies are installed (npm ci can be used for clean installs).
- Ensure the .env file is properly populated with GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, and GOOGLE_REFRESH_TOKEN.
- If you modify code related to token handling, re-run npm run auth to refresh credentials.
- For debugging, enable verbose logs if available in the environment or by starting the server with debugging flags as described in the project's docs.
- The server is designed to work with the MCP protocol; ensure your client adheres to MCP message formats when issuing create/update/delete requests for calendar events.
Related MCP Servers
zen
Selfhosted notes app. Single golang binary, notes stored as markdown within SQLite, full-text search, very low resource usage
MCP -Deepseek_R1
A Model Context Protocol (MCP) server implementation connecting Claude Desktop with DeepSeek's language models (R1/V3)
mcp-fhir
A Model Context Protocol implementation for FHIR
mcp
Inkdrop Model Context Protocol Server
mcp-appium-gestures
This is a Model Context Protocol (MCP) server providing resources and tools for Appium mobile gestures using Actions API..
dubco -npm
The (Unofficial) dubco-mcp-server enables AI assistants to manage Dub.co short links via the Model Context Protocol. It provides three MCP tools: create_link for generating new short URLs, update_link for modifying existing links, and delete_link for removing short links.