manage_calendar
List events, view agendas, check availability, and create, update, or delete Google Calendar events from your connected accounts.
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. On list operations, "all" runs it once for every configured account. | ||
| 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 |