gpt4 book ai didi

javascript - Google Apps 脚本日历服务 : How to store and retrieve CalendarEvents using PropertiesService?

转载 作者:行者123 更新时间:2023-12-02 21:05:52 24 4
gpt4 key购买 nike

我指的是this question .

如这段代码

var cal = CalendarApp.getCalendarById("Calendar Id");
var startTime = new Date(1850, 0, 1);
var endTime = new Date(2100, 0, 1);
var events = cal.getEvents(startTime, endTime);
Logger.log(events);
var sp = PropertiesService.getScriptProperties();
sp.setProperty("events", JSON.stringify(events));
events = JSON.parse(sp.getProperty("events"));
Logger.log(events);

返回:

Info [CalendarEvent, CalendarEvent, CalendarEvent, CalendarEvent, CalendarEvent]
Info [{}, {}, {}, {}, {}]

如何使用 PropertiesService 存储和检索 CalendarEvents(不仅仅是它们的 ID)?

最佳答案

工作流程:

我认为最好的选择是执行以下操作:

  • 从之前处理的事件中检索事件 ID,存储在属性中(变量 oldEventIDs)。
  • 使用 getEvents 检索日历中的所有事件(变量allEvents)。
  • 过滤日历中的事件,删除“属性”中已有的事件(变量 newEvents)。
  • 处理每个新事件后,将事件 ID 附加到 oldEventIDs
  • oldEventIDs 存储在属性中。

代码示例:

var sp = PropertiesService.getScriptProperties();
var oldEventIDs = sp.getProperty("events").split(",");
var cal = CalendarApp.getCalendarById("Calendar Id");
var startTime = new Date(1850, 0, 1);
var endTime = new Date(2100, 0, 1);
var allEvents = cal.getEvents(startTime, endTime);
var newEvents = allEvents.filter(event => !oldEventIDs.includes(event.getId()));
newEvents.forEach(event => {
// Event processing
oldEventIDs.push(event.getId());
});
sp.setProperty("events", oldEventIDs.toString());

注释:

  • 无论如何,您都必须在每次执行中调用 getEvents。我不明白将事件存储在属性中如何让您避免这种情况。这是您用来从日历获取事件的方法。无论如何,我认为花费更多时间的是事件“处理”,对此没有提供任何信息。
  • 您必须编辑此示例,以便在达到时间限制之前停止执行。

引用:

关于javascript - Google Apps 脚本日历服务 : How to store and retrieve CalendarEvents using PropertiesService?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61229940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com