使用Google脚本将新的Google日历活动复制到另一个日历

时间:2014-11-01 13:27:31

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

我正在尝试创建一个脚本,所以当我在一个谷歌日历中创建一个事件时,它会自动在另一个谷歌日历中复制该事件。我尝试使用下面的代码(使用我自己的代码交换日历ID - 假设我使用完整的ID,例如xyz@group.google等):

function myFunction() {
var calendarSource = CalendarApp.getCalendarById("calendarID");
var calendarDestination = CalendarApp.getCalendarById("calendarID");
var eventToCopy = calendarSource.getEvents(new Date("July 21, 2009 EST"), new Date("July 22, 2009 EST"));

//read up: https://developers.google.com/apps-script/class_recurrence
var newRecurrence = CalendarApp.newRecurrence().addWeeklyRule().times(10);

for (var i in eventToCopy){
if (eventToCopy[i].getTitle() == "event name"){
  var newEvent = calendarDestination.createEventSeries(eventToCopy[i].getTitle(), eventToCopy[i].getStartTime(), eventToCopy[i].getEndTime(), newRecurrence);
}

}

但似乎没有发生任何事情。有人给我一个开端吗?我只希望这能够在创建新事件时触发。

1 个答案:

答案 0 :(得分:0)

在您发布的代码段中,如果由于行if (eventToCopy[i].getTitle() == "event name"){,其标题等于“事件名称”,则事件仅会复制到新日历中。源日历中的事件可能没有此标题,因此不会复制任何内容。您应该能够删除此if条件以获取要复制的所有事件。

function myFunction() {
  var calendarSource = CalendarApp.getCalendarById("calendarID");
  var calendarDestination = CalendarApp.getCalendarById("calendarID");
  var eventToCopy = calendarSource.getEvents(new Date("July 21, 2009 EST"), new Date("July 22, 2009 EST"));

  //read up: https://developers.google.com/apps-script/class_recurrence
  var newRecurrence = CalendarApp.newRecurrence().addWeeklyRule().times(10);

  for (var i in eventToCopy){
    var newEvent = calendarDestination.createEventSeries(eventToCopy[i].getTitle(), eventToCopy[i].getStartTime(), eventToCopy[i].getEndTime(), newRecurrence);
  }
}