Google脚本google工作表到日历TypeError:在对象Calendar中找不到函数createEvent。 (第18行,文件“代码”)

时间:2015-01-16 16:54:37

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

我尝试创建一个Google脚本,根据Google工作表中的单元格内的信息创建日历活动。我已经达到了标记和标记所有内容的程度,但是出现了错误:

  

TypeError:在对象Calendar中找不到函数createEvent。 (第18行,文件"代码")

这是我写的代码:

function calInsert() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var numRows = 25;   // Number of rows to process
  var dataRange = sheet.getRange(startRow, 2, numRows, 9);
  var data = dataRange.getValues();
  var cal = CalendarApp.getCalendarsByName( "EC Calendar" );
  for (i in data) {
    var row = data[i];
    var title = row[1];  // First column
    var tstart = row[2]; // Second column
    var tstop = row[3];
    var desc = row[4];       
    var loc = row[5];
    var cmmail = row[6];
    var leamail = row[7];

  var event = cal.createEvent(title, new Date(tstart), new Date(tstop), {description:desc,location:loc,guests:cmmail,guests:leamail}); 

} }

您可以提供任何帮助。

1 个答案:

答案 0 :(得分:0)

var cal = CalendarApp.getCalendarsByName(" EC Calendar"); 这将为您提供一系列具有该名称的日历。将其更改为:

var cal = CalendarApp.getCalendarsByName(" EC Calendar")[0]; //获取正确的日历 这将为您提供名称的第一个日历。我尝试了以下代码:

function calInsert() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var startRow = 2;  // First row of data to process
 var numRows = 2;   // Number of rows to process
 var dataRange = sheet.getRange(startRow, 1, numRows, 5);
 var data = dataRange.getValues();
 var cal = CalendarApp.getCalendarsByName( "calendar ID" )[0];
 for (i in data) {
    var row = data[i];
    var title = row[0];  // First column
    var tstart = row[2]; // Second column
    var tstop = row[3];
    Logger.log(tstop);
    var desc = row[1];       
    var loc = row[4];
   //var cmmail = row[6];
   //var leamail = row[7];

   cal.createEvent(title, new Date(tstart), new Date(tstop),     {description:desc,location:loc}); 
}
}

我可以在日历中创建活动。如果需要,您可以将cmmail和leamail发送到createEvent。