我正在尝试按照谷歌脚本日历中的示例进行操作。除了calendarID之外,我没有更改代码。代码与示例显示完全相同:
function createEvent(calendarId) {
var cal = CalendarApp.getCalendarById(calendarId);
var title = 'Script Demo Event';
var start = new Date("April 1, 2012 08:00:00 PDT");
var end = new Date("April 1, 2012 10:00:00 PDT");
var desc = 'Created using Google Apps Script';
var loc = 'Script Center';
var event = cal.createEvent(title, start, end, {
description : desc,
location : loc
});
};
我不确定是否需要将calendarId更改为我的'xxxxx@gmail.com'。但是当我运行这些代码时,错误是TypeError: Cannot call method "createEvent" of null. (line 15, file "Code")
有什么问题?
答案 0 :(得分:3)
错误消息告诉您没有带有此ID的日历,非域用户的日常ID的常用形式类似于 h22xxxxxxxjb6ul4hu7ft8@group.calendar.google.com ,对于域名: domain.xxx_se8nmkl1qsqxxxxxxxxx28ufs@group.calendar.google.com 。
您是否检查过您输入的ID是否有效?
您还可以使用getCalendarsByName('calendarName')
测试相同的脚本,该脚本会在您的日历中返回包含此名称的所有日历的数组,在这种情况下,您通常必须使用{{1}选择第一个}。
您还可以使用getCalendarsByName('calendarName')[0]
使用默认日历,这是附加到您的Gmail地址的日历。
所有这些都在documentation中得到了很好的说明。
这个小代码将允许您检查您拥有或订阅的所有日历的ID。
getDefaultCalendar()
答案 1 :(得分:0)
2012年的活动是谷歌使用的默认代码