事件出现在错误的 Google 日历中

问题描述 投票:0回答:1

我正在尝试使用 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 帐户关联的日历中

google-calendar-api
1个回答
0
投票

在日历中创建 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("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

参考:

日历 - GetCalendarbyID

© www.soinside.com 2019 - 2024. All rights reserved.