GCalendar在我的完整日历/完整日历中搜索

时间:2020-08-18 10:31:57

标签: google-apps-script calendar

我创建了此脚本来管理自己的日历。为了找到受影响的时隙,我创建了以下简单脚本:

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
  }
}

是否可以创建没有任何时间限制(开始/结束时间)的搜索命令?

2 个答案:

答案 0 :(得分:2)

您可以通过使用Calendar高级服务来实现。

您需要通过转到项目的资源> 高级Google服务...

来打开日历API 服务。

advanced google services

然后,在列表中查找日历API 并将其激活。如第三列所示,您可以使用Calendar来调用服务。

enter image description here

然后,只需使用以下代码段

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)
}

这将返回您所有事件的摘要。请记住,可以对其进行自定义,以返回事件所需的所有参数。

参考

答案 1 :(得分:1)

不幸的是,所有getEvents()方法都需要一个date参数:

explanation

我不确定是否有更好或更聪明的方法,但是您可以使用两个任意的日期,例如:

var events = cal.getEvents(new Date(1900,1,1), new Date(2100,1,1),{search: 'MyCalendarTest'});

这将为您提供从 1900到2100 的给定搜索值的所有日历事件。

请记住,如果您有系列相同的事件,则这些事件将被计入事件总数中。

相关问题