访问 CalendarEvent 方法

问题描述 投票:0回答:1

虽然我添加了日历 API 并且它适用于将事件从表格写入日历,但当我尝试从日历获取事件时,CalendarEvents 方法不起作用。它们不会自动完成,并且在键入错误消息时会显示“不是函数”或返回空值。

我需要做一些事情来启动 CalendarEvents 方法吗?

    var event=cal.getEvents(new Date (stime),new Date (etime))
   
    Logger.log (event)

        var caltitle = event.getTitle()

    Logger.log (caltitle)
...
Execution log
11:15:38 AM Notice  Execution started
11:15:39 AM Info    Fri Nov 10 10:00:00 GMT+00:00 2023
11:15:39 AM Info    Fri Nov 10 16:00:00 GMT+00:00 2023
11:15:39 AM Info    [CalendarEvent]
11:15:40 AM Error   
TypeError: event.getTitle is not a function
Calsync @ Code.gs:30
google-calendar-api google-apps-script-api
1个回答
0
投票

修改要点:

  • getEvents(startTime, endTime) 返回 CalendarEvent[]。因此,在您的脚本中,
    event
    是一个包含 Class CalendarEvent 对象的数组。而且,似乎
    getTitle()
    是CalendarEvent类的方法。但是,在您的脚本中,
    getTitle()
    用于
    var caltitle = event.getTitle()
    处的数组。我认为这就是您当前问题的原因。

为了从检索到的事件中检索事件标题,进行以下修改如何?

修改后的脚本:

var event = cal.getEvents(new Date(stime), new Date(etime))

Logger.log(event)

if (event.length > 0) {
  event.forEach(e => console.log(e.getTitle()));

  // or

  var eventTitle = event[0].getTitle();
  console.log(eventTitle);
} else {
  console.log("No events.");
}

注:

  • 在此修改中,假设
    cal
    stime
    etime
    已在其他地方声明。请注意这一点。

参考:

getEvents(开始时间,结束时间)

© www.soinside.com 2019 - 2024. All rights reserved.