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 個事件。每頁的事件數量不得超過 2,500 個。選用。
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」:使用者擁有日曆的擁有權。這個角色具有「作者」角色的所有權限,並可查看及操作 ACL。
defaultReminders[] list 已驗證使用者日曆上的預設提醒事項。這些提醒適用於這個日曆中未明確覆寫的所有活動 (也就是未將 reminders.useDefault 設為 True)。
defaultReminders[].method string 提醒事項使用的提醒方法。可能的值包括:
  • email」- 系統會透過電子郵件傳送提醒。
  • popup」- 透過 UI 彈出式視窗傳送提醒。

新增提醒時必填。

可寫入
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?

試試看!

您可以使用下方的 API Explorer,針對即時資料呼叫這個方法,然後查看回應。