建立事件
如果您具備發起人 Google 日曆的寫入權限,可以使用 Events: insert
方法新增活動。
這個方法會直接將活動新增至發起人的日曆,且不包含邀請的設定。
新增參與者
您也可以透過這個方法,將參與者的電子郵件地址加入活動的 attendees
屬性中。發起人日後對活動做出的任何變更都會傳播給參與者。
參與者會收到發起人電子郵件地址的邀請。Google 日曆使用者會在電子郵件和/或日曆中收到邀請,具體取決於使用者在 Google 日曆設定中的活動設定:
- 如果對方設定了
From everyone
設定,活動就會直接新增至他們的日曆 - 如果會議主辦人設定為
Only if the sender is known
,只要他們先前曾與主辦人互動、發起人屬於同一機構,或主辦人是其 Google 聯絡人,系統就會將活動直接加入他們的日曆。如果發起人不知道主辦者,可以點選「我認識這位寄件者」,或在邀請電子郵件中點選「是」或「不確定」來回覆邀請。接著活動就會新增至使用者的日曆。 - 如果使用者擁有
When I respond in email
設定,在使用者邀請電子郵件中點選「Yes」(是)、「Yes」(不確定) 或「No」(否) 以回覆邀請之前,所有邀請才會新增至他們的日曆。
如要進一步瞭解如何將邀請新增至 Google 日曆,請參閱在 Google 日曆中管理邀請。
請勿使用 attendees[].responseStatus
屬性將參與者的回應設為 needsAction
以外的任何內容,預先填入參與者的回應後,系統並不會自動將活動新增至使用者的日曆。
直接在參與者的日曆中顯示活動
如要針對與會者可能擁有的任何設定,直接在 Google 日曆與會者的日曆中顯示活動,您可以設定參與者的回覆邀請或直接在參與者的日曆中匯入活動副本。無論採用哪種方式,您都需要寫入參與者日曆的寫入權限;如果沒有,可以考慮將發起人新增至參與者的聯絡人,這可能需要參與者的聯絡人的寫入權限。
設定參與者的出席回覆
如要為參與者設定活動的邀請回覆,請按照下列步驟操作:
- 請在 Google 日曆發起人的日曆中建立活動,並新增參與者 (請見上方說明)。
- 請使用
Events: update
方法,將參與者的 RSVP (敬請回覆) 設為accepted
或tentative
。您必須具備參與者日曆的寫入權限。活動可能要過一段時間才會顯示在參與者的日曆中。進一步瞭解如何使用Events: update
方法。
這個方法會將活動新增至參與者的日曆,但與會者收到的電子郵件仍會顯示橫幅,指出邀請的寄件者地址先前不明。
直接在參與者的日曆匯入活動副本
如要將活動副本匯入參與者的日曆,請按照下列步驟操作:
- 如果您具備發起人 Google 日曆的寫入權限,請使用
Events: import
方法匯入活動副本。 - 使用
Events: import
在參與者的日曆匯入同一活動的另一個副本。你必須擁有參與者日曆的寫入權限。針對主辦人和參與者的副本使用相同的活動 ID (iCalUID
),並確保在參與者的副本中指定發起人。
使用這個方法時,參與者可以在自己的日曆中查看活動,但無法收到來自 Google 日曆的邀請電子郵件。
將發起人新增為參與者的聯絡人
如果您沒有參與者的憑證,可以指示參與者或其機構,事先將主辦者的電子郵件地址新增至 Google 聯絡人,讓對方直接在他們的日曆中顯示活動。新建立的聯絡人可能需要一些時間才會生效。
- 請 Google 日曆使用者將發起人新增為 Google 聯絡人。
- 如果參與者隸屬於某個機構,您可以要求機構管理員透過程式輔助方式將電子郵件地址新增至使用者的聯絡人。請要求管理員啟用全網域委派功能、模擬使用者的身分,然後使用
People: createContact
方法為每位使用者建立聯絡人,確保日後來自這些電子郵件地址的邀請會自動顯示在使用者的日曆中。 - 如果您有權存取參與者的聯絡人,也可以使用
People: createContact
方法,將主辦人的電子郵件地址新增至參與者的聯絡人。
透過電子郵件地址邀請使用者
如果您沒有發起人 Google 日曆的寫入權限,或者不想公開發起人的電子郵件地址,請使用 i Calendar 通訊協定 (RFC-5545),透過 .ICS 檔案邀請使用者透過電子郵件。
如果與會者是 Google 日曆使用者,且使用此設定 Only if the sender
is known
,且之前未曾互動或記錄他們知道的地址,那麼在使用者點選「我知道這位寄件者」或他們回覆活動之前,邀請才會新增至他們的日曆。
提供連結,方便使用者新增活動
或者,如果您想讓 Google 日曆使用者能輕鬆將事件新增為一次性活動,而不持續更新活動,您可以提供預填活動的連結,讓使用者自行加入活動。這個方法會在使用者的日曆上建立不同的事件;您必須有權存取使用者的日曆,才能更新活動。
請使用下列連結範本:
https://calendar.google.com/calendar/r/eventedit?action=TEMPLATE&dates=20230325T224500Z%2F20230326T001500Z&stz=Europe/Brussels&etz=Europe/Brussels&details=EVENT_DESCRIPTION_HERE&location=EVENT_LOCATION_HERE&text=EVENT_TITLE_HERE
更新以下資訊:
- 開始與結束日期與時間:請使用 ISO 8601 格式。取代上述範例中的
20230325T224500Z
和20230326T001500Z
。 - 開始和結束時間時區:格式為 IANA 時區資料庫名稱。請在
stz
和etz
欄位中放置時區。 - 活動說明:必須進行網址編碼。
- 活動位置:必須進行網址編碼。
- 活動標題:必須進行網址編碼。
範例
讓我們想想您要建立預約服務、協助使用者與商家進行預約的範例。當使用者預約時,您希望服務將活動新增到預約者和商家的 Google 日曆。
為獲得最佳使用者體驗,建議商家授予其日曆的寫入權限,以便您直接將活動新增至商家的日曆 (建立活動),並邀請預約者加入該活動 (新增參與者)。為確保預約者能在自己的日曆中看到活動並收到提醒,請通知他們查看電子郵件,並在預訂完成後立即回覆活動是否「是」。只要使用者回覆活動邀請,系統就會根據他們的通知設定,傳送 Google 日曆的事件通知。
如果您想將活動直接加入預約者的日曆,請通知書人將活動新增為聯絡人,用於接收邀請的電子郵件地址。或者,您可以要求預約者授予自己日曆的寫入權限,以便透過程式回覆回覆 (設定參與者的邀請回覆),並傳送已確認預訂的電子郵件通知給他們。
如果商家不想公開電子郵件地址,請使用使用者專屬的電子郵件地址,透過電子郵件將活動傳送給預約者 (透過電子郵件地址邀請使用者)。
事件傳播
下圖說明這些動態。首先,Jack 會在自己的主要日曆中建立活動 (因此擁有發起人副本)。然後,他邀請了事件設定為 Only if the sender is known
的大提琴群組次要日曆和 Susan。參與者的副本會在 Cello 課程次要日曆上建立,如果她知道 Jack,則會在 Susan 的日曆上建立副本;或者,她會在回覆邀請或表明自己知道小傑的時候。當 Susan 回覆時,系統會將回覆內容的變更傳回給主辦者,並根據蘇珊的回應更新主辦者的副本。這些變更對發起人的活動副本進行變更,然後推送給其他參與者。
共用事件屬性
建立活動的日曆會採用「發起人日曆」。這個日曆擁有共用活動資訊,包括 ID、開始和結束時間、摘要和說明。在主辦者日曆中更新這項資訊後,變更就會套用至參與者副本。
私人活動屬性
某些活動副本不會共用所有資訊。有些屬性為私人屬性,例如提醒、colorId
、資訊公開或 extendedProperties.private
屬性。這些屬性是由參與者的設定控制,而非發起人的日曆。
與會者也可以變更活動的共用屬性。不過,這些變更只會反映在自己的副本上,如果發起人進行變更,這些變更可能會遺失。
參與者的回應狀態只會儲存在 attendees[].responseStatus
屬性中,從參與者傳回至主辦人。