Microsoft Booking预约与日历事件关联及GraphAPI查询方法
通过Microsoft Graph API关联Booking预约与员工日历事件
核心关联逻辑:隐藏的扩展属性
Microsoft Booking给员工创建的日历事件里,其实藏着一个自定义扩展属性,用来绑定对应的Booking预约ID——这就是两者的关联纽带,只是文档没明确提而已。
具体操作步骤
1. 先查Booking预约的完整信息
用你已知的预约资源ID(appointmentId),拉取预约的详细数据,拿到被预约员工的ID列表:
GET /bookingBusinesses/{bookingBusinessId}/appointments/{appointmentId}
返回结果里的staffMemberIds字段就是你要找的员工ID集合。
2. 查询员工日历并过滤关联属性
针对每个员工ID,查询其日历事件,同时过滤出带有Booking预约关联属性的条目:
GET /users/{staffMemberId}/calendar/events?$expand=singleValueExtendedProperties($filter=id eq 'String {c6d4e2a8-88a0-4f4d-96c1-87e0244a6e3a} Name BookingAppointmentId')
这个扩展属性BookingAppointmentId的取值就是你手里的预约资源ID,匹配上的就是对应的日历事件。
3. 验证匹配结果
返回的事件数据里,singleValueExtendedProperties下的value字段会和你的预约资源ID完全一致,这样就能精准定位到对应的员工日历事件。
额外提示
- 如果要批量查询,建议加上时间段过滤(比如
$filter=start/dateTime ge '2024-01-01T00:00:00Z'),能大幅提升查询速度。 - 系统处理预约重排或删除时,就是靠这个扩展属性找到对应的日历事件同步更新的,所以这个关联逻辑是稳定的。
内容的提问来源于stack exchange,提问作者Sjoerd222888
相关产品推荐
相关产品推荐

