You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取非默认日历当日事件报错:.getEventsForDay is not a function

解决.getEventsForDay is not a function错误及非默认日历事件提取方法

错误原因

CalendarApp.getCalendarsByName('日历名称')返回的是Calendar对象数组,而非单个Calendar实例。你直接对数组调用getEventsForDay方法,自然会触发“不是函数”的错误——数组本身没有这个方法,只有单个Calendar对象才有。

正确写法

方法1:取数组第一个匹配的日历(假设同名日历唯一)

// 获取同名日历数组,取第一个匹配项
let myCalendar = CalendarApp.getCalendarsByName('MyCalendarName')[0];
// 检查日历是否存在,避免undefined报错
if (myCalendar) {
  let myEvent = myCalendar.getEventsForDay(new Date(2023, 3, 3), {search: 'Event Title'});
  // 处理获取到的事件
  console.log(myEvent);
} else {
  console.log('未找到指定名称的日历');
}

方法2:遍历所有同名日历(处理多个同名日历的情况)

如果存在多个同名日历,可以遍历数组逐个处理:

let calendars = CalendarApp.getCalendarsByName('MyCalendarName');
calendars.forEach(calendar => {
  let events = calendar.getEventsForDay(new Date(2023, 3, 3), {search: 'Event Title'});
  console.log(`从日历${calendar.getName()}中找到${events.length}个匹配事件`);
  // 进一步处理事件
});

额外注意事项

  • 日期参数:new Date(2023, 3, 3)中的月份是从0开始计数的,这里实际代表2023年4月3日,而非3月3日,注意不要混淆。
  • 权限:确保脚本拥有访问该非默认日历的权限,否则会返回空数组或报错。

内容的提问来源于stack exchange,提问作者DD1229

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:27:03