Events: instances

返回指定周期性活动的实例。 立即试用查看示例

请求

HTTP 请求

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId/instances

参数

参数名称 说明
路径参数
calendarId string 日历标识符。要检索日历 ID,请调用 calendarList.list 方法。如果您想访问当前登录的用户的主日历,请使用关键字“primary”。
eventId string 周期性活动标识符。
可选的查询参数
alwaysIncludeEmail boolean 已弃用并忽略。即使没有真实的电子邮件地址可供使用,系统也会始终在组织者、创作者和参加者的 email 字段中返回一个值(即,将提供一个生成的非工作值)。
maxAttendees integer 回复中可包含的参加者人数上限。如果参加者人数超过指定数量,则仅返回参与者。可选。
maxResults integer 一个结果页上返回的事件数上限。默认情况下,该值为 250 个事件。页面大小不得超过 2500 个事件。可选。
originalStart string 结果中实例的原始开始时间。可选。
pageToken string 用于指定要返回哪个结果页面的令牌。可选。
showDeleted boolean 结果中是否包含已删除的事件(status 等于“cancelled”)。如果 singleEvents 为 False,则已取消的周期性活动实例仍会包含在内。可选。默认值为 False。
timeMax datetime 要作为过滤依据的事件开始时间上限(不含边界值)。可选。默认不按开始时间过滤。必须是具有强制性时区偏移量的 RFC3339 时间戳。
timeMin datetime 要作为过滤依据的事件结束时间的下限(含此下限)。可选。默认为不按结束时间过滤。必须是具有强制性时区偏移量的 RFC3339 时间戳。
timeZone string 响应中使用的时区。可选。默认时区为日历的时区。

授权

此请求允许使用以下至少一个范围的授权:

范围
https://www.googleapis.com/auth/calendar.readonly
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events.readonly
https://www.googleapis.com/auth/calendar.events

如需了解详情,请参阅身份验证和授权页面。

请求正文

使用此方法时请勿提供请求正文。

响应

如果成功,此方法将返回采用以下结构的响应正文:

{
  "kind": "calendar#events",
  "etag": etag,
  "summary": string,
  "description": string,
  "updated": datetime,
  "timeZone": string,
  "accessRole": string,
  "defaultReminders": [
    {
      "method": string,
      "minutes": integer
    }
  ],
  "nextPageToken": string,
  "nextSyncToken": string,
  "items": [
    events Resource
  ]
}
属性名称 说明 备注
kind string 集合的类型(“calendar#events”)。
etag etag 集合的 ETag。
summary string 日历的标题。只读。
description string 日历说明。只读。
updated datetime 日历的上次修改时间(以 RFC3339 时间戳表示)。只读。
timeZone string 日历的时区。只读。
accessRole string 用户对此日历的访问角色。只读。可能的值包括:
  • none”- 用户没有访问权限。
  • freeBusyReader”- 用户拥有对有空/忙碌信息的读取权限。
  • reader”- 用户拥有日历的读取权限。拥有读者访问权限的用户可看到不公开活动,但会隐藏活动详细信息。
  • writer”- 用户拥有日历的读取和写入权限。拥有写入者权限的用户可以看到不公开活动,且可以看到活动详细信息。
  • owner”- 用户拥有日历的所有权。此角色拥有 writer 角色的所有权限,并且还具有查看和操作 ACL 的额外权限。
defaultReminders[] list 日历中针对经过身份验证的用户的默认提醒。这些提醒适用于此日历中所有不会明确替换这些活动(即没有将 reminders.useDefault 设置为 True)的活动。
defaultReminders[].method string 此提醒使用的方法。可能的值包括:
  • email”- 提醒通过电子邮件发送。
  • popup”- 通过界面弹出式窗口发送提醒。

添加提醒时必填。

可写
defaultReminders[].minutes integer 活动开始前多少分钟,提醒应触发。有效值介于 0 到 40320 之间(4 周以分钟为单位)。

添加提醒时必填。

可写
nextPageToken string 用于访问此结果下一页的令牌。如果没有进一步的结果,系统会省略该值。在这种情况下,系统会提供 nextSyncToken
items[] list 日历上的活动列表。
nextSyncToken string 稍后使用的令牌,用于仅检索自返回此结果后发生更改的条目。如果还有更多结果,系统会省略该值。在这种情况下,系统会提供 nextPageToken

示例

注意:此方法的代码示例并未列出所有受支持的编程语言(请参阅客户端库页面,查看受支持的语言列表)。

Java

使用 Java 客户端库

import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.Event;
import com.google.api.services.calendar.model.Events;

// ...

// Initialize Calendar service with valid OAuth credentials
Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
    .setApplicationName("applicationName").build();

// Iterate over the instances of a specific recurring event
String pageToken = null;
do {
  Events events =
      service.events().instances('primary', 'eventId').setPageToken(pageToken).execute();
  List<Event> items = events.getItems();
  for (Event event : items) {
    System.out.println(event.getSummary());
  }
  pageToken = events.getNextPageToken();
} while (pageToken != null);

Python

使用 Python 客户端库

page_token = None
while True:
  events = service.events().instances(calendarId='primary', eventId='eventId',
                                      pageToken=page_token).execute()
  for event in events['items']:
    print event['summary']
  page_token = events.get('nextPageToken')
  if not page_token:
    break

PHP

使用 PHP 客户端库

$events = $service->events->instances('primary', "eventId");

while(true) {
  foreach ($events->getItems() as $event) {
    echo $event->getSummary();
  }
  $pageToken = $events->getNextPageToken();
  if ($pageToken) {
    $optParams = array('pageToken' => $pageToken);
    $events = $service->events->instances('primary', "eventId",
        $optParams);
  } else {
    break;
  }
}

Ruby

使用 Ruby 客户端库

page_token = nil
begin
  result = client.list_event_instances('primary', 'eventId')
  result.items.each do |e|
    print e.summary + "\n"
  end
  if result.next_page_token != page_token
    page_token = result.next_page_token
  else
    page_token = nil
  end
end while !page_token.nil?

试试看!

请使用下面的 API Explorer 对实时数据调用此方法并查看响应。