首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google-apps-script |用于getEvents的TypeError ()

google-apps-script |用于getEvents的TypeError ()
EN

Stack Overflow用户
提问于 2019-04-11 07:07:18
回答 1查看 180关注 0票数 0

我有一个日历叫“重要!!”当它嵌入到我的代码中时,会导致它无法工作(没有错误,函数什么也不做)。我认为这个问题是由!!字符,但我不知道这个问题是什么,也不知道如何解决它。我应该怎么做才能避免这个问题?

代码语言:javascript
复制
function myFunction() {  
var year = 2019;
var month = 0;

var fromDate = new Date(year,month,1,0,0,0);
var toDate = new Date(year,month,28,0,0,0);



  var theCalendar = CalendarApp.getCalendarsByName('IMPORTANT!!')[0];
  var events = theCalendar.getEvents(fromDate, toDate);


  for(var i = 0; i < events.length; i++){
    var ev = events[i];
    ev.deleteEvent();
  }

}

我如何修复这个错误,这样我的脚本就会从google日历中删除2019年1月发布在'def‘中的所有事件。

EN

回答 1

Stack Overflow用户

发布于 2019-04-11 07:15:19

getCalendarsByName()返回Calendar[],这是一个数组。因此,如果def的日历名称在您的日历中只有一个,那么下面的修改如何?

发自:

代码语言:javascript
复制
var theCalendar = CalendarApp.getCalendarsByName('def');

至:

代码语言:javascript
复制
var theCalendar = CalendarApp.getCalendarsByName('def')[0];

注意:

  • 如果您有多个日历具有相同的日历名称,我建议使用日历ID。以
  • 为例,当看到方法名称时,会发现"getCalendarsByName“的calendars是复数。这样,它可能会注意到将返回几个值。

参考资料:

编辑1:

关于你的新问题,如果events没有not元素,那么for循环就不能工作。

我认为这可能是你的新问题的原因。请确认这一点。

theCalendar.getEvents(fromDate, toDate)可以检索事件的时间。for循环中的eleteEvent()将起作用。

编辑2:

您可以使用以下脚本检索所有日历的日历ID和日历名称。

示例脚本:

代码语言:javascript
复制
var result = CalendarApp.getAllCalendars().map(function(e) {return {id: e.getId(), name: e.getName()}});
Logger.log(result);

结果:

代码语言:javascript
复制
[
  {
    "id": "### calendarId1 ###",
    "name": "### calendarName1 ###"
  },
  {
    "id": "### calendarId2 ###",
    "name": "### calendarName2 ###"
  },
  ,
  ,
  ,
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55622494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档