CalendarApp CreateEvent在错误的日历上创建事件(具有不同ID的日历)

时间:2019-09-09 14:11:51

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

我正在尝试将电子表格文档中每一行的日历事件有条件地添加到2个日历中。

function createCalendarEvent(calendarId, row) {
   var spreadsheet = SpreadsheetApp.getActiveSheet();
   var lastName = spreadsheet.getRange(row, 4).getValue();
   var firstName = spreadsheet.getRange(row, 3).getValue();
   var title = lastName + ", " + firstName;
   var eventDate = spreadsheet.getRange(row, 12).getValue();
   var startTime = new Date(spreadsheet.getRange(row, 14).getValue());
   var endTime = new Date(spreadsheet.getRange(row, 15).getValue());
   var startDate = new Date(startTime.getTime());
   var endDate = new Date(endTime.getTime());
   startDate.setYear(eventDate.getYear());
   startDate.setMonth(eventDate.getMonth());
   startDate.setDate(eventDate.getDate());
   endDate.setYear(eventDate.getYear());
   endDate.setMonth(eventDate.getMonth());
   endDate.setDate(eventDate.getDate());
   var calendar = CalendarApp.getCalendarById(calendarId);
   Logger.log(calendar.getName());
   Logger.log(calendar.isOwnedByMe());
   Logger.log(calendar.getId());
   Logger.log(calendar.setSelected(true));
   var event = CalendarApp.getDefaultCalendar().createEvent(title, 
   startDate, endDate);
   Logger.log('Event ID: ' + event.getId());
}

我拥有并作为参数传递给函数的2个日历ID如下:

"[my email username]@[my organization domain].com"

 "[somename].com_00t1jhqpsu15fcprbl98qg8erk@group.calendar.google.com"

执行时,总是将事件添加到第一个事件中。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

您正在默认日历中创建活动:

var event = CalendarApp.getDefaultCalendar().createEvent(title, startDate, endDate);

You can find the documentation here

尝试将其更改为:

var event = calendar.createEvent(title, startDate, endDate);

通过这种方式,您将使用在该行中通过ID找到的日历:

var calendar = CalendarApp.getCalendarById(calendarId);
相关问题