我正在尝试使用 Google 日历 API 将事件批量创建到 Google 日历中。我已经能够将事件从我的谷歌工作表显示到我的主要个人日历中,但不能显示在指定的日历中。我希望能够仅共享这些事件,而不是稍后共享我的整个个人日历。这是我来自谷歌应用程序脚本的代码。
function create_Events(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var last_row = sheet.getLastRow();
var data = sheet.getRange("B1:D" + last_row).getValues();
var cal = CalendarApp.getCalendarById("[email protected]");
//Logger.log(data);
for(var i = 0;i< data.length;i++){
//index 0 =
var event = CalendarApp.getDefaultCalendar().createEvent(data[i][0],
new Date(data[i][1]),
new Date(data[i][2]),
{location: data[i][3]});
Logger.log('Event ID: ' + event.getId());
}
}
我从日历设置中复制了日历 ID,希望事件填充到该日历中。相反,它们填充到与我的 Gmail 帐户关联的日历中
您可以尝试这个代码:
function create_Events() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var last_row = sheet.getLastRow();
var data = sheet.getRange("B1:D" + last_row).getValues();
var cal = CalendarApp.getCalendarById("Your calendar ID");
for (var i = 0; i < data.length; i++) {
var event = CalendarApp.getCalendarById(cal).createEvent(data[i][0],
new Date(data[i][1]),
new Date(data[i][2]),
{ location: data[i][3] });
Logger.log('Event ID: ' + event.getId());
}
}
我修改了您的代码的这一部分:
var event = CalendarApp.getDefaultCalendar().createEvent(data[i][0],
new Date(data[i][1]),
new Date(data[i][2]),
{ location: data[i][3] });
运行代码时,
default calendar is accessed
。您需要打开您计划工作的地方calendar by its ID
。
参考: