【问题标题】:Move calendar events with Google scripts使用 Google 脚本移动日历事件
【发布时间】:2018-01-07 06:50:45
【问题描述】:

我正在尝试编写一个 Google 脚本,它将给定时间范围内的所有事件从一个日历 (pubCal) 移动到另一个日历 (privCal)。

我不知道为什么,但代码在以下行中断:“Calendar.Events.move(pubCalId, eventToMove.getId(), privCalId);”,并显示错误消息:“未找到(第 18 行,文件“代码”)”

这个错误信息是什么意思?

function export_gcal_to_gsheet(){
  //pubCall: public calendar
  //privCal private calendar

  var pubCalId = "addressForPubicCal@group.calendar.google.com";
  var privCalId = "addressForPrivateCal@group.calendar.google.com";
  var pubCal = CalendarApp.getCalendarById(pubCalId);

  //Change date range to move events from pubCal to privCal
  var startDate = "January 1, 2018 00:00:00 CST";
  var endDate = "January 04, 2018 23:59:59 CST";
  // Extract events between certain dates in public calendar. 
  var events = pubCal.getEvents(new Date(startDate), new Date(endDate));

  //Loop through all Calendar events
  while (events.length > 0){
    var eventToMove = events.shift();
    Calendar.Events.move(pubCalId, eventToMove.getId(), privCalId);
  }
}

【问题讨论】:

  • 这是完整的错误吗?找到了哪个文件?

标签: google-apps-script calendar google-calendar-api


【解决方案1】:

下面的修改怎么样?

发件人:

Calendar.Events.move(pubCalId, eventToMove.getId(), privCalId);

收件人:

Calendar.Events.move(pubCalId, eventToMove.getId().replace("@google.com", ""), privCalId);

注意:

  • 检索到的 ID eventToMove.getId()#####@google.com。但是用于Calendar.Events.move() 的id 是#####。所以@google.com需要从#####@google.com中删除。
    • 在你的脚本中,因为找不到#####@google.com,所以出现错误。

参考:

如果我误解了你的问题,我很抱歉。

【讨论】:

    猜你喜欢
    • 2015-11-04
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多