我在Google工作表中有一个Google电子邮件用户列表(名为Master,E列)。每个用户还有一个以该电子邮件地址命名的空白页(User@Whatever.com)。
我的目标是浏览用户列表,为每个用户检索今天的日历条目,并将其输入到相关表格中。到目前为止,我有以下代码,但它已返回
TypeError:无法调用方法" getEventsForDay"为null。 (第15行, 文件"日历更新")
代码如下:
var employeeDataRange = SpreadsheetApp.getActiveSpreadsheet().getRange("Master!E2:E");
var employeeObjects = employeeDataRange.getValues();
for (var j=0; j<employeeObjects.length; j++) {
var cal = CalendarApp.getCalendarById(employeeObjects[j]);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(employeeObjects[j])
var today = new Date();
var events = CalendarApp.getCalendarById(cal).getEventsForDay(today);
for (var i=0;i<events.length;i++) {
var details=[[events[i].getTitle(), events[i].getStartTime(), events[i].getEndTime(), events[i].getAllTagKeys()]];
var row=i+1;
var range=sheet.getRange(row,1,1,4);
range.setValues(details);
}
}
}
干杯,
丹
答案 0 :(得分:0)
您确定拥有查看这些日历及其活动的所有权限吗?
此外,你有这一行 var cal = CalendarApp.getCalendarById(employeeObjects [j]); employeeObjects [j]是日历id,cal是相对日历。 你有两排 var events = CalendarApp.getCalendarById(cal).getEventsForDay(today); 但是cal是一个日历,而不是它的id。为什么你不使用cal.getEventsForDay(今天)?
答案 1 :(得分:0)
我想出来了:
var calendar = SpreadsheetApp.getActiveSpreadsheet().getRange("Master!E2:E");
var employeeObjects = calendar.getValues();
for (var j=0; j<employeeObjects.length; j++) {
var cal = CalendarApp.getCalendarById(employeeObjects[j]);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(employeeObjects[j])
var today = new Date();
var events = CalendarApp.getCalendarById(employeeObjects[j]).getEventsForDay(today);
for (var i=0;i<events.length;i++) {
var details=[[events[i].getTitle(), events[i].getStartTime(), events[i].getEndTime(), events[i].getAllTagKeys()]];
var row=i+1;
var range=sheet.getRange(row,1,1,4);
range.setValues(details);
}
}
}