manage_calendar
Check availability and manage Google Calendar events: list schedules, view agendas, create events from natural language or details, update, delete, and check free/busy availability across calendars.
Instructions
List events, view agenda, check availability, or manage calendar events.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End time (ISO 8601) — or, when allDay is true, a DATE (YYYY-MM-DD) that is the INCLUSIVE last day; the exclusive end date the Calendar API requires is computed for you. Optional for all-day events: a missing end (or one equal to start) makes a one-day event. | |
| days | No | Number of days ahead to show (default: today only) | |
| meet | No | Add a Google Meet video conference link. On `update`, true adds a link and false REMOVES an existing one; omit it to leave the link as it is. | |
| text | No | Natural language event description | |
| week | No | Show this week's events | |
| Yes | Account email address | ||
| query | No | Free-text search terms to filter events | |
| start | No | Start time (ISO 8601) — or a DATE (YYYY-MM-DD) when allDay is true | |
| allDay | No | Whether the event is all-day. When true, start and end are DATES (YYYY-MM-DD — an ISO datetime's date part is used) and end, if given, is the INCLUSIVE last day; the exclusive end date the Calendar API requires is computed for you. Omit it (or pass false) for a timed event with start/end as dateTime — pass false with new datetimes to convert an all-day event back to a timed one. On `update`, converting TO all-day needs only one of start/end; the other is derived from the event on record. Converting FROM all-day needs both, because the missing one would need a time of day only you can choose. | |
| eventId | No | Event ID | |
| summary | No | Event title | |
| timeMax | No | End of range (ISO 8601) | |
| timeMin | No | Start of range (ISO 8601). On `list`, defaults to today. | |
| location | No | Event location | |
| tomorrow | No | Show tomorrow's events instead of today | |
| attendees | No | Comma-separated email addresses. On `update`, whatever you pass REPLACES the existing list — addresses you leave out are removed, and an empty string clears everyone. OMIT the parameter to leave the attendee list untouched while changing other fields. On `freebusy`, the addresses whose availability to check. | |
| operation | Yes | list: upcoming events — defaults to primary calendar, use calendarId to target a specific calendar (use 'calendars' operation to discover IDs) | agenda: today's schedule at a glance (all calendars). Returns calendarId per event for follow-up get calls. | get: full event details by ID. For shared calendar events, calendarId is required (use agenda or list to discover it). | create: create a new calendar event | quickAdd: create event from natural language (e.g. 'Lunch with Alice tomorrow at noon') | update: update an existing event (patch semantics — only changed fields needed) | delete: delete an event | calendars: list all calendars the user has access to | freebusy: check availability (free/busy) for a time range. Automatically includes own calendar; add attendees to check others. | |
| calendarId | No | Calendar ID. Use the `calendars` operation to list available IDs; required for events on shared calendars. Defaults to 'primary' on the event operations (`list`, `get`, `create`, `quickAdd`, `update`, `delete`). On `agenda`, a calendar name or ID to filter to — OMIT it to span all calendars, and do not pass 'primary', which is an API alias rather than an id agenda matches on. On `freebusy`, a comma-separated list of calendar IDs to check IN ADDITION to your own. | |
| maxResults | No | Max events (default: 10, max: 50) | |
| description | No | Event description or notes |