首页 > 解决方案 > TypeError:calendar.getEvents 不是函数

问题描述

我正在使用谷歌应用程序脚本并尝试检查事件是否存在。我正在使用这个问题的一些代码,但我不确定为什么脚本告诉我 getEvents() 不是一个函数,因为它在谷歌文档中 我的代码看起来像这样

function doesEventExist() {
  var fromDate = new Date(); //This is Today
  var toDate = new Date();
  toDate.setDate(toDate.getDate()+20);
  Logger.log("From "+fromDate+" to "+toDate);
  var calendar = CalendarApp.getCalendarsByName("CalendarName");
  if(calendar == null){
    Logger.log("Unable to connect to calendar");
    exit();  
  }
  var events = calendar.getEvents(fromDate,toDate);

  for(var i=0; i<events.length;i++)
    {
      var ev = events[i];
      var title = calendar.getEventSeriesById(ev.getId()).getTitle();


      if (title.indexOf(Event Name)>-1){
        var start = ev.getStartTime();
        Logger.log("Found Event");
        return true;
          var id = ev.getId();
          var date = ev.getStartTime();
          var desc = ev.getDescription();

          }


    }
  }

getEvents() 函数是否不再存在或者我的代码有问题?

编辑:正如有人评论 getCalendarsByName() 返回一个数组,我最终将变量 calendar 设置为 calendars[0]

标签: javascriptgoogle-apps-script

解决方案


我将留下@nbookmans评论作为 Stack 工作流目的的答案。

文档中所述,getCalendarsbyName()返回:

Calendar[] — 用户可以访问的具有此名称的所有日历

这是一组日历。为了获取事件,您必须遍历数组。


推荐阅读