如何通过MS Graph API高效获取多个Outlook日历的日历视图
有两种更高效的实现方案,可大幅减少接口调用次数,提升使用体验:
方案1:使用Microsoft Graph批量请求(JSON batching)
- 可将最多20个获取单个日历视图的请求合并为1次批量请求调用,一次性拿到最多20个日历的视图数据
- 请求入口为
POST https://graph.microsoft.com/v1.0/$batch,仅需在请求体中按规范拼接每个获取日历视图的子请求即可 - 即使用户的日历数量超过20个,也可按每20个一组拆分批次,总请求次数仅为原方案的1/20,效率提升十分显著
方案2:使用getSchedule接口一次查询多日历数据
如果你仅需要获取指定时间段内多个日历的基础事件信息、忙闲状态,该方案是最优选择:
- 接口调用格式:
POST /users/{id | userPrincipalName}/calendar/getSchedule
- 可在请求体中传入最多100个待查询的日历标识(支持用户主体名、日历SMTP地址),同时指定
startTime、endTime时间范围,一次调用即可返回所有目标日历对应时间段的全部视图数据,完全不需要遍历日历ID多次调用
方案选型参考
- 若需要获取日历事件的完整属性(如自定义扩展字段、附件信息等),优先选择批量请求方案
- 若仅需要基础事件信息,
getSchedule方案的性能更好,支持查询的日历数量也更多
内容的提问来源于stack exchange,提问作者woodykiddy
相关产品推荐
相关产品推荐

