About Google Calendar Integration Server
Google Calendar Integration Server is an MCP server in the Search category: enable seamless interaction with Google Calendar through a secure and comprehensive MCP server. Manage calendars and events with full support for OAuth2 authentication, event details, and search capabilities. Simplify calendar operations and event scheduling within your applications.
Install
git clone https://github.com/goldk3y/google-calendar-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Google Calendar Integration Server
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
Google Calendar MCP Server
A Model Context Protocol (MCP) server for interacting with Google Calendar API, built for Smithery.
Features
- OAuth2 Authentication: Complete OAuth2 flow for secure Google Calendar access
- Calendar Management: List, create, and delete calendars
- Event Operations: Create, read, update, and delete calendar events
- Comprehensive Event Details: Support for attendees, reminders, locations, and more
- All-Day Event Support: Handle both timed and all-day events
- Search Functionality: Search events by text and time ranges
Prerequisites
Before using this MCP server, you need:
- Node.js 18+ installed
- Google Cloud Console project with Calendar API enabled
- OAuth2 credentials (Client ID and Client Secret)
Google Cloud Setup
1. Create a Google Cloud Project
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Calendar API:
- Go to "APIs & Services" > "Library"
- Search for "Google Calendar API"
- Click "Enable"
2. Configure OAuth Consent Screen
- Go to "APIs & Services" > "OAuth consent screen"
- Choose "External" user type
- Fill in the required information:
- App name: "Your App Name"
- User support email: Your email
- Developer contact information: Your email
- Add scopes (optional for testing):
https://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/calendar.events
3. Create OAuth2 Credentials
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth 2.0 Client IDs"
- Choose "Web application"
- Add authorized redirect URIs:
http://localhost:3000/oauth2callback
- Download the JSON file and note your Client ID and Client Secret
Installation
Using Smithery CLI
npm install -g @smithery/cli
npm create smithery
Or clone this repository:
git clone <repository-url>
cd google-calendar-mcp
npm install
Configuration
Configure the MCP server with your Google OAuth2 credentials:
{
"clientId": "your-google-client-id.apps.googleusercontent.com",
"clientSecret": "your-google-client-secret",
"redirectUri": "http://localhost:3000/oauth2callback",
"refreshToken": "optional-refresh-token-for-permanent-access"
}
Configuration Parameters
clientId(required): Google OAuth2 Client ID from Google Cloud ConsoleclientSecret(required): Google OAuth2 Client Secret from Google Cloud ConsoleredirectUri(optional): OAuth2 redirect URI (default:http://localhost:3000/oauth2callback)refreshToken(optional): Pre-existing refresh token for permanent access
Usage
Development
npx @smithery/cli dev
Authentication Flow
-
Generate OAuth URL:
Tool: generate_oauth_url -
Visit the URL and authorize the application
-
Exchange Authorization Code:
Tool: exchange_auth_code Parameters: { "auth_code": "code-from-redirect" } -
Save the refresh token for future use in your configuration
Available Tools
Authentication Tools
generate_oauth_url- Generate OAuth2 authorization URLexchange_auth_code- Exchange authorization code for tokenscheck_auth_status- Check current authentication status
Calendar Management
list_calendars- List all accessible calendarsget_calendar- Get detailed calendar informationcreate_calendar- Create a new calendardelete_calendar- Delete a calendar (except primary)
Event Management
list_events- List events with filtering optionsget_event- Get detailed event informationcreate_event- Create a new eventupdate_event- Update an existing eventdelete_event- Delete an event
Example Usage
Create an Event
Tool: create_event
Parameters: {
"calendar_id": "primary",
"summary": "Team Meeting",
"description": "Weekly sync meeting",
"start_time": "2024-01-15T10:00:00Z",
"end_time": "2024-01-15T11:00:00Z",
"location": "Conference Room A",
"attendees": ["colleague@company.com"],
"timezone": "America/New_York"
}
List Upcoming Events
Tool: list_events
Parameters: {
"calendar_id": "primary",
"time_min": "2024-01-15T00:00:00Z",
"time_max": "2024-01-22T23:59:59Z",
"max_results": 20
}
Security Best Practices
- Store credentials securely - Never commit OAuth2 credentials to version control
- Use refresh tokens - Configure
access_type: "offline"to get refresh tokens - Limit scopes - Only request necessary Calendar API scopes
- Monitor usage - Keep track of API usage in Google Cloud Console
Error Handling
The MCP server provides detailed error messages for common issues:
- Authentication errors - Clear guidance on OAuth2 setup
- API quota limits - Information about rate limiting
- Permission errors - Help with scope and access issues
- Invalid parameters - Validation errors with helpful descriptions
Development
Project Structure
google-calendar-mcp/
├── src/
│ ├── index.ts # Main MCP server entry point
│ └── tools/
│ ├── auth.ts # Authentication tools
│ ├── calendars.ts # Calendar management tools
│ └── events.ts # Event management tools
├── package.json
├── smithery.yaml
└── README.md
Building
npx @smithery/cli build
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
MIT License - see LICENSE file for details
Support
- Documentation: Smithery Documentation
- Google Calendar API: Google Calendar API Reference
- Issues: Submit issues via GitHub
Related Projects
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.