使用 Google 脚本移动日历事件

Move calendar events with Google scripts

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

我不确定为什么,但代码在行中断:"Calendar.Events.move(pubCalId, eventToMove.getId(), privCalId);",错误消息:"Not Found (line 18, file "Code")"

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

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

下面的修改怎么样?

发件人:

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,所以出现错误。

参考:

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