我正在尝试编写脚本以从我的个人Google日历中删除活动邀请。我每天都被邀请参加多个活动,例如“单击此处赢取iPhone”等。
我编写了一个Google脚本来每小时运行一次,并删除我不是所有者的所有事件。但是,这是获取所有事件,然后遍历它们以查看我是否是for循环的所有者。这似乎效率很低,并且运行时间很长。
有没有更好的方法来实现这一目标。
下面的当前代码:
function deleteScamCalendarInvites() {
var date = new Date();
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(date.getFullYear() + 5, date.getMonth(), 1);
var myCalendar = CalendarApp.getDefaultCalendar();
var myEvents = myCalendar.getEvents(firstDay, lastDay);
for(var i in myEvents){
if(myEvents[i].isOwnedByMe() == false){
var eventId = myEvents[i];
eventId.deleteEvent();
}
}
}
最后,您仍然需要遍历不属于您的事件列表。因此,您无能为力。
如果希望知道谁是邀请您参加这些事件的作者,您可以使用getEvents(startTime, endTime, options)
,尝试减少查找事件的数量,这是很好的选择。您可以尝试使用不是您自己的getEvents(startTime, endTime, options)
来过滤options
参数。另外,如果它们具有模式,则可以使用author
参数来减少事件数。