Google Calendar MCP Server
Allows for comprehensive management of Google Calendar events, including viewing schedules, listing calendars, searching for events, and creating or canceling meetings.
Enables the creation of calendar events with integrated Google Meet links and attendee management for video conferencing.
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 ServerSchedule a team meeting for tomorrow at 2 PM with a Google Meet link"
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/ampcome-mcps/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 full burden for behavioral disclosure. While 'Cancel (delete)' implies a destructive mutation, it doesn't specify whether this requires specific permissions, if the action is reversible, what happens to attendees, or any rate limits. This is a significant gap for a mutation tool.
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 extremely concise and well-structured: a clear purpose statement followed by brief parameter explanations. Every sentence adds value with zero wasted words, making it easy 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?
For a destructive mutation tool with no annotations and no output schema, the description is insufficient. It doesn't cover authentication requirements, error conditions, what happens to event attendees, confirmation behavior, or return values. The agent lacks critical information for safe usage.
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 provides clear semantic explanations for both parameters ('Calendar ID where the event exists' and 'The unique identifier of the event to cancel'), which is valuable since schema description coverage is 0%. However, it doesn't provide format examples or validation rules.
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 action ('Cancel (delete)') and resource ('a specific event from Google Calendar'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'create_meet_event' or 'get_calendar_events' beyond the obvious action difference.
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. There's no mention of prerequisites (e.g., needing event ownership), comparison to similar tools, or scenarios where this is appropriate versus other event management operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meet_eventA
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it states the tool creates events with Meet integration, it doesn't disclose important behavioral traits like authentication requirements, whether the event is immediately published, what happens with invalid inputs, rate limits, or error handling. The description is insufficient for a mutation tool with zero 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 appropriately sized and front-loaded with the core purpose statement. The Args section is well-structured but could be more concise by avoiding repetition of obvious information (like 'Event title/summary' for summary). Every sentence serves a purpose, though minor trimming is possible.
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 lacks crucial information about what the tool returns, error conditions, authentication requirements, and behavioral details. The parameter documentation helps, but doesn't compensate for the missing contextual information needed for safe and effective use.
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 providing clear parameter explanations in the Args section. It adds meaningful context beyond the schema, including format examples for datetime parameters and default values. However, it doesn't fully explain all 7 parameters' semantics (like what 'primary' means for calendar_id).
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 resource ('with Google Meet integration'), distinguishing it from sibling tools like get_calendar_events or cancel_calendar_event. It precisely communicates the tool's function without being vague or tautological.
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 implies usage for creating calendar events with Meet integration, but provides no explicit guidance on when to use this tool versus alternatives like get_upcoming_events or cancel_calendar_event. There's no mention of prerequisites, error conditions, or specific scenarios where this tool is preferred over others.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on permissions required, rate limits, pagination, or the format of returned data. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
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, clear sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and efficient, making it easy to understand at a glance. Every part of the description earns its place by conveying essential information.
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 adequate but has clear gaps. It explains the basic purpose but lacks behavioral context like authentication or data format. For a read-only tool with no complex inputs, it meets minimum viability but could be more informative.
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 tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. A baseline score of 4 is applied for tools with no parameters, as there's nothing to compensate for.
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 action ('Get') and resource ('all Google Calendars accessible to the user'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'get_calendar_events' or 'get_today_events', which focus on events rather than calendars, but the distinction is implied rather than stated.
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 sibling tools like 'get_calendar_events' for retrieving events instead of calendars. Usage is implied by the name and description but not explicitly defined.
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 the full burden of behavioral disclosure. While it implies this is a read operation ('Get events'), it doesn't specify whether authentication is required, what permissions are needed, how results are ordered, whether pagination is supported, or what happens when parameters are omitted. For a tool with 4 parameters and no annotation coverage, this leaves significant behavioral 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?
The description is efficiently structured with a clear purpose statement followed by well-organized parameter documentation. Every sentence serves a purpose, and the information is front-loaded with the core functionality stated first. The Args section is neatly formatted and easy to parse.
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 tool with 4 parameters, no annotations, and no output schema, the description provides adequate parameter documentation but lacks critical behavioral context. It doesn't explain what the tool returns (event structure, fields included), error conditions, authentication requirements, or how it differs from sibling tools. The parameter documentation is good, but overall completeness is only minimal viable.
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 provides parameter documentation in the Args section, adding meaningful context beyond the 0% schema description coverage. It explains that 'calendar_id' defaults to 'primary', clarifies the ISO format requirement for time parameters, and specifies the default for 'max_results'. This compensates well for the lack of schema descriptions, though it doesn't fully explain the implications of null time values.
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 'events from a specific Google Calendar', making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'get_today_events' or 'get_upcoming_events' beyond mentioning 'specific Google Calendar' versus those tools' implied scopes.
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_today_events' or 'get_upcoming_events'. It doesn't mention prerequisites, authentication needs, or any contextual constraints that would help an agent choose between these similar calendar query 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?
No annotations are provided, so the description carries full burden. It states it 'gets' events (read operation) but doesn't disclose behavioral traits like authentication requirements, rate limits, timezone handling, what 'today' means (local vs UTC), pagination, error conditions, or response format. For a read tool with zero annotation coverage, this is inadequate.
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?
Two sentences with clear front-loading of purpose. The Args section is appropriately brief. No wasted words, though the structure could be slightly improved by integrating the parameter explanation more naturally rather than as a separate section.
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 calendar query tool with no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It doesn't explain what 'events' include, time boundaries for 'today', authentication needs, error handling, or response structure. Given the sibling tools suggest a calendar API context, more behavioral context is needed.
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%, but the description adds the parameter 'calendar_id' with explanation 'Calendar ID (default: primary)'. This provides basic semantics beyond the schema's title 'Calendar Id'. However, it doesn't explain format expectations, valid values beyond 'primary', or what happens with invalid IDs. With only 1 parameter, baseline would be 4, but the minimal explanation keeps it at 3.
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' - a specific verb ('Get') and resource ('today's events') with scope ('from the primary calendar'). It doesn't explicitly differentiate from siblings like 'get_calendar_events' or 'get_upcoming_events', but the 'today' timeframe provides some implicit 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?
No guidance on when to use this tool versus alternatives like 'get_calendar_events' or 'get_upcoming_events'. The description only states what it does, not when it's appropriate versus other calendar query tools. No mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcoming_eventsC
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves events but doesn't mention permissions needed, rate limits, pagination, sorting order, what 'upcoming' means relative to current time, or whether it includes all-day events. For a read operation with zero annotation coverage, this leaves significant behavioral 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?
The description is appropriately concise with a clear purpose statement followed by parameter explanations. The two-sentence structure is efficient, though the parameter section could be integrated more smoothly. There's no redundant or wasted text.
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 no annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions or rate limits, doesn't differentiate from siblings, and provides minimal parameter details. For a tool with 2 parameters and multiple similar siblings, this leaves the agent with insufficient context.
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 schema provides no parameter descriptions. The description adds basic semantics: 'days_ahead' as 'Number of days to look ahead' and 'calendar_id' as 'Calendar ID'. However, it doesn't explain valid ranges (e.g., minimum/maximum days), what 'primary' means for calendar_id, or if other IDs are accepted. With 2 parameters and low coverage, this provides marginal compensation.
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: 'Get upcoming events for the next N days'. It specifies the verb ('Get') and resource ('upcoming events') with a temporal scope ('next N days'). However, it doesn't explicitly differentiate from sibling tools like 'get_calendar_events' or 'get_today_events', which likely 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. With siblings like 'get_calendar_events', 'get_today_events', and 'get_all_calendars', there's no indication of how this tool differs in scope, filtering, or use cases. The agent must infer usage from the name and parameters 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 get_calendar_events, get_today_events, and get_upcoming_events overlap significantly in functionality. An agent might struggle to choose between them for general event retrieval, though their specific scopes (today, upcoming, custom time range) provide some differentiation in descriptions.
All tools follow a consistent verb_noun pattern with snake_case naming (e.g., cancel_calendar_event, create_meet_event, get_all_calendars). The naming is predictable and readable throughout the set.
With 6 tools, the count is reasonable for a calendar server, but it feels slightly thin. Core operations like updating events or managing calendar settings are missing, which could justify a few more tools to cover the domain more completely.
The server covers basic CRUD operations (create and cancel events, get events and calendars), but lacks update functionality for events, which is a notable gap. There are also no tools for managing calendar properties (e.g., create/delete calendars, update event attendees), limiting agent workflows.
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
AI-native scheduler that lives in Claude. Describe meetings in plain English; Heldly does the rest.
Schedule and manage Google Calendar events directly from your workspace. Check availability, viewโฆ
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
GDPR-compliant calendar access for AI assistants. Google, Microsoft 365, Apple & more. EU-hosted.
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
- FlicenseBqualityDmaintenanceEnables Claude to interact with Google Calendar through natural conversation, allowing users to view schedules, create meetings with Google Meet, cancel events, and search calendars using Nango for OAuth authentication.6
- 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
Appeared in Searches
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/ampcome-mcps/google-calendar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server