Tool: list_events
Returns events on the given calendar matching all specified constraints. Time constraints should not be specified unless requested by the user. For open-ended keyword or topic-based searches on the primary calendar, the search_events tool must be used instead.
The following sample demonstrate how to use curl to invoke the list_events MCP tool.
| Curl Request |
|---|
curl --location 'https://calendarmcp.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_events", "arguments": { // provide these details according to the tool MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
ListEventsRequest
| JSON representation |
|---|
{
"eventTypeFilter": [
string
],
"eventType": [
enum ( |
| Fields | |
|---|---|
eventTypeFilter[] |
Optional. Deprecated: use |
eventType[] |
Optional. The event types to return. If empty, only the following event types are returned: |
Union field
|
|
calendarId |
Optional. ID of the calendar containing the events. Email address - can be resolved using |
Union field
|
|
pageSize |
Optional. Max events per page (default |
Union field
|
|
pageToken |
Optional. Next page token. Use the value from the previous page's |
Union field
|
|
startTime |
Optional. The lower bound of a time range. Must only be set when a specific timeframe is requested by the user. Must be an ISO 8601 timestamp less than |
Union field
|
|
endTime |
Optional. The upper bound of a time range. Must only be set when a specific timeframe or a time in the past is requested by the user. Must be an ISO 8601 timestamp greater than |
Union field
|
|
timeZone |
Optional. Time zone (IANA ID, for example |
Union field
|
|
orderBy |
Optional. The order in which events should be returned. Possible values are:
|
Union field
|
|
fullText |
Optional. Free-form case-insensitive search matching title, description, location, or attendees. Matches events containing all query terms verbatim (AND search). |
EventType
Event type. Immutable after creation.
| Enums | |
|---|---|
EVENT_TYPE_UNSPECIFIED |
Treated as DEFAULT. |
DEFAULT |
Regular event. Default value. |
OUT_OF_OFFICE |
Out-of-office event. |
FOCUS_TIME |
Focus-time event. |
WORKING_LOCATION |
Working location event. |
BIRTHDAY |
Special all-day event with an annual recurrence. |
FROM_GMAIL |
Event from Gmail. This type of event cannot be created. |
Output Schema
ListEventsResponse
| JSON representation |
|---|
{ "summary": string, "description": string, "updated": string, "timeZone": string, "accessRole": string, "defaultReminders": [ { object ( |
| Fields | |
|---|---|
summary |
Title of the calendar. |
description |
Description of the calendar. |
updated |
Last update time (ISO 8601) of the calendar. |
timeZone |
Time zone of the calendar. |
accessRole |
Output only. User's access role for the calendar. Possible values are:
owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.
|
defaultReminders[] |
Default reminders for events on the calendar. |
events[] |
List of events. |
Union field
|
|
nextPageToken |
Next page token. Omitted if no next page exists. |
Reminder
| JSON representation |
|---|
{ "method": string "minutes": integer } |
| Fields | |
|---|---|
Union field
|
|
method |
Required. Delivery method. Possible values are:
|
Union field
|
|
minutes |
Required. Minutes in advance that the reminder is triggered. |
Event
| JSON representation |
|---|
{ "id": string, "status": string, "htmlLink": string, "created": string, "updated": string, "summary": string, "description": string, "location": string, "creator": { object ( |
| Fields | |
|---|---|
id |
Unique identifier. |
status |
Optional. Status. Possible values are:
|
htmlLink |
Output only. An absolute link to this event in the Google Calendar Web UI. |
created |
Output only. Creation time (ISO 8601). |
updated |
Output only. Last modification time (ISO 8601). |
summary |
Title. |
description |
Optional. Description. Can contain HTML. |
location |
Optional. Location. |
creator |
Output only. Creator. |
organizer |
Output only. Organizer. Also listed in attendees if attending. |
start |
Start time (inclusive). For recurring events the first instance is used.. |
end |
End time (exclusive). For recurring events the first instance is used. |
recurrence[] |
Recurrence rules as |
recurringEventId |
Parent recurring event ID for instances of recurring events. |
originalStartTime |
Original start time of recurring instances. This is the time at which this instance would start according to the recurrence data. |
transparency |
Optional. Deprecated: use |
visibility |
Optional. Visibility of the event. Possible values are:
|
attendees[] |
Attendees. |
conferenceUrl |
Video conference link. |
colorId |
The color of the event. Only affects your own calendar view. This is an ID referring to an entry in the calendar's color palette (string
|
overrideReminders[] |
Reminders. Falls back to calendar defaults if unset. |
attachments[] |
File attachments. |
guestPermissions |
Guest permissions. |
eventType |
Event type. |
workingLocationProperties |
Working location properties. Populated only when |
availability |
Optional. Availability setting. |
Principal
| JSON representation |
|---|
{ "email": string, "displayName": string, "self": boolean } |
| Fields | |
|---|---|
email |
Email. |
displayName |
Name. |
self |
Output only. Whether this principal corresponds to the calendar on which this copy of the event appears. Default: |
DateOrDateTime
| JSON representation |
|---|
{ "date": string, "dateTime": string, "timeZone": string } |
| Fields | |
|---|---|
date |
ISO 8601 date at midnight UTC (for example, |
dateTime |
ISO 8601 timestamp (for example, |
timeZone |
TZDB timezone name. |
Attendee
| JSON representation |
|---|
{ "id": string "email": string "displayName": string "organizer": boolean "self": boolean "resource": boolean "optionalAttendee": boolean "responseStatus": string "comment": string "additionalGuests": integer } |
| Fields | |
|---|---|
Union field
|
|
id |
Output only. Profile ID. |
Union field
|
|
email |
Required. Attendee's email address. |
Union field
|
|
displayName |
Optional. Name. |
Union field
|
|
organizer |
Output only. Whether attendee is the organizer. Default: |
Union field
|
|
self |
Output only. Whether this entry represents the calendar on which this copy of the event appears. Default: |
Union field
|
|
resource |
Optional. Whether attendee is a resource (for example, room). Immutable, can only be set when the attendee is initially added. Default: |
Union field
|
|
optionalAttendee |
Optional. Whether attendee is optional. Default: |
Union field
|
|
responseStatus |
Optional. Response status. Possible values are:
|
Union field
|
|
comment |
Output only. Response comment. |
Union field
|
|
additionalGuests |
Optional. Number of additional guests. Default: |
Attachment
| JSON representation |
|---|
{ "fileUrl": string "title": string } |
| Fields | |
|---|---|
Union field
|
|
fileUrl |
Required. URL link to the attachment. |
Union field
|
|
title |
Optional. Attachment title. |
GuestPermissions
| JSON representation |
|---|
{ "guestsCanInviteOthers": boolean "guestsCanModify": boolean "guestsCanSeeGuests": boolean } |
| Fields | |
|---|---|
Union field
|
|
guestsCanInviteOthers |
Optional. Whether guests can invite others. |
Union field
|
|
guestsCanModify |
Optional. Whether guests can modify the event. |
Union field
|
|
guestsCanSeeGuests |
Optional. Whether guests can see other guests. |
WorkingLocationProperties
| JSON representation |
|---|
{
"type": enum ( |
| Fields | |
|---|---|
Union field
|
|
type |
Optional. Working location type. |
Union field
|
|
customLocationLabel |
Optional. The label for a custom location. Required if type is |
EventType
Event type. Immutable after creation.
| Enums | |
|---|---|
EVENT_TYPE_UNSPECIFIED |
Treated as DEFAULT. |
DEFAULT |
Regular event. Default value. |
OUT_OF_OFFICE |
Out-of-office event. |
FOCUS_TIME |
Focus-time event. |
WORKING_LOCATION |
Working location event. |
BIRTHDAY |
Special all-day event with an annual recurrence. |
FROM_GMAIL |
Event from Gmail. This type of event cannot be created. |
WorkingLocationType
Type of working location.
| Enums | |
|---|---|
WORKING_LOCATION_TYPE_UNSPECIFIED |
Unspecified working location type. Will be treated as HOME_OFFICE. |
HOME_OFFICE |
Home office. |
CUSTOM_LOCATION |
Custom location. |
Availability
Availability setting for an event.
| Enums | |
|---|---|
AVAILABILITY_UNSPECIFIED |
Default. Treated as BUSY. |
AVAILABILITY_BUSY |
Blocks time on calendar. |
AVAILABILITY_FREE |
Does not block time. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌