在 Google 日歷中,事件有一個唯一的 id,但事件系列的事件也有一個嗎?我需要以不同的方式處理事件系列的每個事件。處理事件的常規方法是:
let now = new Date();
let until = new Date(2023, 10, 25);
let calendar = CalendarApp.getCalendarById("[email protected]");
let events = calendar.getEvents(now, until); // returns an array of all events within this period of time
// Make a list of all event id:
for (i=0; i<events.length; i ) {
console.log("event" i " has id " events[i].getId());
}
盡管事件系列的事件具有所有相同的事件 ID,但我可以通過變數的索引可靠地處理它們,例如。events[3]只要變數events還活著。
詳細示例:
假設一天內有一個事件系列的五個事件:
2022-11-03 11:18 (= event[0])
2022-11-03 12:22 (= event[1])
2022-11-03 13:15 (= event[2])
2022-11-03 13:30 (= event[3])
2022-11-03 14:00 (= event[4])
有了這些索引,我可以創建 Google 表單來收集單個活動的食物訂購,我可以將客人添加到 [2] 并更改 [2] 和 [3] 的房間:
2022-11-03 11:18 (= event[0])
2022-11-03 12:22 (= event[1])
2022-11-03 13:15 (= event[2]) - added Mr. Smith, set location: Ball Room
2022-11-03 13:30 (= event[3]) - set location: Ball Room
2022-11-03 14:00 (= event[4])
然后有人使用日歷 GUI 正確地改變了一些事件的時間,這些事件因細節而異,因此現在可以區分:
2022-11-03 11:18 (= event[0])
2022-11-03 12:22 (= event[1])
2022-11-03 11:30 (= event[2]) - added Mr. Smith, set location: Ball Room
2022-11-03 15:30 (= event[3]) - set location: Ball Room
2022-11-03 14:00 (= event[4])
運行新的 getEvents 將回傳
2022-11-03 11:18 (= event[0], formerly event[0])
2022-11-03 11:30 (= event[1], formerly event[2]) - with added Mr. Smith and location Ball Room
2022-11-03 12:22 (= event[2], formerly event[1])
2022-11-03 14:00 (= event[3], formerly event[4])
2022-11-03 15:30 (= event[4], formerly event[3]) - with location Ball Room
我現在如何處理該系列的特定事件,例如將它們與相應的表單同步?事件系列的事件是否具有某種固定的“子事件 ID”?
uj5u.com熱心網友回復:
您可以在官方檔案中找到此宣告
請注意,icalUID 和 id 不相同,在事件創建時只應提供其中一個。它們語意上的一個區別是,在重復事件中,一個事件的所有出現都具有不同的 id,而它們都共享相同的 icalUID。
(鏈接)
所以是的,重復事件的發生有它自己的 id(它的id屬性)。
Apps 腳本的問題在于該方法getId()實際上檢索的iCalUID是事件的屬性,而不是其唯一 ID。因此,使用該CalendarApp服務,所有事件都將具有相同的 id ( doc )。
嘗試使用高級日歷服務,您將能夠列出事件、獲取它們的唯一 ID、獲取它們的 iCalUID 等等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/527094.html
標籤:谷歌应用脚本谷歌日历 API
