get_events
Retrieve calendar events by ID or list events within a time range with optional keyword filter.
Instructions
Fetch events from a calendar — one by ID, or a filtered range.
Two modes: (1) pass event_id to retrieve a single event (range/query params ignored); (2) omit event_id to list events in a time window, optionally filtered by keyword. For free/busy scanning across many calendars use query_freebusy instead. For creating/updating events use manage_event. Requires the calendar.readonly OAuth scope.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | The user's Google email address (authenticated account). | |
| calendar_id | No | Calendar ID from list_calendars, or "primary" for the user's main calendar. Default "primary". | primary |
| event_id | No | Specific event ID to fetch. From a prior get_events call or a calendar URL like calendar.google.com/calendar/u/0/r/eventedit/<id>. When set, all range/query filters are ignored. | |
| time_min | No | Range start, RFC3339 (e.g. "2026-05-01T00:00:00Z" or "2026-05-01"). Defaults to now when omitted. | |
| time_max | No | Range end, RFC3339 exclusive. Omit for open-ended range (capped by max_results). | |
| max_results | No | Cap on events returned, 1-2500. Default 25. | |
| query | No | Free-text filter matched against summary, description, and location. | |
| detailed | No | False returns just summary + times + link; True adds description, location, attendees with response status, and organizer. | |
| include_attachments | No | When detailed=True, also include attachment fileId/fileUrl/mimeType/title for events with attached Drive files. Ignored when detailed=False. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |