claude-gcal-connector-mcp
Interface with Google's scheduling service via the Model Context Protocol (MCP). Enables creation, modification, and querying of time-bound entries using dedicated toolsets and URI resolution. Includes utilities for synthesizing schedule summaries and retrieving forthcoming appointments.
Author

thisnick
Quick Info
Actions
Tags
Claude-to-Google-Calendar MCP Integration Module
Facilitate interactions with your Google Calendar environment directly through the Claude Desktop interface using the Model Context Protocol (MCP).
This integration is implemented as a Node.js/TypeScript-based MCP server, serving as a concrete example of MCP functionality while offering:
- Comprehensive manipulation of calendar entries via registered MCP Uniform Resource Identifiers (URIs).
- Dedicated functions for inserting and updating scheduled occurrences.
- Specialized methods for eliciting data-driven calendar appraisals.
Core Capabilities
Resource Abstraction
- Access chronological entries through distinct MCP URIs.
- Each managed item possesses attributes for subject, timing, detailed notes, and participant lists.
- Adherence to structured data formats with appropriate media type declarations.
Integrated Operations (Tools)
schedule_new_occurrence: To schedule fresh calendar items.- Accepts parameters such as the event's subject, its designated time slot, and supplementary metadata.
- Communicates directly with the underlying Google Calendar service APIs.
retrieve_upcoming_events: To enumerate scheduled events in the near future.- [Placeholder for additional implemented service operations]
Analytical Functions (Prompts)
synthesize_time_analysis: To generate actionable intelligence regarding your commitments.- Incorporates relevant upcoming entries as embedded data sources.
- Formats output specifically for sophisticated LLM interpretation.
- [Placeholder for additional analytical routines]
System Requirements
- Execution environment: Node.js (version 14 minimum)
- A provisioned Google Cloud Platform project with the Calendar API explicitly enabled.
- Valid OAuth 2.0 Client credentials established.
Local Development Setup
To establish the development environment using Devbox, follow the bootstrap instructions found at devbox.sh: bash curl -fsSL https://get.jetpack.io/devbox | bash
Initialize the Devbox configuration within the project directory: bash devbox init
Activate the isolated development shell: bash devbox shell
Install necessary JavaScript libraries: bash npm install
Compile the server codebase: bash npm run build
For continuous integration during development (watch mode): bash npm run watch
Integration with Claude Desktop
To enable this service with your Claude application, update the configuration file:
MacOS Location: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows Location: %APPDATA%/Claude/claude_desktop_config.json
Ensure the configuration block includes a reference to this server:
{ "mcpServers": { "Google Calendar Access": { "command": "/path/to/Google Calendar/build/index.js" } } }
Initial Authorization Procedure
- Configure Cloud Credentials:
- Navigate to the Google Cloud Console.
- Select or establish a new project.
- Verify that the Google Calendar API is toggled 'On'.
- Generate OAuth 2.0 credentials (select 'Desktop application' type).
-
Save the resulting client secret file, renaming it precisely to
.client_secret.json, and position it in the project's root directory. -
First-Run Authentication Sequence:
- Upon the server's initial execution, an authorization URL will be displayed.
- Access this URL in any web browser.
- Grant the permissions requested by the application.
- Retrieve the resulting authorization code provided.
- Input this code back into the command-line interface prompt when requested.
Troubleshooting Communication
As MCP servers communicate via standard input/output streams, conventional debugging can be complex. We strongly suggest utilizing the official MCP Inspector, accessible through a dedicated package script:
bash npm run inspector
The Inspector will provide a local address where you can open a browser interface for detailed diagnostic inspection.
