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

Apps Script自动审批脚本调用Calendar.Events.get读取第三方日历事件失败求助

Apps Script调用高级日历服务获取第三方创建的日历事件时提示"Not Found"

问题描述

我开发了一款自动审批用的Apps Script,整体运行正常,但遇到一个边缘场景问题:

正常流程里,我用这段代码获取指定时间范围的日历事件:

calendar = CalendarApp.getDefaultCalendar();
calendar.getEvents(startDate, endDate);

遍历事件后通过自定义逻辑判断是否自动审批、修改事件颜色,完成审批还需要调用高级日历服务的Calendar.Events.get(calendarId, eventId)获取事件对象。

但对于第三方服务(仅获授权代表我方域名发信,非Google MX服务器直接发送)创建的事件,逻辑完全失效。手动操作这类事件时,Google日历会提示:

The event wasn't created in Google Calendar, so you can't add a room. Instead, you can create a duplicate event without guests to reserve a room and invite people to use it.

代码调用Calendar.Events.get(calendarId, eventId)时抛出异常:

GoogleJsonResponseException: API call to calendar.events.get failed with error: Not Found

我试过用event.getId()返回的完整ID、去掉@后的部分等多种格式,都找不到对应事件。补充:这类事件由外部服务(本次是招聘平台Comeet)创建,组织者是scheduler@comeet-notifications.com,我只是受邀嘉宾。

问题原因

这类事件属于Google日历的拟议事件(Proposed Events),是通过邮件邀请同步到日历的非原生事件——它们没有生成Google Calendar API可识别的完整事件ID,因此无法通过Calendar.Events.get直接获取。

解决办法

1. 提前过滤非原生事件

遍历事件时,用event.isOwnedByMe()判断是否为自己创建的事件,第三方创建的受邀事件直接跳过API调用,走替代流程:

const events = calendar.getEvents(startDate, endDate);
events.forEach(event => {
  if (!event.isOwnedByMe()) {
    console.log('跳过第三方创建事件:', event.getTitle());
    // 可添加提示用户手动处理的逻辑
    return;
  }
  // 原有审批、修改颜色等逻辑
});

2. 转换为原生事件再操作

如果必须对这类事件执行自动化操作,可通过代码创建一个完全相同的原生事件,再对新事件处理,可选删除原拟议事件:

if (!event.isOwnedByMe()) {
  // 从原事件生成原生事件
  const newEvent = calendar.createEventFromDescription(
    event.getDescription(),
    event.getStartTime(),
    event.getEndTime()
  );
  // 对newEvent执行颜色修改、发送审批通知等操作
  event.deleteEvent(); // 可选:删除原拟议事件,需提前告知用户
}

3. 通过iCalUID查询事件

部分拟议事件携带iCalUID,可尝试用它调用Calendar.Events.list模糊查询:

const iCalUID = event.getICalUID();
const response = Calendar.Events.list(calendarId, {
  iCalUID: iCalUID,
  singleEvents: true
});
if (response.items.length > 0) {
  const targetEvent = response.items[0];
  // 执行后续审批、修改操作
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:19:58