如何在Google Apps Script中调用Google Calendar的Free/Busy菜单
Google Apps Script 设置日历事件 Free/Busy 状态方案
你推导的
setFreeBusy()方法在现有公开接口中不存在。Google Calendar 界面上的「Busy/Free」选项本质对应事件的透明度属性,因此没有独立的同名设置接口。
具体实现方法
基础CalendarApp服务中,直接通过setTransparency()方法完成状态切换,对应枚举值和实际状态的映射关系为:
CalendarApp.Transparency.OPAQUE:对应Busy状态,是新建事件的默认值。设置后该时段会被标记为忙碌,他人查看你的忙闲日历会显示该时间段不可用CalendarApp.Transparency.TRANSPARENT:对应Free状态。设置后该时段不会计入忙碌时长,他人查看你的忙闲状态时会显示此时间段为空闲
如果需要读取现有事件的当前状态,可调用getTransparency()方法获取返回值判断。
代码示例
// 示例:新建事件并设置为Free状态 const startDate = new Date("2024-10-01T10:00:00"); const endDate = new Date("2024-10-01T12:00:00"); const testEvent = CalendarApp.createEvent("个人待办", startDate, endDate); // 切换为Free状态 testEvent.setTransparency(CalendarApp.Transparency.TRANSPARENT); // 如需切回Busy状态,调用以下语句即可 // testEvent.setTransparency(CalendarApp.Transparency.OPAQUE);
补充说明
你提到的行李箱样式图标,对应的是「外出/公务出差」类事件的分类标识,和Free/Busy状态并非同一功能,只是在日历操作界面的菜单位置相邻,容易产生关联误解。
内容的提问来源于stack exchange,提问作者BlueIris
相关产品推荐
相关产品推荐

