Google App Script修改日历事件描述后其他嘉宾无法查看的问题求助
解决Google Apps Script修改日历事件描述后嘉宾无法查看的问题
问题原因
你使用的CalendarApp.setDescription()方法,在作为非日历所有者仅拥有编辑权限时,可能仅修改了你个人日历视图中的事件副本,并未同步到事件所属的主日历,导致其他嘉宾看不到更新。而网页端手动修改时,会直接操作主日历事件,因此无论是否发送邮件,嘉宾都能看到变更。
解决方案
改用Google Calendar Advanced Service直接更新主日历事件,步骤如下:
启用Calendar Advanced Service
- 在脚本编辑器中,点击「扩展」>「Apps Script」(若已在编辑器内可跳过)
- 点击左侧菜单栏的「服务」图标(⚙️),找到「Calendar API」并启用
替换原有代码
将你原有的event.setDescription(newDescr)替换为以下代码:// 获取事件所属的主日历ID和纯事件ID const calendarId = event.getOriginalCalendarId(); const eventId = event.getId().split('@')[0]; // 构造要更新的内容 const updatedEvent = { description: newDescr }; // 调用Calendar API更新事件,sendUpdates可设为"none"或"all",不影响嘉宾查看更新 Calendar.Events.update(updatedEvent, calendarId, eventId, { sendUpdates: "none" });
说明
sendUpdates参数控制是否给嘉宾发送更新邮件,设为"none"时不会触发邮件通知,但嘉宾仍能在日历中看到更新后的描述,和网页端手动选择「不发送邮件」的效果一致。- 首次运行脚本时,需要按照提示完成Calendar API的权限授权。
内容的提问来源于stack exchange,提问作者Michele Amati
相关产品推荐
相关产品推荐

