谷歌脚本谷歌日历TypeError:无法调用null的方法“createEvent”

时间:2013-10-24 17:07:08

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

我正在尝试按照谷歌脚本日历中的示例进行操作。除了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")

有什么问题?

2 个答案:

答案 0 :(得分:3)

错误消息告诉您没有带有此ID的日历,非域用户的日常ID的常用形式类似于 h22xxxxxxxjb6ul4hu7ft8@group.calendar.google.com ,对于域名: domain.xxx_se8nmkl1qsqxxxxxxxxx28ufs@group.calendar.google.com enter image description here

您是否检查过您输入的ID是否有效?

您还可以使用getCalendarsByName('calendarName')测试相同的脚本,该脚本会在您的日历中返回包含此名称的所有日历的数组,在这种情况下,您通常必须使用{{1}选择第一个}。

您还可以使用getCalendarsByName('calendarName')[0]使用默认日历,这是附加到您的Gmail地址的日历。 所有这些都在documentation中得到了很好的说明。

这个小代码将允许您检查您拥有或订阅的所有日历的ID。

getDefaultCalendar()

答案 1 :(得分:0)

2012年的活动是谷歌使用的默认代码