Events: instances

傳回指定週期性事件的例項。 立即試用查看範例

要求

HTTP 要求

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

參數

參數名稱 說明
路徑參數
calendarId string 日曆 ID。如要擷取日曆 ID,請呼叫 calendarList.list 方法。如要存取目前登入使用者的主要日曆,請使用「primary」字詞。
eventId string 週期性活動 ID,
選用的查詢參數
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 用戶端程式庫

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?

試試看!

使用下方的 APIs Explorer,針對即時資料呼叫這個方法,看看會有什麼結果。