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

如何使用Microsoft Graph REST API批量创建Outlook日历多个事件

使用Microsoft Graph Batch API批量创建Outlook日历事件实现指南

具体实现步骤

  • 提前完成权限准备:确保你使用的应用已经在Azure AD中配置了日历读写权限,需要的权限范围为Calendars.ReadWrite(创建当前用户日历事件)或Calendars.ReadWrite.Shared(创建共享/其他用户日历事件),权限已经完成用户授权。
  • 构造批量请求基础参数:请求方法为POST,请求地址为https://graph.microsoft.com/v1.0/$batch,请求头必须携带以下参数:
    Authorization: Bearer {你的有效访问令牌}
    Accept: application/json
    Content-Type: application/json
    
  • 构造单条日历事件子请求:每个待创建的日历事件对应一个子请求对象,包含以下必填参数:
    • id:为每个子请求分配唯一的字符串标识,用于后续对应每个事件的创建结果
    • method:固定为POST
    • url:创建当前用户事件填/me/events,创建指定用户事件填/users/{用户ID}/events
    • headers:必须包含Content-Type: application/json
    • body:填写日历事件的具体配置,比如主题、起止时间、时区、参与人、地点等字段
  • 将所有子请求放入requests数组中,组装为完整的请求体发送即可。

批量创建日历事件请求体示例

{
  "requests": [
    {
      "id": "1",
      "method": "POST",
      "url": "/me/events",
      "headers": {
        "Content-Type": "application/json"
      },
      "body": {
        "subject": "团队周会",
        "start": {
          "dateTime": "2024-05-20T09:00:00",
          "timeZone": "China Standard Time"
        },
        "end": {
          "dateTime": "2024-05-20T10:00:00",
          "timeZone": "China Standard Time"
        },
        "location": {
          "displayName": "一号会议室"
        }
      }
    },
    {
      "id": "2",
      "method": "POST",
      "url": "/me/events",
      "headers": {
        "Content-Type": "application/json"
      },
      "body": {
        "subject": "产品需求评审",
        "start": {
          "dateTime": "2024-05-21T14:00:00",
          "timeZone": "China Standard Time"
        },
        "end": {
          "dateTime": "2024-05-21T16:00:00",
          "timeZone": "China Standard Time"
        },
        "attendees": [
          {
            "emailAddress": {
              "address": "zhangsan@example.com",
              "name": "张三"
            },
            "type": "required"
          }
        ]
      }
    }
  ]
}

注意事项

  • 单个Batch请求最多支持包含20个子请求,需要创建超过20个事件时必须拆分为多个Batch请求发送。
  • 单个Batch请求的总负载不能超过4MB,如果事件包含超长描述、大量参与人等内容,需要提前拆分请求避免超出大小限制。
  • 所有子请求的id必须唯一,接口返回的responses数组会按照id和每个子请求一一对应,返回结果中status为201代表对应事件创建成功,非201状态可以查看body中的error字段获取失败原因。
  • 默认子请求为并行执行,互相不影响,如果需要前一个事件创建成功后再执行下一个,可以在请求体根节点添加"isSequential": true参数,开启顺序执行模式。
  • 不建议在Batch请求中直接创建带附件的日历事件,建议先创建事件拿到事件ID后,单独调用附件上传接口处理附件。

内容的提问来源于stack exchange,提问作者K.Nagare

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:15:03