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
https://www.googleapis.com/auth/calendar.app.created
https://www.googleapis.com/auth/calendar.events.freebusy
https://www.googleapis.com/auth/calendar.events.owned
https://www.googleapis.com/auth/calendar.events.owned.readonly
https://www.googleapis.com/auth/calendar.events.public.readonly

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

请求正文

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

响应

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

{
  "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 对实际数据调用此方法,然后查看响应。