Google 脚本 - 不属于我的日历事件
Google Script - Calendar events not owned by me
我正在尝试编写一个脚本来从我的个人 google 日历中删除活动邀请。我每天都受邀参加多个活动,例如 "Click here to win an 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)
来尝试减少要查找的活动数量。您可以尝试使用 options
参数过滤不是您的 author
。此外,如果他们有一个模式,您可以使用 search
参数来减少事件的数量。
我正在尝试编写一个脚本来从我的个人 google 日历中删除活动邀请。我每天都受邀参加多个活动,例如 "Click here to win an 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)
来尝试减少要查找的活动数量。您可以尝试使用 options
参数过滤不是您的 author
。此外,如果他们有一个模式,您可以使用 search
参数来减少事件的数量。