Google Calendar MCP Server
Google Calendar MCP Server
🗓️ A Model Context Protocol (MCP) server that enables seamless Google Calendar integration with MCP-compatible clients like Postman and Claude Desktop.
Repository: Google Calendar MCP Server
✨ Features
✅ Create calendar events with location, time zones
📅 View existing events and schedules
✏️ Update event details and timing
🗑️ Delete unwanted events
🔐 OAuth 2.0 authentication
🌍 Multi-timezone support
⚙️ Prerequisites
Node.js v18+ (v20+ recommended)
npm package manager
Google Calendar API enabled in Google Cloud Console
OAuth 2.0 access token (not client ID/secret)
🚀 Quick Start
1. Clone & Install
git clone https://github.com/Sarthak2845/Google-Calender-MCP-Sever.git
cd Google-Calender-MCP-Sever
npm install2. Get OAuth 2.0 Access Token
Select Calendar API v3 scopes
Click Authorize APIs and sign in
Click Exchange authorization code for tokens
Copy the Access token (starts with
ya29.)
3. Configure Environment
Create .env file:
# Replace with your actual OAuth 2.0 access token
ISTRUZI_API_KEY=ya29.a0AS3H6Ny...4. Test the Server
node mcpServer.js🔧 Client Setup
📮 Postman Desktop
Open Postman Desktop
Create new MCP request
Set type to STDIO
Command:
node <path_to_your_project>/mcpServer.jsConnect and test calendar operations
🤖 Claude Desktop
Open Claude Desktop settings
Go to Developers → Edit Config
Add server configuration:
{
"mcpServers": {
"postman-calendar": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": ["<path_to_your_project>\\mcpServer.js"]
}
}
}Replace <path_to_your_project> with your actual project path, e.g.:
Windows:
"D:\\my-projects\\Google-Calender-MCP-Sever\\mcpServer.js"Mac/Linux:
"/Users/username/Google-Calender-MCP-Sever/mcpServer.js"
Restart Claude Desktop
Verify server shows green (active) status
📝 Example Usage
Create Event
{
"method": "tools/call",
"params": {
"name": "create_calendar_event",
"arguments": {
"calendarId": "your-email@gmail.com",
"eventData": {
"summary": "Team Meeting",
"start": {
"dateTime": "2025-03-15T10:30:00+05:30",
"timeZone": "Asia/Kolkata"
},
"end": {
"dateTime": "2025-03-15T12:30:00+05:30",
"timeZone": "Asia/Kolkata"
},
"location": "Conference Room A"
}
}
}
}⚠️ Important Notes
Access tokens expire after ~1 hour - refresh as needed
Use proper IANA timezone names (e.g.,
Asia/Kolkata, notIST)Ensure end time is after start time to avoid errors
Calendar ID is typically your Gmail address
🐛 Troubleshooting
Error | Solution |
| Get fresh OAuth 2.0 access token |
| Check start time < end time |
| Install Node.js from nodejs.org |
Server not connecting | Verify absolute paths in config |