事件類型

本頁面說明 eventType 屬性,以及事件類型的規格 只有 Google Calendar API 提供這項功能

使用者可以在 Google 日曆建立一般活動,以及 專為特定用途和自訂屬性設計。

事件類型可在 API 的下列位置找到:

  • 所有事件都會以 eventType 傳回。
  • eventType 都必須在建立或更新活動資源時設定。如未設定, 系統會使用 'default' 類型。
  • eventTypes 可以在 Events:list 設定 呼叫,列出特定類型的事件。如果沒有指定類型,系統就會提供所有事件類型。 。
  • eventTypes 可以在 Events:watch 中指定 , 訂閱特定型別事件的更新資訊。如果沒有類型為 該要求將導致訂閱所有事件類型。
,瞭解如何調查及移除這項存取權。

預設事件

系統會建立含有「default」事件類型的事件,並做為主要事件使用 Google Calendar API 的資源。能支援各種 資源 可用來進一步自訂事件

詳情請見 建立活動即可開始使用 Google 日曆活動。

生日

生日是全天特別活動,每年固定舉辦。他們的 規格:

  • eventType 已設為 'birthday'
  • startend 欄位需要定義 橫跨一天的全天活動
  • visibility 欄位值 必須為 'private'
  • transparency 欄位值 必須為 'transparent'
  • 必須每年重複 recurrence 欄位必須填寫 'RRULE:FREQ=YEARLY'。務必在 2 月 29 日舉行的生日活動: 下列重複規則: 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'
  • 可以包含 colorIdsummaryreminders
  • 不支援任何其他事件屬性。

Gmail 中的活動

Gmail 自動產生的活動 事件類型為 'fromGmail'

Google Calendar API 不允許使用 insert 方法。

API 可讓您更新 colorId, reminders, visibility, transparency, status, privateshared 使用更新的擴充屬性 和 patch 方法

API 支援 get 和 用來讀取事件的 list 方法 Gmail。eventTypes 可以是 設為 'fromGmail' 僅列出 Gmail 產生的活動如果沒有類型為 Gmail 中的活動將與所有其他活動類型一起列出。

API 支援使用 watch 方法 訂閱 Gmail 中 Gmail 的活動變更。如果沒有類型為 已指定,所有事件類型 (包括 'fromGmail') 都會訂閱。

如要刪除 Gmail 中的活動,您可以使用 delete 方法 Google Calendar API。

透過以下方式從 Gmail 變更活動發起人: 移動或 不支援 update 方法。

專注時間、不在辦公室和工作地點

Google Calendar API 可用來建立及管理顯示 Google 日曆使用者狀態

這些功能僅適用於主日曆,部分 Google 日曆使用者。請參閱管理專注時間、不在辦公室狀態和工作 位置事件瞭解詳情。

探索 Google Apps Script 中的事件類型

Google Apps Script 是以 JavaScript 為基礎的雲端 編寫程式碼,方便您建構 Google Workspace指令碼是在瀏覽器式的程式碼編輯器中開發而成 而是在 Google 的伺服器上儲存和運作。另請參閱 Google Apps Script 快速入門導覽課程,瞭解如何開始使用 將要求傳送至 Google Calendar API 的 Apps Script。

以下操作說明將說明如何使用 Google Calendar API 做為 Google 日曆中的進階服務 。如需 Google Calendar API 資源和方法的完整清單, 請參閱參考說明文件

建立及設定指令碼

  1. 建立指令碼的方法如下: script.google.com/create.
  2. 在左側窗格中的「Service」(服務) 旁邊,按一下「Add a service」(新增服務)
  3. 選取「Google Calendar API」,然後按一下「新增」
  4. 啟用後,API 會顯示在左側窗格中。可用方法和 API 中的類別可在編輯器中使用 Calendar 關鍵字列出。

(選用) 更新 Google Cloud 專案

每項 Google Apps Script 專案都有相關聯的 Google Cloud 專案。您的 指令碼可使用 Google Apps Script 自動使用的預設專案 建立。如要使用自訂 Google Cloud 專案,請參閱切換至 不同的標準 Cloud 專案 設定 Google Cloud 專案後,選取左側的「Editor」圖示 即可返回 程式碼編輯器

在指令碼中加入程式碼

以下程式碼範例顯示如何使用 不同的 eventType 值。

  1. 將下列程式碼貼入程式碼編輯器。

    const CALENDAR_ID = 'CALENDAR_ID' || 'primary';
    
    /** Lists default events. */
    function listDefaultEvents() {
      listEvents('default');
    }
    
    /** Lists events from Gmail. */
    function listEventsFromGmail() {
      listEvents('fromGmail');
    }
    
    /**
      * Lists events with the given event type. If no type is specified, lists all events.
      * See https://developers.google.com/calendar/api/v3/reference/events/list
      */
    function listEvents(eventType = undefined) {
      // Query parameters for the list request.
      const optionalArgs = {
        eventTypes: eventType ? [eventType] : undefined,
        singleEvents: true,
        timeMax: '2024-07-30T00:00:00+01:00',
        timeMin: '2024-07-29T00:00:00+01:00',
      }
      try {
        var response = Calendar.Events.list(CALENDAR_ID, optionalArgs);
        response.items.forEach(event => console.log(event));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
      * Reads the event with the given eventId.
      * See https://developers.google.com/calendar/api/v3/reference/events/get
      */
    function readEvent() {
      try {
        var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID');
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /** Creates a default event. */
    function createDefaultEvent() {
      const event = {
        start: { dateTime: '2024-07-30T10:30:00+01:00'},
        end: { dateTime: '2024-07-30T12:30:00+01:00'},
        description: 'Created from Apps Script.',
        eventType: 'default',
        summary: 'Sample event',
      }
      createEvent(event);
    }
    
    /**
      * Creates a Calendar event.
      * See https://developers.google.com/calendar/api/v3/reference/events/insert
      */
    function createEvent(event) {
    
      try {
        var response = Calendar.Events.insert(event, CALENDAR_ID);
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    

    更改下列內容:

    • CALENDAR_ID:要接收日曆的電子郵件地址 擷取及建立事件此常數一開始設為 'primary',可用來存取 已登入的使用者。變更這個值後,您就可以在以下日曆上讀取活動: 其他您有權存取的使用者。
    • EVENT_ID:事件 ID。您可以呼叫 Events:list 來擷取事件 ID。

執行程式碼範例

  1. 在程式碼編輯器上方的下拉式選單中選取要執行的函式。 然後按一下「執行」
  2. 首次執行時,系統會提示您授予存取權。檢閱並允許 使用 Apps Script 存取您的日曆。
  3. 您可以在 顯示在視窗底部的「執行記錄」