You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft Graph API获取指定时间段内会议室的忙闲状态?

获取会议室忙闲状态的Microsoft Graph API方案

当然有!Microsoft Graph API完全支持获取会议室的忙闲状态,刚好能匹配你“传入起止时间,批量获取所有会议室忙闲列表”的需求。下面是具体的实现思路和步骤:

核心API:getSchedule

你需要用到的是**getSchedule**接口,它可以查询指定参与者(包括会议室邮箱)在指定时间段内的忙闲状态。

前提准备

通过你已经用过的findRooms API,你可以获取到每个会议室的emailAddress字段——这个就是会议室的邮箱ID,是调用getSchedule的关键参数。

调用示例

以下是一个典型的POST请求示例,用于批量查询多个会议室的忙闲状态:

POST https://graph.microsoft.com/v1.0/me/calendar/getSchedule
Content-Type: application/json

{
  "schedules": [
    "conf-room-a@contoso.com",
    "conf-room-b@contoso.com",
    "conf-room-c@contoso.com"
  ],
  "startTime": {
    "dateTime": "2024-05-20T09:00:00",
    "timeZone": "Pacific Standard Time"
  },
  "endTime": {
    "dateTime": "2024-05-20T17:00:00",
    "timeZone": "Pacific Standard Time"
  },
  "availabilityViewInterval": 60
}

参数说明

  • schedules:填入从findRooms获取到的所有会议室邮箱地址数组
  • startTime/endTime:指定查询的起止时间,必须包含时区信息,避免出现时间偏差
  • availabilityViewInterval:可选参数,指定忙闲状态的时间间隔(单位分钟,默认30),比如设为60就会按小时返回状态

权限要求

根据你的调用场景,需要对应的权限:

  • 委派权限(Delegated):Calendars.Read 或 Calendars.ReadWrite(适用于用户登录的交互场景)
  • 应用权限(Application):Calendars.Read 或 Calendars.ReadWrite(适用于后台服务场景,需要管理员提前同意权限)

注意事项

  • 如果你的会议室数量较多,建议分批次调用getSchedule,避免超过API的请求限制(单请求最多支持查询100个参与者)
  • 确保应用有权限访问目标会议室的日历信息,部分组织可能会限制外部应用访问会议室日历
  • 返回结果中,每个会议室的availabilityView字段会用字符表示对应时间段的状态(比如F代表繁忙,F代表空闲,T代表暂定等),同时也会返回具体的事件详情

内容的提问来源于stack exchange,提问作者atiwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:18:12