建立事件
如果您擁有活動主辦人的 Google 日曆寫入權限,就可以使用 Events: insert
方法新增活動。
這個方法會將活動直接新增至發起人的日曆,不受其新增邀請的設定影響。
新增與會者
使用這個方法時,您也可以將參與者加入同一個活動,方法是將他們的電子郵件地址新增至事件的 attendees
屬性。發起人日後對活動所做的任何變更都會傳遞給與會者。
出席者會收到發起人的電子郵件地址寄送的邀請。視 Google 日曆設定中的活動設定而定,Google 日曆使用者會在電子郵件和/或日曆中收到邀請:
- 如果對方設定為
From everyone
,系統會直接將活動新增到對方的日曆 - 如果使用者已啟用
Only if the sender is known
設定,且曾與活動發起人互動、活動發起人隸屬於相同機構,或活動發起人是使用者的 Google 聯絡人,系統就會直接將活動新增到使用者的日曆中。如果對方不認識活動主辦人,可以點選「新增至日曆」,或是在邀請電子郵件中點選「是」或「不確定」回覆邀請。系統就會將活動新增到對方的日曆。 - 如果使用者已啟用
When I respond in email
設定,則必須在邀請電子郵件中按一下「是」、「Maybe」 或「No」,才能將所有邀請新增到日曆。
如要進一步瞭解如何在 Google 日曆中新增邀請,請參閱「在日曆中管理邀請」。
直接在與會者的日曆中顯示活動
如要直接在 Google 日曆出席者日曆中顯示活動,並針對出席者可能有的任何設定,您可以設定出席者的敬請回覆,或直接在出席者日曆中匯入活動副本。無論使用哪一種方法,您都需要具備與會者日曆的寫入權限。如果您沒有這項權限,建議您將主辦人加入與會者的聯絡人,但這可能需要具備與會者聯絡人的寫入權限。
設定與會者的回覆
如要設定與會者是否回覆活動邀請,請按照下列步驟操作:
- 在 Google 日曆發起人的日曆中建立活動,並新增參與者 (請參閱上文)。
- 使用
Events: update
方法,將參與者的回覆設為accepted
或tentative
。您必須具備與會者日曆的寫入存取權。活動可能需要一段時間才會顯示在參與者的日曆上。進一步瞭解如何使用Events: update
方法。
這個方法會將活動新增至與會者的日曆,但與會者可能仍會在電子郵件中看到橫幅,指出邀請函是由他們不認識的地址寄出。
直接在參與者日曆中匯入活動副本
如要將活動副本匯入與會者的日曆,請按照下列步驟操作:
- 如果您有活動主辦人的 Google 日曆寫入權限,請使用
Events: import
方法匯入活動副本。 - 在參與者的日曆中使用
Events: import
匯入同一活動的另一個副本。您必須具備與會者日曆的寫入權限。主辦人和參與者副本使用相同的活動 ID (iCalUID
),並務必在參與者的副本中指定發起人。
使用這種方法,與會者可以在自己的日曆中看到活動,但不會收到 Google 日曆寄送的邀請電子郵件。
將發起人新增為參與者的聯絡人
如果您沒有與會者的憑證,可以指示與會者或其機構,事先將活動發起人的電子郵件地址新增至 Google 聯絡人,這樣一來,活動就會直接顯示在對方的日曆中。新建立的聯絡人可能需要稍微延遲一段時間才會生效。
- 請 Google 日曆使用者將會議發起人新增為 Google 聯絡人。
- 如果與會者屬於某個機構,您可以請該機構的管理員透過程式輔助方式,將電子郵件地址新增至使用者的聯絡人。請管理員啟用全網域委派功能,模擬使用者並使用
People: createContact
方法為每位使用者建立聯絡人,確保日後來自這些電子郵件地址的邀請會自動顯示在使用者的日曆中。 - 如果您有權存取與會者的聯絡人,也可以使用
People: createContact
方法,將活動主辦人的電子郵件地址新增至與會者的聯絡人。
透過電子郵件地址邀請使用者
如果您沒有活動主辦人的 Google 日曆寫入權限,或是不想公開活動主辦人的電子郵件地址,請使用 iCalendar 通訊協定 (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。系統會在小提琴課程群組的次要日曆中建立與會者的副本,如果 Susan 認識 Jack,系統也會在她的日曆中建立副本;如果她不認識 Jack,則會在她回覆出席與否或表示認識 Jack 時建立副本。當 Susan 回覆時,系統會將 RSVP 變更內容傳回給活動主辦人,並使用 Susan 的回覆內容更新活動主辦人的副本。系統會將發起人對活動副本所做的變更,傳播給其他參與者。
共用事件屬性
建立活動的日曆即為主辦人日曆。這個日曆會擁有共用的活動資訊,包括 ID、開始和結束時間、摘要和說明。如果主辦者日曆上的這項資訊更新,這些變更就會套用到參與者副本。
私人活動屬性
並非所有事件副本都會共用所有資訊。部分屬性為私有屬性,例如提醒、colorId
、透明度或 extendedProperties.private
屬性。這些屬性受邀請者的設定控制,而非主辦人日曆控制。
參與者也可以變更活動的共用屬性。不過,這些變更只會反映在他們自己的副本上,如果主辦人變更活動,這些變更可能會遺失。
只有參與者的回應狀態是儲存在 attendees[].responseStatus
屬性中,這項事件變更是從參與者傳播回主辦者。