【发布时间】:2022-11-03 18:38:37
【问题描述】:
在 Google 日历中,事件有一个唯一的 id,但事件系列的事件也有一个吗?我需要以不同的方式处理事件系列的每个事件。处理事件的常规方法是:
let now = new Date();
let until = new Date(2023, 10, 25);
let calendar = CalendarApp.getCalendarById("678fbf4f44afb7cdsomething@resource.calendar.google.com");
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”?
【问题讨论】:
标签: google-apps-script google-calendar-api