Provides comprehensive calendar management capabilities including creating, editing, deleting, and searching events, managing multiple calendars, checking availability with freebusy queries, and accessing calendar colors and settings.
🗓️ Google Calendar MCP Server
I got tired of the Google Cloud setup BS, so I built this.
Connect your calendar in 30 seconds, not 3 hours.
Skip the OAuth nightmare. No Google Cloud Console. No service accounts. No headaches. Just works with Claude Desktop, Cursor, Zed, or whatever MCP client you're using.
✨ Why This Rocks
🚀 Actually Easy Setup - 30 seconds vs 3 hours of Google Cloud hell
🔒 OAuth That Works - No token management headaches
🔧 Works Everywhere - Claude, Cursor, Zed... if it does MCP, we got you
⚡ Deploy & Forget - One-click Vercel deployment
🗓️ Full Calendar Power - Create, edit, delete events like a boss
🌐 Your Server - Host it yourself, own your data
📱 Test Drive - Web UI to make sure everything works before going live
Just Want to Use It?
Connect your calendar:
Go to https://cal-mcp.com
Hit "Connect Google Calendar"
Do the OAuth dance
Copy your config
Add to your MCP client:
Option A: Streamable HTTP (Recommended)
{ "mcpServers": { "google-calendar": { "url": "https://cal-mcp.com/api/mcp" } } }Option B: STDIO (Local Server)
{ "mcpServers": { "google-calendar": { "command": "npx", "args": ["-y", "mcp-remote", "https://cal-mcp.com/api/mcp"] } } }
Want to Run Your Own?
Grab the code:
git clone https://github.com/progrmoiz/cal-mcp cd cal-mcp npm installGoogle OAuth setup (yeah, still need this part):
Hit up Google Cloud Console
Make a project (or use an existing one)
Enable Google Calendar API
Create OAuth 2.0 credentials
Add this redirect URI:
http://localhost:3000/api/auth/callback/google
Environment variables:
cp .env.example .env.localDrop in your Google stuff:
GOOGLE_CLIENT_ID=your_client_id GOOGLE_CLIENT_SECRET=your_client_secret BETTER_AUTH_SECRET=any_random_string BETTER_AUTH_URL=http://localhost:3000Fire it up:
npm run devConnect your calendar:
Go to http://localhost:3000
Hit "Connect Google Calendar"
Do the OAuth dance
Copy your config
🧪 Test Drive
Built-in web interface because who wants to debug blind?
Play with Events - Create, edit, delete events right in the browser
OAuth Testing - Make sure the auth flow actually works
Debug Mode - See raw API responses when things go sideways
Sanity Check - Verify everything works before plugging into your AI
Hit http://localhost:3000
once you're running and give it a spin.
What You Can Do
All the calendar stuff you'd expect:
list-calendars
- See all your calendarslist-events
- Get events for a date rangecreate-event
- Make new eventsupdate-event
- Change existing eventsdelete-event
- Remove eventssearch-events
- Find events by textget-event
- Get event detailsmove-event
- Move events between calendarslist-colors
- Get color options for calendars/eventsget-freebusy
- Check when you're availableget-current-time
- Current time and timezone info
For Builders
What's under the hood:
Better Auth handling the OAuth mess
MCP server that actually works
Next.js for the web stuff
TypeScript because we're not animals
Going Live
Ready to deploy? Here's what you need:
Environment Variables - Set them on your hosting platform
Database - Point to your Neon PostgreSQL URL
Google OAuth - Update redirect URIs for your domain
HTTPS - Because OAuth demands it
Security Stuff
Better Auth handles tokens so you don't have to
Secrets stay in environment variables where they belong
Everything needs auth (obviously)
Token refresh happens automatically
🛠️ When Things Break
Stuff not working? Try these:
Your AI Tool Doesn't Do MCP
Not all AI tools support MCP yet. Check if yours does before pulling your hair out.
Remote Connections Failing
Some tools do MCP but hate remote servers. Use the STDIO config instead.
OAuth Acting Up
Did you actually complete the Google login? Try connecting again from the homepage.
No MCP Support At All
Bug your AI tool's developers to add MCP support. The more people ask, the faster it happens.
🛠️ Architecture
Built with modern technologies for reliability and ease of use:
Next.js 15 - Full-stack framework with API routes
Better Auth - Secure OAuth 2.0 authentication
MCP Handler - Model Context Protocol server implementation
Google Calendar API - Direct integration with Google's calendar services
Vercel - Serverless deployment platform
TypeScript - Type-safe development
🤝 Want to Help?
Contributions welcome! Here's how:
🐛 Found a Bug? - Open an issue, tell us what broke
💡 Got Ideas? - Issues are perfect for brainstorming
🔧 Can Code? - PRs for fixes and features always welcome
📖 Hate Bad Docs? - Make them better!
🧪 Just Testing? - Feedback is gold
How to Contribute:
Fork it
Branch it:
git checkout -b feature/cool-thing
Code it (and test it!)
PR it with a good description
If you want to contribute, here are some ideas worth tackling:
📊 Google Sheets MCP - Spreadsheets meet AI (imagine the possibilities!)
📧 Gmail MCP - Email automation that doesn't suck
☁️ Google Drive MCP - File management for the AI era
📝 Google Docs MCP - Collaborative writing with AI superpowers
Other Calendar Providers:
📅 Outlook/Microsoft 365 - Because not everyone lives in Google land
🍎 Apple Calendar (CalDAV) - For the Mac enthusiasts
Got another idea? Just build it!
The beauty of this setup is that it's dead simple to extend. Copy the auth flow, swap the API endpoints, and boom - you've got yourself a new MCP server.
Feel free to fork this repo and create a pull request. Let's build the future of productivity tools together, one API at a time. 🛠️
📄 License
MIT License - do whatever you want with it.
💬 Need Help?
📖 Docs: This README + code comments
🐛 Bugs: GitHub Issues
💬 Questions: GitHub Discussions
📧 Collaboration: Hit me up
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Enables AI assistants to interact with Google Calendar through a simplified OAuth setup. Supports creating, editing, deleting, and searching calendar events without the complexity of Google Cloud Console configuration.
Related MCP Servers
- -securityAlicense-qualityIntegrates Google Calendar with AI assistants through the Model Context Protocol, allowing users to view and manage calendar events through natural language interaction.Last updated -11110MIT License
- -securityAlicense-qualityEnables AI assistants to manage Google Calendar through natural language interactions with features like creating, updating, and deleting events, searching calendars, and supporting natural language date/time inputs.Last updated -32MIT License
- -securityFlicense-qualityEnables programmatic management of Google Calendar events through natural language interactions, supporting creation, reading, updating, and deletion of events with features for recurring events, attendees, and reminders.Last updated -2
- AsecurityAlicenseAqualityProvides comprehensive Google Calendar integration capabilities allowing AI assistants to list, create, update, and delete calendar events through a standardized Model Context Protocol.Last updated -56MIT License