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”- 用户拥有日历的所有权。此角色具有写入者角色的所有权限,还可以查看和处理 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 针对实际数据调用此方法,然后查看响应。