Google Calendar MCP Server
Enables full calendar management including viewing calendars, checking schedules, creating and canceling events, and searching events within specific date ranges.
Allows creation of Google Meet video conference links automatically when scheduling calendar events with attendees.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Calendar MCP Serverwhat meetings do I have this afternoon?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ Google Calendar MCP Server
A powerful Model Context Protocol (MCP) server that lets Claude interact with your Google Calendar seamlessly!
Transform Claude into your personal calendar assistant with full Google Calendar integration. Create meetings, check schedules, manage events, and more - all through natural conversation with Claude.
๐ What Can This Do?
โจ Smart Calendar Management
๐ View all your calendars - See every calendar you have access to
๐ Check your schedule - Get today's events or upcoming events for any timeframe
๐ฏ Create meetings instantly - Set up Google Meet events with attendees
โ Cancel events - Remove events you no longer need
๐ Search events - Find events within specific date ranges
๐ค Claude Integration Examples
Ask Claude things like:
"What meetings do I have today?"
"Schedule a team standup for tomorrow at 10 AM with the engineering team"
"Cancel my 3 PM meeting on Friday"
"What's my schedule looking like next week?"
"Create a Google Meet for our client review next Tuesday"
Related MCP server: Google Calendar MCP Server
๐ Quick Start
Step 1: Prerequisites
Python 3.8 or higher
A Google account with Calendar access
Nango account for authentication (handles Google OAuth for you)
Step 2: Installation
# Clone or download the MCP server files
git clone <your-repo-url>
cd google-calendar-mcp
# Install required packages
uv syncStep 3: Set Up Environment Variables
Create a .env file in the project directory:
# Copy the example file
cp .env.example .envEdit .env with your Nango credentials:
# Required Nango Configuration
NANGO_NANGO_BASE_URL=https://api.nango.dev
NANGO_NANGO_SECRET_KEY=your_nango_secret_key_here
NANGO_CONNECTION_ID=your_connection_id_here
NANGO_INTEGRATION_ID=your_integration_id_here๐ง Need help with Nango setup? Check the Nango Setup Guide below!
Step 4: Configure Claude Desktop
Add this configuration to your Claude Desktop settings:
On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"google-calendar": {
"command": "uvx",
"args": ["git+https://github.com/Shameerpc5029/google-calendar-mcp.git"],
"env": {
"NANGO_NANGO_BASE_URL": "https://api.nango.dev",
"NANGO_NANGO_SECRET_KEY": "your_nango_secret_key_here",
"NANGO_CONNECTION_ID": "your_connection_id_here",
"NANGO_INTEGRATION_ID": "your_integration_id_here"
}
}
}
}Step 5: Test It Out!
Restart Claude Desktop completely
Start a new conversation with Claude
Ask Claude: "What meetings do I have today?"
If everything is set up correctly, Claude will be able to access your Google Calendar! ๐
๐ ๏ธ Available Tools
Tool | Description | Example Use |
| List all your Google Calendars | "Show me all my calendars" |
| Get events from a specific calendar | "What's on my work calendar this week?" |
| Create a new event with Google Meet | "Schedule a team meeting for Friday at 2 PM" |
| Delete/cancel an event | "Cancel my 3 PM meeting today" |
| Get today's events | "What's my schedule today?" |
| Get upcoming events | "What do I have coming up next week?" |
๐ง Nango Setup Guide
Nango handles the complex Google OAuth flow for you. Here's how to set it up:
1. Create a Nango Account
Go to Nango.dev and sign up
Create a new project
2. Set Up Google Calendar Integration
In your Nango dashboard, add a new integration
Choose "Google Calendar" as the provider
Follow Nango's guide to configure Google OAuth credentials
3. Get Your Credentials
NANGO_SECRET_KEY: Found in your Nango project settings
NANGO_CONNECTION_ID: Created when a user connects their Google account
NANGO_INTEGRATION_ID: The ID of your Google Calendar integration
4. Test Your Connection
# Test that your environment is set up correctly
python -c "import os; print('โ
All env vars set!' if all([os.getenv('NANGO_CONNECTION_ID'), os.getenv('NANGO_INTEGRATION_ID'), os.getenv('NANGO_NANGO_SECRET_KEY')]) else 'โ Missing env vars')"๐งช Testing Your Setup
Option 1: Test with MCP Inspector
# Install the MCP inspector
npm install -g @modelcontextprotocol/inspector
# Test your server
npx @modelcontextprotocol/inspector python main.pyOption 2: Direct Python Test
# Run the server directly to see if it starts without errors
python main.pyOption 3: Test with Claude
Ask Claude: "Can you check what calendar tools are available?"
๐ Troubleshooting
Common Issues
โ "Failed to retrieve calendars"
Check your Nango credentials in
.envVerify your Google Calendar connection in Nango dashboard
Ensure the Google account has calendar access
โ "NANGO_CONNECTION_ID environment variable is required"
Make sure your
.envfile is in the same directory as the Python scriptCheck that all environment variables are set correctly
Restart Claude Desktop after making changes
โ Claude can't find the calendar tools
Verify the full path in your Claude config is correct
Make sure you restarted Claude Desktop completely
Check the Claude Desktop logs for error messages
Getting Help
Check the logs: Claude Desktop shows MCP server logs in its developer console
Test your .env: Run
python -c "from dotenv import load_dotenv; load_dotenv(); import os; print(os.environ.get('NANGO_CONNECTION_ID'))"Verify file paths: Make sure all paths in your Claude config are absolute paths
๐ Example Usage with Claude
Once set up, you can have natural conversations with Claude about your calendar:
You: "What's my schedule looking like today?"
Claude: I'll check your calendar for today's events.
{
"success": true,
"events": [
{
"summary": "Team Standup",
"start": "2024-01-15T09:00:00Z",
"end": "2024-01-15T09:30:00Z"
}
],
"total_events": 1
}You have 1 event today: Team Standup from 9:00 AM to 9:30 AM.
You: "Schedule a client meeting for next Friday at 2 PM with john@company.com"
Claude: I'll create that meeting for you with a Google Meet link.
{
"success": true,
"event": {
"summary": "Client Meeting",
"start": "2024-01-19T14:00:00Z",
"attendees": [{"email": "john@company.com"}]
}
}โ Created "Client Meeting" for Friday, January 19th at 2:00 PM with john@company.com. Google Meet link has been included automatically.
๐ Security & Privacy
Your credentials: Stored locally in your
.envfile - never sharedGoogle access: Managed through Nango's secure OAuth flow
Data handling: All calendar data stays between your Google account, Nango, and Claude
No data storage: This MCP server doesn't store any of your calendar information
๐ค Contributing
Found a bug or want to add a feature?
Fork the repository
Create a feature branch
Make your changes
Test thoroughly
Submit a pull request
๐ License
MIT License - feel free to use this in your own projects!
๐ Enjoy your new AI-powered calendar assistant!
If you found this helpful, consider starring the repository and sharing it with others who might benefit from AI calendar management.
Available Tools
6 toolscancel_calendar_eventB
Cancel (delete) a specific event from Google Calendar
Args: calendar_id: Calendar ID where the event exists event_id: The unique identifier of the event to cancel
| Name | Required | Description | Default |
|---|---|---|---|
| calendar_id | Yes | ||
| event_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool cancels/deletes an event, implying a destructive mutation, but lacks critical details: whether it requires specific permissions, if the action is reversible, what happens to attendees, or if there are rate limits. The description is minimal and doesn't compensate for the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by a structured Args section. Every sentence adds value, with no redundant or vague phrasing. Minor deduction for not integrating parameter details more seamlessly, but overall it's efficient and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive mutation with 2 parameters), no annotations, and no output schema, the description is minimally adequate but incomplete. It covers the basic action and parameters but lacks behavioral context (e.g., effects, permissions) and output details. For a deletion tool, this leaves significant gaps for an AI agent to operate safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully explain parameters. It explicitly lists both parameters (calendar_id, event_id) with brief clarifications ('Calendar ID where the event exists', 'The unique identifier of the event to cancel'), adding meaningful context beyond the schema's basic titles. However, it doesn't specify format (e.g., email-like for calendar_id) or examples, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Cancel (delete)') and resource ('a specific event from Google Calendar'), distinguishing it from sibling tools like create_meet_event (creation) and get_calendar_events (retrieval). The verb+resource combination is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While the purpose is clear, there's no mention of prerequisites (e.g., needing an existing event), exclusions (e.g., not for recurring events), or comparisons to other tools like delete_event if it existed. The description assumes context but doesn't provide explicit usage rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meet_eventB
Create a new Google Calendar event with Google Meet integration
Args: summary: Event title/summary start_datetime: Start datetime in ISO format (e.g., '2024-12-25T10:00:00') end_datetime: End datetime in ISO format (e.g., '2024-12-25T11:00:00') description: Event description attendees: List of attendee emails timezone: Timezone (default: UTC) calendar_id: Calendar ID (default: primary)
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | ||
| start_datetime | Yes | ||
| end_datetime | Yes | ||
| description | No | ||
| attendees | No | ||
| timezone | No | UTC | |
| calendar_id | No | primary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool creates events with Meet integration but doesn't disclose critical behavioral traits like whether this requires specific permissions, if it sends invitations automatically, rate limits, error conditions, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement followed by parameter details. Every sentence adds value, and it's appropriately sized for a 7-parameter tool. Minor room for improvement in making the purpose statement even more front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It covers parameters well but lacks critical context about behavioral outcomes, error handling, authentication requirements, and what the tool returns. The agent would be guessing about important operational aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides clear semantic explanations for all 7 parameters beyond just their names, including format examples (ISO format), defaults (timezone: UTC, calendar_id: primary), and clarifications (e.g., 'Event title/summary'). This adds substantial value over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new Google Calendar event') and the key feature ('with Google Meet integration'), distinguishing it from sibling tools like get_calendar_events or cancel_calendar_event which perform different operations. It precisely identifies both the verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. While the purpose is clear, there's no mention of prerequisites (e.g., authentication needs), when not to use it (e.g., for read-only operations), or how it differs from other event-related tools beyond its basic function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_calendarsB
Get all Google Calendars accessible to the user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action but doesn't describe traits like whether this is a read-only operation, potential rate limits, authentication requirements, or the format of returned data. This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on behavioral traits and usage context, which are important for completeness even in simple cases. It meets the basic requirement but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so there are no parameters to document. The description doesn't need to add parameter semantics, and it correctly avoids mentioning any. A baseline of 4 is appropriate as it doesn't mislead or omit necessary parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('all Google Calendars accessible to the user'), making the purpose unambiguous. It doesn't explicitly differentiate from sibling tools like 'get_calendar_events' or 'get_today_events', which focus on events rather than calendars, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as authentication needs, or compare it to other calendar-related tools in the sibling list, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendar_eventsB
Get events from a specific Google Calendar
Args: calendar_id: Calendar ID (default: primary) time_min: Lower bound for event start time (ISO format) time_max: Upper bound for event start time (ISO format) max_results: Maximum number of events to return (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| calendar_id | No | primary | |
| time_min | No | ||
| time_max | No | ||
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but provides minimal behavioral context. It mentions default values and ISO format requirements, but doesn't disclose important behaviors like authentication needs, rate limits, error handling, pagination, or what happens when time_min/time_max are null. For a read operation with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a clear purpose statement followed by parameter explanations. The Args section is organized but could be more front-loaded with critical usage information. No wasted sentences, though additional context would improve completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter read tool with no annotations and no output schema, the description covers basic parameter semantics but lacks important context: no output format description, no authentication/error handling disclosure, and insufficient differentiation from sibling tools. It's minimally adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining all 4 parameters: calendar_id (with default), time_min/time_max (ISO format requirements), and max_results (with default). It adds meaningful context beyond the bare schema titles, though it could provide more detail about calendar_id format or time range behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get events from a specific Google Calendar' which specifies the verb (get), resource (events), and target (Google Calendar). It distinguishes from siblings like 'get_all_calendars' (which lists calendars) and 'get_today_events'/'get_upcoming_events' (which have implicit time ranges), but doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_today_events' or 'get_upcoming_events'. The description mentions filtering by time range and calendar, but doesn't explain when this granular control is preferable over the simpler sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_today_eventsC
Get today's events from the primary calendar
Args: calendar_id: Calendar ID (default: primary)
| Name | Required | Description | Default |
|---|---|---|---|
| calendar_id | No | primary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but discloses minimal behavioral traits. It mentions retrieving events but doesn't describe authentication requirements, rate limits, pagination behavior, error conditions, or what happens with invalid calendar IDs. The description doesn't contradict annotations (none exist), but provides inadequate behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief with two sentences and an Args section. The front-loaded purpose statement is clear, though the Args formatting could be more integrated. No wasted words, though slightly more context could improve completeness without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read operation with no annotations, no output schema, and minimal parameter documentation, the description is insufficient. It doesn't explain what format events are returned in, whether results are filtered by time of day, authentication requirements, or how it differs from sibling tools. The description leaves too many contextual gaps for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds the parameter 'calendar_id' with a brief explanation and default value, but with 0% schema description coverage and only 1 parameter, this provides basic compensation. However, it doesn't explain what constitutes a valid calendar ID format, whether 'primary' is a special value, or what happens with invalid IDs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get today's events from the primary calendar' which specifies the verb (get), resource (events), and temporal scope (today). However, it doesn't explicitly differentiate from siblings like get_calendar_events or get_upcoming_events, which likely have different filtering capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_calendar_events or get_upcoming_events. It mentions 'primary calendar' but doesn't explain when to use this versus other calendar tools or what makes 'today' different from other time ranges.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcoming_eventsB
Get upcoming events for the next N days
Args: days_ahead: Number of days to look ahead (default: 7) calendar_id: Calendar ID (default: primary)
| Name | Required | Description | Default |
|---|---|---|---|
| days_ahead | No | ||
| calendar_id | No | primary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It implies a read operation ('Get') but doesn't disclose permissions needed, rate limits, pagination, error conditions, or what 'upcoming events' includes (e.g., all-day events, recurring events). The description is functional but lacks critical operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with a clear purpose statement followed by parameter details in a structured 'Args:' section. Every sentence earns its place by explaining the tool's function and parameters without unnecessary fluff, though it could be slightly more front-loaded with key distinctions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and parameters well, but lacks guidance on sibling differentiation and behavioral traits like permissions or output format, leaving gaps for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful context for both parameters: 'days_ahead' specifies it's the 'Number of days to look ahead' with a default, and 'calendar_id' clarifies it's a 'Calendar ID' with a default. This goes beyond the schema's basic titles and types, providing practical usage information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('upcoming events'), including the temporal scope ('for the next N days'). It distinguishes from some siblings like 'get_today_events' by specifying a variable time range, but doesn't explicitly differentiate from 'get_calendar_events' which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_calendar_events' or 'get_today_events'. It mentions the parameters but doesn't explain scenarios where this tool is preferred over siblings, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there is some overlap between get_calendar_events, get_today_events, and get_upcoming_events, which could cause confusion about which to use for specific date ranges. However, their descriptions clarify their scopes (specific time bounds, today-only, next N days), helping to mitigate misselection.
All tool names follow a consistent verb_noun pattern with snake_case (e.g., cancel_calendar_event, create_meet_event, get_all_calendars). This predictability makes it easy for agents to understand and use the toolset without confusion from mixed naming conventions.
With 6 tools, the count is reasonable for a calendar server, covering core operations like listing, creating, and canceling events. However, it feels slightly thin as it lacks update or delete operations for events (beyond cancel) and calendar management, which might limit agent workflows in more complex scenarios.
The toolset covers basic CRUD for events (create and cancel) and reading calendars/events, but there are notable gaps: no update_event tool to modify existing events, no delete_calendar or manage_calendar tools, and limited event query flexibility. This could cause agent failures when full lifecycle management is needed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
AI-native scheduler that lives in Claude. Describe meetings in plain English; Heldly does the rest.
GDPR-compliant calendar access for AI assistants. Google, Microsoft 365, Apple & more. EU-hosted.
Schedule and manage Google Calendar events directly from your workspace. Check availability, viewโฆ
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAllows interaction with Google Calendar through Claude Desktop using the Model Context Protocol, enabling calendar event management and schedule analysis.2
- AlicenseNot gradedqualityCmaintenanceEnables Claude to interact with Google Calendar through natural language, providing the ability to view, create, update, and delete calendar events with persistent OAuth2 authentication.20MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with Google Calendar through OAuth authentication, allowing users to list events, create and manage meetings, update or delete calendar entries, and find available time slots using natural language.72MIT
- FlicenseBqualityDmaintenanceEnables Claude to manage Google Calendar events, schedules, and meetings through natural conversation. It supports viewing calendars, creating Google Meet events, and searching for upcoming activities using Nango for authentication.6
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Shameerpc5029/google-calendar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server