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

如何通过Microsoft Graph API获取Outlook子日历的忙闲时段?

解决Microsoft Graph Get Free/Busy API获取子日历忙闲时段的问题

要获取主日历以外的子日历(如美国节假日、生日、测试日历等)的忙闲时段,你需要在API请求中显式指定目标子日历的ID,具体操作步骤如下:

  1. 获取所有日历的ID
    先调用日历列表API,获取目标用户名下所有日历的ID,包括各类子日历:

    GET /me/calendars
    # 若针对特定用户,使用此端点
    GET /users/{user-id}/calendars
    

    响应中每个日历对象会包含id字段,你可以从中筛选出需要的子日历(如美国节假日、生日日历等)对应的ID。

  2. 调用Get Free/Busy API时指定日历ID
    在发起getSchedule请求时,在请求体的scheduleInformation数组中,为目标用户添加calendarIds参数,将主日历和需要的子日历ID全部包含进去。示例请求体如下:

    {
      "schedules": ["user@example.com"],
      "startTime": {
        "dateTime": "2024-05-01T00:00:00",
        "timeZone": "Pacific Standard Time"
      },
      "endTime": {
        "dateTime": "2024-05-07T00:00:00",
        "timeZone": "Pacific Standard Time"
      },
      "availabilityViewInterval": 60,
      "scheduleInformation": [
        {
          "userId": "user@example.com",
          "calendarIds": [
            "主日历ID",
            "美国节假日日历ID",
            "生日日历ID",
            "测试日历ID"
          ]
        }
      ]
    }
    

    配置后API会返回所有指定日历的忙闲时段信息,而非仅主日历数据。

  3. 权限说明
    确保你的应用已获得Calendars.Read权限(可根据使用场景选择委托权限或应用权限),否则无法访问用户的日历列表及忙闲信息。

注意:若不指定calendarIds参数,API默认仅返回用户主日历的忙闲数据,这也是你之前仅获取到主日历结果的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 01:25:26