工具:list_events
列出给定日历中满足给定条件的日历活动。
主要特性:
- 任何日历 ID,可以是用户的主日历或其他日历。
- 时间范围过滤。
- 检索符合时间限制条件的所有活动。
如果满足以下条件,请使用 search_events 工具搜索用户的主日历:
- 您正在查询与特定主题、类别或意图(例如“午餐会议”“项目同步”)相符的活动。
- 您需要找到(前 K 个)最相关的事件,而不是满足约束条件的所有事件。
- 您需要关键字搜索或语义搜索功能。
此工具适用于以下类型的查询:
- 我的日历上明天有什么安排?
- 我的日历上 2025 年 7 月 14 日有什么安排?
- 我下周有哪些会议?
- 我今天下午有任何冲突吗?
John 明天有哪些会议?
示例:
list_events(
startTime='2024-09-17T06:00:00',
endTime='2024-09-17T12:00:00',
pageSize=10
)
# Returns up to 10 calendar events between 6:00 AM and 12:00 PM on September 17, 2024 from the user's primary calendar.
以下示例演示了如何使用 curl 调用 list_events MCP 工具。
| Curl 请求 |
|---|
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 }' |
输入架构
ListEventsRequest
| JSON 表示法 |
|---|
{ "eventTypeFilter": [ string ], "calendarId": string "pageSize": integer "pageToken": string "startTime": string "endTime": string "timeZone": string "orderBy": string "fullText": string } |
| 字段 | |
|---|---|
eventTypeFilter[] |
可选。要返回的事件类型。可能的值包括:
如果为空,则仅返回以下事件类型: |
联合字段
|
|
calendarId |
可选。要列出活动的日历 ID。默认值为用户的主日历。 |
联合字段
|
|
pageSize |
可选。一个结果页面中返回的事件数上限。即使有更多事件与查询匹配,结果页面中的事件数也可能小于此值,甚至可能没有事件。如果响应中的 |
联合字段
|
|
pageToken |
可选。用于指定要返回哪个结果页面的令牌。 |
联合字段
|
|
startTime |
可选。活动结束时间的下限(不含)。系统仅返回严格晚于此时间的结束时间(即搜索时间窗口的开始时间)。如果未提供 |
联合字段
|
|
endTime |
可选。活动的开始时间上限(不含)。系统只会返回严格在此时间之前开始的活动(即搜索时间窗口的结束时间)。如果指定,则必须大于或等于 |
联合字段
|
|
timeZone |
可选。响应中使用的时区以及用于解析请求中不含时区的日期的时区(格式采用 IANA 时区数据库名称,例如 |
联合字段
|
|
orderBy |
可选。应返回事件的顺序。可能的值包括:
|
联合字段
|
|
fullText |
可选。自由格式的搜索查询,用于搜索标题、说明、地点和参加者。 |
输出架构
ListEventsResponse
| JSON 表示法 |
|---|
{ "summary": string, "description": string, "updated": string, "timeZone": string, "accessRole": string, "defaultReminders": [ { object ( |
| 字段 | |
|---|---|
summary |
日历的标题。 |
description |
日历的说明。 |
updated |
日历的上次修改时间(以 ISO 8601 时间戳的形式表示)。 |
timeZone |
日历的时区。 |
accessRole |
相应日历的用户访问角色。只读。可能的值包括:
|
defaultReminders[] |
已通过身份验证的用户的日历上的默认提醒。这些提醒适用于相应日历中的所有活动,除非这些活动明确替换了这些提醒(即,将 reminders.useDefault 设置为 True)。 |
events[] |
日历中的活动列表。 |
联合字段
|
|
nextPageToken |
用于访问相应结果的下一页的令牌。如果没有更多结果,则省略此字段。 |
提醒
| JSON 表示法 |
|---|
{ "method": string, "minutes": integer } |
| 字段 | |
|---|---|
method |
向用户发送提醒的方式。可能的值包括:
添加提醒时需要提供。 |
minutes |
提醒应提前多少分钟发送。 |
事件
| JSON 表示法 |
|---|
{ "id": string, "status": string, "htmlLink": string, "created": string, "updated": string, "summary": string, "description": string, "location": string, "creator": { object ( |
| 字段 | |
|---|---|
id |
相应事件的不透明标识符。创建新的单次活动或周期性活动时,您可以指定其 ID。提供的 ID 必须遵循以下规则:
由于该系统是全球分布式的,因此我们无法保证在创建活动时检测到 ID 冲突。为最大限度地降低冲突风险,我们建议使用已确立的 UUID 算法,例如 RFC4122 中所述的算法。 如果您未指定 ID,服务器会自动生成一个 ID。 请注意,icalUID 和 ID 并不相同,在创建活动时只能提供其中一个。在语义上,两者之间的一个区别在于,在周期性活动中,一个活动的所有实例都具有不同的 ID,但它们都共享相同的 icalUID。 |
status |
活动的状态。可选。可能的值包括:
“已取消”状态表示两种不同的状态,具体取决于活动类型:
在组织者的日历中,已取消的活动会继续显示活动详情(摘要、地点等),以便组织者恢复(取消删除)这些活动。同样,用户受邀参加但手动移除的活动也会继续提供详细信息。不过,如果增量同步请求的 showDeleted 设置为 false,则不会返回这些详细信息。 如果活动更改了组织者(例如通过移动操作),并且原始组织者不在参加者列表中,则会留下一个已取消的活动,其中只有 id 字段保证已填充。 |
htmlLink |
Google 日历 Web 界面中相应活动的绝对链接。只读。 |
created |
事件的创建时间(采用 ISO 8601 格式的时间戳)。只读。 |
updated |
主要事件数据的上次修改时间(采用 ISO 8601 格式的时间戳)。更新活动提醒不会导致此设置发生变化。只读。 |
summary |
活动的标题。 |
description |
活动的说明。可包含 HTML。可选。 |
location |
活动地理位置(自由格式文本)。可选。 |
creator |
活动的创建者。只读。 |
organizer |
活动的组织者。如果组织者也是参会者,则会在参会者中单独添加一个条目,并将组织者字段设置为 True。只读。 |
start |
活动的开始时间(含)。对于周期性活动,这是第一个实例的开始时间。 |
end |
活动的结束时间(不含)。对于周期性活动,这是第一个实例的结束时间。 |
recurrence[] |
周期性活动的 RRULE、EXRULE、RDATE 和 EXDATE 行的列表,如 RFC5545 中所指定。请注意,此字段中不允许使用 DTSTART 和 DTEND 行;活动开始时间和结束时间在 start 和 end 字段中指定。对于单次活动或周期性活动的实例,此字段会被省略。 |
recurringEventId |
对于周期性活动的实例,这是相应实例所属的周期性活动的 ID。固定不变。 |
originalStartTime |
对于周期性活动的某个实例,这是根据由 recurringEventId 标识的周期性活动中的周期性数据,该活动应开始的时间。即使实例已移至其他时间,它也能在周期性活动系列中唯一标识该实例。固定不变。 |
transparency |
相应活动是否会占用日历中的时间。可选。可能的值包括:
|
visibility |
活动的公开范围。可选。可能的值包括:
|
attendees[] |
活动的参加者。 |
eventType |
具体事件类型。活动创建后,此设置将无法修改。可能的值包括:
|
conferenceUrl |
活动的 Google Meet 链接。 |
colorId |
活动颜色 ID(字符串
在 Google 日历中,活动颜色用作类别,可以按活动或按系列进行设置。用户可以在网页界面中为颜色分配自定义标签(例如 |
主账号
| JSON 表示法 |
|---|
{ "email": string, "displayName": string, "self": boolean } |
| 字段 | |
|---|---|
email |
主账号(日历)的电子邮件地址。 |
displayName |
主账号的名称(如果有)。 |
self |
相应正文是否与显示此活动副本的日历相对应。只读。默认值为 False。 |
DateOrDateTime
| JSON 表示法 |
|---|
{ "date": string, "dateTime": string, "timeZone": string } |
| 字段 | |
|---|---|
date |
采用 ISO 8601 格式的日期(UTC 午夜),例如 |
dateTime |
采用 ISO 8601 格式的时间戳,例如 |
timeZone |
TZDB 时区名称(如果有)。 |
参加者
| JSON 表示法 |
|---|
{ "id": string, "email": string, "displayName": string, "organizer": boolean, "self": boolean, "resource": boolean, "optionalAttendee": boolean, "responseStatus": string, "comment": string, "additionalGuests": integer } |
| 字段 | |
|---|---|
id |
参会者的个人资料 ID(如果有)。 |
email |
参会者的电子邮件地址(如有)。添加参会者时,必须提供此字段。必须是有效的电子邮件地址(符合 RFC5322 的规定)。添加参会者时必须指定这项设置。 |
displayName |
参会者的姓名(如果有)。可选。 |
organizer |
相应参加者是否为活动的组织者。只读。默认值为 False。 |
self |
相应条目是否表示显示相应活动副本的日历。只读。默认值为 False。 |
resource |
相应出席者是否为资源。只能在首次将参会者添加到活动时设置。后续修改会被忽略。可选。默认值为 False。 |
optionalAttendee |
相应人员是否为可选参加者。可选。默认值为 False。 |
responseStatus |
参会者的回复状态。可能的值包括:
|
comment |
参加者的回答评论。可选。 |
additionalGuests |
额外房客人数。可选。默认值为 0。 |
工具注释
破坏性提示:❌ | 等幂性提示:✅ | 只读提示:✅ | 开放世界提示:❌