A practical guide to all 10 CalendarMCP tools. Real example prompts for each one, from listing events to batch-updating hundreds in one shot.
Most people think of an AI calendar assistant as a fancy "show me my schedule" button. CalendarMCP exposes ten tools that go much further than that. Here is what is actually possible.
list_eventsQuery your calendar across a time range
Lists events in any time window. Auto-paginates up to 2,500 results. Works across multiple calendars at once, merging and sorting by start time.
Example prompt
"Show me everything on my calendar for the next two weeks. Include the location and any attendees."
Practical use
Morning briefings. Conflict detection before scheduling something new. Reviewing what a busy month looks like before committing to a trip.
get_eventFetch full details of a specific event
Returns everything about a single event: description, location, all attendees, reminders, recurrence rules, and the calendar link.
Example prompt
"Get me the Zoom link for my 3pm meeting today."
Practical use
Pulling conference call details before a meeting. Checking who accepted an invite. Getting the full description of an event you only see the title of in your list view.
create_eventCreate a new calendar event with full details
Supports all event fields: title, description, location, start/end times, attendees, reminders, recurrence rules, color, visibility, and transparency. Works with both timed and all-day events.
Example prompt
"Schedule a weekly team standup every Monday at 9am for the next 3 months. Add alice@company.com and bob@company.com. Set a 5-minute popup reminder."
Practical use
Booking recurring meetings. Adding travel blocks (flights, hotels as all-day events). Creating events from email information without copy-pasting into the calendar UI.
update_eventPatch any field on an existing event
Partial update via PATCH. Only the fields you specify are changed. Everything else stays as-is. Supports all the same fields as create_event plus status changes (confirmed, tentative, cancelled).
Example prompt
"Move my dentist appointment on Thursday to next Thursday at the same time."
Practical use
Rescheduling when something comes up. Changing a meeting from "busy" to "free" when you are just holding time. Updating the location or call link after it changes.
delete_eventRemove an event from your calendar
Deletes an event by ID. The agent finds the right event first by listing or searching, then deletes it.
Example prompt
"Cancel my meeting with Bob next Tuesday. Find it and delete it."
Practical use
Cancelling meetings after a project wraps up. Clearing travel holds that are no longer needed. Cleaning up test events.
quick_add_eventCreate from natural language text
Pass a natural language string and Google parses it into a structured event. Handles relative dates, times, and locations from the text.
Example prompt
"Add: Lunch with Sarah tomorrow at noon at Cafe Rio on Main Street"
Practical use
Fast capture when you just want to jot something down without specifying every field. Works well for one-off personal events where the natural language format is faster than structured input.
list_calendarsSee all calendars you have access to
Returns all calendars the account has access to: primary, shared, team, and subscribed calendars. Includes IDs, names, colors, and access roles.
Example prompt
"Which calendars do I have access to? I want to start querying the team calendar separately."
Practical use
Finding the right calendar ID before running queries against a specific one. Checking what shared calendars an agent has visibility into.
find_free_timeQuery free/busy across one or more calendars
Runs a free/busy query against any number of calendars and returns the busy slots. The agent can then compute open windows from the results.
Example prompt
"Find a 90-minute window this week where both alice@company.com's calendar and mine are free between 10am and 5pm."
Practical use
Scheduling across multiple calendars without the back-and-forth. Checking if you have any breathing room before a deadline. Finding gaps for focus time.
manage_attendeesAdd or remove attendees without overwriting the list
Adds or removes specific attendees from an event. Unlike update_event (which replaces the full attendee list), this tool does a targeted add/remove without touching anyone else on the invite.
Example prompt
"Add carol@company.com to the project kickoff meeting on Friday. Don't change any other attendees."
Practical use
Adding a new team member to ongoing recurring meetings. Removing someone who left a project. Making targeted changes to a large attendee list without risk of overwriting.
batch_update_eventsUpdate up to 50 events in a single call
Takes an array of up to 50 event updates and executes them concurrently. Each update is a partial patch (same as update_event). Returns a summary of successes and failures.
Example prompt
"Mark all my travel events for the next three months as 'free' so they don't block my calendar in scheduling tools. Find them first, then update them all at once."
Practical use
Bulk suppressing reminders on a noisy category of events. Recoloring events by project. Marking an entire conference or sports season as transparent. Anything where you need the same change applied to many events.
The real power comes from combining these tools in a single agent session. A typical morning workflow might look like:
list_events to see today's scheduleget_event to pull the details and call link for the first meetingfind_free_time to find an open slot for a requested meetingcreate_event to book itmanage_attendees to add someone who was left offAll of that in one Claude conversation, with no calendar UI opened.
If you want to connect CalendarMCP to your agent, get started at calendarmcp.ai. Setup takes about two minutes.
Connect your Google Calendar to Claude and any MCP client in about two minutes.
Connect Google Calendar