如何使用Google Apps Script获取Google Calendar中的工作地点信息
关于通过Google Apps Script调取Google Calendar工作地点信息的解答
是可以直接调取的,Google Apps Script通过调用Calendar高级服务即可获取这类工作地点数据,具体操作逻辑和注意事项如下:
- 前置准备:你需要先在Apps Script编辑器的「服务」菜单中启用Calendar高级服务,调用的是Calendar V3 API,不需要额外申请外部API权限,只要拥有对应日历的读取权限即可操作。
- 数据逻辑说明:Google Calendar的工作地点本质是一类标记为
workingLocation类型的特殊全天事件,你可以直接通过事件类型筛选快速过滤出对应数据,不需要遍历所有普通日历事件。
参考代码示例
// 读取指定时间段内的工作地点数据 function getWorkingLocations(timeStart, timeEnd) { // 主日历默认ID为primary,如需调取其他日历替换为对应日历ID即可 const targetCalendarId = 'primary'; const eventList = Calendar.Events.list(targetCalendarId, { timeMin: timeStart.toISOString(), timeMax: timeEnd.toISOString(), singleEvents: true, // 仅筛选工作地点类型的事件,避免拉取其他日程 eventTypes: ['workingLocation'] }).items; // 格式化返回结果 return eventList.map(item => ({ date: new Date(item.start.date), locationName: item.workingLocationProperties.label, // 返回值共三类:homeOffice(居家)、officeLocation(办公室)、customLocation(其他) locationType: item.workingLocationProperties.type })) }
注意事项
- 仅用户主动设置过工作地点的日期会生成
workingLocation类型事件,未做设置的日期不会返回对应条目 - 除了读取之外,你也可以通过构造带有
workingLocationProperties字段的事件,调用Calendar API的insert/update方法修改工作地点信息,操作权限和普通日程编辑一致
内容的提问来源于stack exchange,提问作者Mathieu Lenoir
相关产品推荐
相关产品推荐

