问题描述
我创建了此脚本来管理自己的日历。为了找到受影响的时隙,我创建了以下简单脚本:
function myFunction() {
var cal = Calendarapp.getCalendarById("MyCalendar@googlemail.com");
var events = cal.getEvents(new Date("June 26,2018 00:00:00 CST"),new Date("July 18,2025 23:59:59 CST"),{search: 'MyCalendarTest'});
var max = events.length;
Logger.log(cal);
for (i = 0; i < max; i++) {
events[i].setColor("5"); // Yellow
}
}
是否可以创建没有任何时间限制(开始/结束时间)的搜索命令?
解决方法
您可以通过使用Calendar
高级服务来实现。
您需要通过转到项目的资源> 高级Google服务...
来打开日历API 服务。然后,在列表中查找日历API 并将其激活。如第三列所示,您可以使用Calendar
来调用服务。
然后,只需使用以下代码段
function getEvents() {
var eventsList = Calendar.Events.list('CALENDAR_ID');
var allEvents = eventsList.items;
for (var i=0; i<allEvents.length; i++)
console.log(allEvents[i].summary)
}
这将返回您所有事件的摘要。请记住,可以对其进行自定义,以返回事件所需的所有参数。
参考
,不幸的是,所有getEvents()方法都需要一个date参数:
我不确定是否有更好或更聪明的方法,但是您可以使用两个任意的日期,例如:
var events = cal.getEvents(new Date(1900,1,1),new Date(2100,{search: 'MyCalendarTest'});
这将为您提供从 1900到2100 的给定搜索值的所有日历事件。
请记住,如果您有系列相同的事件,则这些事件将被计入事件总数中。