好的,这是我的代码导致错误。它似乎只是我尝试添加全天活动的路线。我认为这是一个日期格式化问题,但我在下面评论的行是为了测试它而创建的,它导致了同样的错误。所以我很难过。需要更改什么来纠正错误,或错误实际意味着什么。
function cal1() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 300; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, 26); //What data will be used
var data = dataRange.getValues();
var cal = CalendarApp.getCalendarsByName("Production Schedule"); //Gets the correct calendar
for (i in data) {
var row = data[i];
var title = row[4]; // Column with Title
var desc = row[3]; // Column with Description
var date = row[8]; //Column with Date
var loc = row[5]; //Column with Location
cal.createAllDayEvent(title, date, {description:desc,location:loc});
//cal.createEvent("Test", new Date("3/10/2010 14:30:00"), new Date("3/10/2010 14:30:00"));
}
}
答案 0 :(得分:1)
var cal = CalendarApp.getCalendarsByName("Production Schedule"); //Gets the correct calendar
这会为您提供一系列具有该名称的日历(因为日历可以共享名称,因此可以有多个名称)。试试这个:
var cal = CalendarApp.getCalendarsByName("Production Schedule")[0]; //Gets the correct calendar
这将为您提供第一个(可能只有)具有该名称的日历。
答案 1 :(得分:1)
如果您不确定'date'变量实际上是您可以使用的日期
cal.createAllDayEvent(title, new Date(date), {description:desc,location:loc});
说,用记录器检查很容易
Logger.log(date)
应以Tue Sep 18 03:00:00 PDT 2012
答案 2 :(得分:0)
我对getCalendarsByName
有同样的问题。
相反,我使用getCalendarById
并且它解决得很好。我认为日历名称可能会有些混乱,而且有bug。
您可以在日历设置中找到日历ID,例如:123xyz@group.calendar.google.com
脚本将如下所示:
var cal = CalendarApp.getCalendarById("123xyz@group.calendar.google.com");