Provides comprehensive Google Calendar management including listing, creating, and deleting calendars, as well as full event operations (create, read, update, delete) with support for attendees, reminders, locations, all-day events, and event searching by text and time ranges.
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
Or clone this repository:
Configuration
Configure the MCP server with your Google OAuth2 credentials:
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
Authentication Flow
Generate OAuth URL:
Tool: generate_oauth_urlVisit 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
List Upcoming Events
Security Best Practices
Store credentials securely - Never commit OAuth2 credentials to version control
Use refresh tokens - Configure
access_type: "offline"to get refresh tokensLimit 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
Building
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
This server cannot be installed