企业自建应用开发
基础
连接微信
办公
文档
接收外部数据到智能表格
会议
会议统计管理
企业自建应用开发
服务端API
企业数据存档
日程内容存档
获取日程列表
获取日程列表
最后更新:2026/08/28

获取存档日程列表与增量日程列表

目录

  • 获取存档日程列表与增量日程列表
  •       权限说明
  •       获取默认日历本 ID
  •             请求方式
  •             请求包体
  •             请求参数
  •             返回结果
  •             返回参数
  •       获取存档成员主日历下的日程列表
  •             请求方式
  •             请求包体
  •             请求参数
  •             返回结果
  •             返回参数
  •             分页说明
  •       获取存档成员主日历下的增量日程列表
  •             请求方式
  •             请求包体
  •             请求参数
  •             返回结果
  •             返回参数
  •             增量游标说明
  •       ScheduleDetail
  •             基础字段
  •             Reminders
  •             会议字段
  •       鉴权与返回范围
  • 本文档描述企业文件内容存档中的默认日历本 ID、日程列表和增量日程列表接口。

    接口只查询指定成员的企业微信系统原生主日历,不读取应用创建的其他日历、共享日历或用户订阅的日历。
    注意
    - 仅可查询文件内容存档实际生效范围内的成员及日程。
    • 获取日程列表接口只返回日程 ID,不直接返回日程详情。
    • 获取增量日程列表接口返回发生变化后仍可读取的日程详情,不返回删除 tombstone;删除事件请通过日程存档回调同步。
    • 被取消的日程仍可返回,调用方需要检查日程的 status 字段。

    权限说明

    调用应用需要满足以下要求:

    应用类型权限要求
    自建应用已配置到“文件内容存档 - 可调用接口的应用”中,并开通日程存档权限
    代开发应用暂不支持
    第三方应用暂不支持

    请求中的 cal_id 解析出的成员(即默认日历本所属成员)必须同时属于以下三个范围:

    企业文件内容存档实际生效的总分配范围
      ∩ 当前应用的可见成员范围
      ∩ 当前应用配置的文件内容存档范围

    获取默认日历本 ID

    该接口用于获取指定存档成员系统原生主日历的 cal_id。返回的 cal_id 作为「获取存档成员主日历下的日程列表」和「获取存档成员主日历下的增量日程列表」接口的入参。

    请求方式

    请求方式: POST(HTTPS

    请求地址:

    https://qyapi.weixin.qq.com/cgi-bin/security/calendar/get_default_calendar?access_token=ACCESS_TOKEN

    请求包体

    {
      "userid": "zhangsan",
      "is_resigned": 0
    }

    请求参数

    参数是否必须类型说明
    access_tokenString调用接口凭证,通过请求 URL 传入
    useridString需要查询的存档成员 userid
    is_resignedInteger是否查询已离职成员。0:否(默认);1:是

    返回结果

    {
      "errcode": 0,
      "errmsg": "ok",
      "cal_id": "wcjgewCwAAqeJcPI1d8Pwbjt7nttzAAA"
    }

    返回参数

    参数类型说明
    errcodeInteger错误码
    errmsgString错误码说明
    cal_idString该成员系统原生主日历的 ID

     

    获取存档成员主日历下的日程列表

    该接口用于分页获取指定存档成员系统原生主日历中的日程 ID。

    请求方式

    请求方式: POST(HTTPS

    请求地址:

    https://qyapi.weixin.qq.com/cgi-bin/security/calendar/get_schedule_list?access_token=ACCESS_TOKEN

    请求包体

    {
      "cal_id": "wcjgewCwAAqeJcPI1d8Pwbjt7nttzAAA",
      "cursor": "JMgigeong",
      "limit": 200
    }

    请求参数

    参数是否必须类型说明
    access_tokenString调用接口凭证,通过请求 URL 传入
    cal_idString需要查询的存档成员系统原生主日历 cal_id,通过「获取默认日历本 ID」接口获取,长度 1~64 字节
    cursorString上一次调用返回的 next_cursor。第一次拉取不填,最大长度为 128 字节
    limitInteger本次最多返回的日程 ID 数量,范围为 1~1000,默认 200

    返回结果

    {
      "errcode": 0,
      "errmsg": "ok",
      "schedule_id_list": [
        "17c7d2bd9f20d652840f72f59e796AAA",
        "27d8e3ce0f31e763951f83f60f807BBB"
      ],
      "next_cursor": "xjigeojgeigwj",
      "has_more": 1
    }

    返回参数

    参数类型说明
    errcodeInteger错误码
    errmsgString错误码说明
    schedule_id_listString 数组指定成员系统原生主日历中的日程 ID 列表
    next_cursorString下一页游标。仅当 has_more=1 时返回
    has_moreInteger是否还有更多数据。1:是;0:否

    分页说明

    • 首次调用不传 cursor
    • 当返回 has_more=1 时,将 next_cursor 原样传入下一次请求;
    • 当返回 has_more=0 时,本轮分页结束;
    • cursor 与当前企业、应用和 cal_id 绑定,不能跨企业、跨应用或跨成员复用;
    • 分页过程中发生日程新增或删除时,后续页面结果可能随主日历当前索引变化;
    • 本接口不支持按日程开始时间或日程创建时间筛选;
    • 如需获取日程详情,调用日程存档详情接口或使用下文的增量日程列表接口。

    获取存档成员主日历下的增量日程列表

    该接口用于获取指定存档成员主日历在某个 cursor 之后发生变化的日程详情,可用于增量同步日程信息。

    例如,首次同步获得日程 A、B、C 以及 next_cursor。之后用户修改日程 A,并新增日程 D,再使用该 next_cursor 调用接口,将返回日程 A 和日程 D 的最新详情。

    请求方式

    请求方式: POST(HTTPS

    请求地址:

    https://qyapi.weixin.qq.com/cgi-bin/security/calendar/get_schedule_list_by_sequence?access_token=ACCESS_TOKEN

    请求包体

    {
      "cal_id": "wcjgewCwAAqeJcPI1d8Pwbjt7nttzAAA",
      "cursor": "JMgigeong",
      "limit": 500
    }

    请求参数

    参数是否必须类型说明
    access_tokenString调用接口凭证,通过请求 URL 传入
    cal_idString需要增量同步的存档成员系统原生主日历 cal_id,通过「获取默认日历本 ID」接口获取,长度 1~64 字节
    cursorString增量拉取游标。首次拉取不填;后续使用上一次返回的 next_cursor,最大长度为 128 字节
    limitInteger本次最多扫描的增量索引数量,范围为 1~1000,默认 500

    返回结果

    {
      "errcode": 0,
      "errmsg": "ok",
      "next_cursor": "xjigeojgeigwj",
      "schedule_list": [
        {
          "schedule_id": "17c7d2bd9f20d652840f72f59e796AAA",
          "organizer": "zhangsan",
          "attendees": [
            {
              "userid": "lisi",
              "response_status": 0
            }
          ],
          "summary": "项目周会",
          "description": "同步项目进度",
          "reminders": {
            "is_remind": 1,
            "is_repeat": 1,
            "remind_before_event_secs": 900,
            "repeat_type": 1,
            "repeat_until": 0,
            "is_custom_repeat": 1,
            "repeat_interval": 1,
            "repeat_day_of_week": [1],
            "timezone": 8
          },
          "location": "第一会议室",
          "start_time": 1770000000,
          "end_time": 1770003600,
          "status": 0,
          "cal_id": "wcjgewCwAAqeJcPI1d8Pwbjt7nttzAAA",
          "is_whole_day": 0
        }
      ]
    }

    返回参数

    参数类型说明
    errcodeInteger错误码
    errmsgString错误码说明
    next_cursorString下一次增量查询使用的游标
    schedule_listObject 数组本批发生变化且当前仍可读取的日程详情,结构详见 ScheduleDetail

    增量游标说明

    • 首次调用不传 cursor,从该成员主日历现有增量索引起点开始读取;
    • 每次调用后均应保存返回的 next_cursor
    • 下一次调用时,将保存的 next_cursor 原样传入;
    • cursor 与当前企业、应用和 cal_id 绑定,不能跨企业、跨应用或跨成员复用;
    • next_cursor 按本次已扫描索引的最大 sequence 推进;
    • 被删除或已无法读取详情的日程不会加入 schedule_list,但对应索引仍会推进 cursor;
    • schedule_list 为空表示本批没有可返回的日程详情,调用方仍应保存 next_cursor
    • 本接口不返回删除 tombstone。删除、移除参与人等事件应通过日程存档回调同步;
    • 被取消的日程仍可以返回,需检查 status=1

    ScheduleDetail

    基础字段

    参数类型说明
    schedule_idString日程 ID
    organizerString日程创建者的 userid
    attendeesObject 数组当前有效参与者列表,最多支持 1000 人
    attendees.useridString参与者 userid;外部联系人按开放字段转换规则返回
    attendees.response_statusInteger接受状态:0 未处理;1 待定;2 全部接受;3 仅接受一次;4 拒绝
    summaryString日程标题
    descriptionString日程描述
    locationString日程地点,不多于 128 个字符
    start_timeInteger日程开始时间,Unix 时间戳
    end_timeInteger日程结束时间,Unix 时间戳
    statusInteger日程状态:0 正常;1 已取消
    cal_idString日程所属日历 ID。仅系统原生主日历或 API 日历返回
    is_whole_dayInteger是否为全天日程:0 否;1 是
    adminsString 数组日程管理员 userid 列表
    allow_active_joinBoolean是否允许非参与人主动加入日程
    only_organizer_create_chatInteger是否仅允许组织者发起群聊:0 否;1 是

    Reminders

    参数类型说明
    reminders.is_remindInteger是否提醒:0 否;1 是
    reminders.is_repeatInteger是否重复日程:0 否;1 是
    reminders.remind_before_event_secsInteger日程开始前多少秒提醒
    reminders.remind_time_diffsInteger 数组提醒时间与日程开始时间的差值,可能为负数
    reminders.repeat_typeInteger重复类型:0 每日;1 每周;2 每月;5 每年;7 工作日
    reminders.repeat_untilInteger重复结束时间,Unix 时间戳;0 表示一直重复
    reminders.is_custom_repeatInteger是否自定义重复:0 否;1 是
    reminders.repeat_intervalInteger自定义重复间隔
    reminders.repeat_day_of_weekInteger 数组每周重复日期,1~7 表示周一至周日
    reminders.repeat_day_of_monthInteger 数组每月重复日期,取值范围 1~31
    reminders.timezoneIntegerUTC 时区偏移小时数,范围 -12~+12
    reminders.exclude_time_listObject 数组重复日程中被删除或修改的例外时间列表
    reminders.exclude_time_list.start_timeInteger例外日程原开始时间,Unix 时间戳

    会议字段

    参数类型说明
    meetingidString日程关联会议的开放会议 ID
    meeting_codeString腾讯会议会议号,仅符合返回条件时提供
    meeting_linkString腾讯会议入会链接,仅符合返回条件时提供
    meetingroom_idInteger日程关联会议室的开放配置 ID,仅符合返回条件时提供

    鉴权与返回范围

    • 查询目标 cal_id 解析出的成员必须属于文件内容存档实际生效成员范围;
    • 增量接口对每条实际返回的日程再次校验创建者和当前有效参与者;
    • 日程创建者或当前有效参与者中,至少一人需要同时命中企业总分配范围、应用可见范围和应用文件内容存档范围;
    • 如果本批任一可读取日程未通过范围校验,当前请求整体失败,不进行部分返回;
    • 应用存档范围选择“全部”时,仍需满足企业总分配范围和应用可见范围;
    • 系统依赖查询失败时返回错误,不降级放行。
    上一篇回调通知
    下一篇获取日程详情
      本节内容
    服务端API
    基础
    连接微信
    办公
    文档
    接收外部数据到智能表格
    会议
    会议统计管理
    客户端API
    小程序
    基础
    连接微信
    办公
    JS-SDK
    基础
    连接微信
    办公
    消息推送(原“群机器人”)
    更新日志