企业微信会议技能 wecom-cli 是企业微信提供的命令行程序,所有操作通过执行 wecom-cli 命令完成。 概述 wecomcli-meeting 提供企业微信会议的完整管理能力,包含以下功能: 创建预约会议 - 创建会议,支持设置会议参数,邀请参与人等 查询会议列表 - 按用户和时间范围查询会议 ID 列表 (限制: 当日及前后 30 天,上限 100 个) 获取会议详情 - 通过会议 ID 查询完整会议信息 取消会议 - 取消指定的预约会议 更新会议受邀成员 - 修改会议的参与人列表 命令调用方式 执行指定命令: wecom-cli meeting < tool_name
'
' 命令详细说明 1. 创建预约会议 (create_meeting) 创建一个预约会议,支持设置会议参数配置等。 执行命令 wecom-cli meeting create_meeting '{"title": "<会议标题>", "meeting_start_datetime": "<会议开始时间>", "meeting_duration": <会议持续时长(秒)>}' 入参说明 参数 类型 必填 说明 title string 是 会议标题 meeting_start_datetime string 是 会议开始时间,格式: YYYY-MM-DD HH:mm meeting_duration integer 是 会议持续时长 (秒),例如 3600 = 1 小时 description string 否 会议描述 location string 否 会议地点 invitees object 否 被邀请人,格式: {"userid": ["lisi", "wangwu"]} settings object 否 会议设置 (详见下方) 被邀请人 userid 通过 wecomcli-contact 技能获取 settings 字段: 参数 类型 说明 password string 会议密码 enable_waiting_room boolean 是否启用等候室 allow_enter_before_host boolean 是否允许成员在主持人进入前加入 enable_enter_mute integer 入会时静音设置 (枚举: 0: 关闭,1: 开启) allow_external_user boolean 是否允许外部用户入会 enable_screen_watermark boolean 是否开启屏幕水印 remind_scope integer 提醒范围 (1: 不提醒,2: 仅提醒主持人,3: 提醒所有成员,4: 指定部分人响铃,默认仅提醒主持人) ring_users object 响铃用户,格式: {"userid": ["lisi"]} 响铃用户 userid 通过 wecomcli-contact 技能获取 返回参数 { "errcode" : 0 , "errmsg" : "ok" , "meetingid" : "会议ID字符串" , "meeting_code" : "会议号码字符串" , "meeting_link" : "会议链接URL" , "excess_users" : [ "无效会议账号的userid" ] } 字段 类型 说明 meetingid string 会议 ID meeting_code string 会议号码,向用户展示时需在回复 开头 单独一行纯文字展示,格式
会议号: xxx-xxx-xxx
(每3位用
- 分隔)
- meeting_link
- string
- 会议链接
- excess_users
- array
- 参会人中包含无效会议账号的 userid,仅在购买会议专业版企业由于部分参会人无有效会议账号时返回
- 2. 查询会议列表 (list_user_meetings)
- 查询指定用户在时间范围内的会议 ID 列表。
- 执行命令
- wecom-cli meeting list_user_meetings
- '{"begin_datetime": "2026-03-01 00:00", "end_datetime": "2026-03-31 23:59", "limit": 100}'
- 入参说明
- 参数
- 类型
- 必填
- 说明
- begin_datetime
- string
- 否
- 查询起始时间,格式:
- YYYY-MM-DD HH:mm
- end_datetime
- string
- 否
- 查询结束时间,格式:
- YYYY-MM-DD HH:mm
- cursor
- string
- 否
- 分页游标,用于获取下一页数据
- limit
- integer
- 否
- 每页返回条数,最大 100
- 限制
-
- 时间范围仅支持当日及前后 30 天。
- 返回参数
- {
- "errcode"
- :
- 0
- ,
- "errmsg"
- :
- "ok"
- ,
- "next_cursor"
- :
- "分页游标字符串,为空表示无更多"
- ,
- "meetingid_list"
- :
- [
- "会议ID_1"
- ,
- "会议ID_2"
- ]
- }
- 字段
- 类型
- 说明
- meetingid_list
- array
- 会议 ID 列表
- next_cursor
- string
- 下一页游标,为空表示无更多数据
- 3. 获取会议详情 (get_meeting_info)
- 通过会议 ID 查询会议的完整详情。
- 执行命令
- wecom-cli meeting get_meeting_info
- '{"meetingid": "<会议id>"}'
- 入参说明
- 参数
- 类型
- 必填
- 说明
- meetingid
- string
- 是
- 会议 ID,通过
- list_user_meetings
- 获取
- meeting_code
- string
- 否
- 会议号码
- sub_meetingid
- string
- 否
- 子会议 ID
- 返回参数
- 完整的返回参数结构和字段说明详见
- references/response-get-meeting-info.md
- 核心字段速览:
- 字段
- 类型
- 说明
- title
- string
- 会议标题
- meeting_start_datetime
- string
- 会议开始时间
- meeting_duration
- integer
- 会议时长 (秒)
- status
- integer
- 会议状态 (1: 待开始,2: 会议中,3: 已结束,4: 已取消,5: 已过期)
- meeting_type
- integer
- 会议类型 (0: 一次性,1: 周期性,2: 微信专属,3: Rooms 投屏,5: 个人会议号,6: 网络研讨会)
- meeting_code
- string
- 会议号码
- meeting_link
- string
- 会议链接
- description
- string
- 会议描述
- location
- string
- 会议地点
- attendees.member[].status
- integer
- 与会状态 (1: 已参与,2: 未参与)
- 4. 取消会议 (cancel_meeting)
- 取消指定的预约会议。
- 执行命令
- wecom-cli meeting cancel_meeting
- '{"meetingid": "<会议id>"}'
- 入参说明
- 参数
- 类型
- 必填
- 说明
- meetingid
- string
- 是
- 会议 ID,通过
- list_user_meetings
- +
- get_meeting_info
- 获取
- 返回参数
- {
- "errcode"
- :
- 0
- ,
- "errmsg"
- :
- "ok"
- }
- 5. 更新会议受邀成员 (set_invite_meeting_members)
- 更新会议的受邀成员列表(全量覆盖)。
- 执行命令
- wecom-cli meeting set_invite_meeting_members
- '{"meetingid": "<会议id>", "invitees": [{"userid": "lisi"}, {"userid": "wangwu"}]}'
- 入参说明
- 参数
- 类型
- 必填
- 说明
- meetingid
- string
- 是
- 会议 ID,通过
- list_user_meetings
- +
- get_meeting_info
- 获取
- invitees
- array
- 是
- 受邀成员列表,每项包含
- userid
- 字段
- 注意
-
- invitees 为全量覆盖,传入的列表将替换现有成员列表。
- invitees 的 userid 通过
- wecomcli-contact
- 技能获取
- 返回参数
- {
- "errcode"
- :
- 0
- ,
- "errmsg"
- :
- "ok"
- }
- 典型工作流
- 工作流 1: 最简创建 (无邀请人)
- 用户意图
-
- "帮我约一个明天下午3点的会议,主题是周例会,时长1小时"
- 步骤:
- 解析用户意图
- 时间 + 主题已有,邀请人未提及则默认留空,直接创建。 调用创建命令 : wecom-cli meeting create_meeting '{"title": "周例会", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600}' 展示结果 :
会议号: <会议号>
- ✅ 会议创建成功!
- 📅 <会议标题>
- 🕐 时间: <开始时间>,时长 <时长>
- 🔗 会议链接: <会议链接>
- 工作流 2: 带邀请人 + 地点 + 描述创建
- 用户意图
-
- "帮我约一个明天下午3点的会议,主题是技术方案评审,邀请张三和李四,地点在3楼会议室,时长1小时"
- 步骤:
- 解析用户意图
-
- 有邀请人,需先查询通讯录获取 userid。
- 通讯录查询
- 调用 wecomcli-contact 技能获取通讯录成员,按姓名筛选出参与者的 userid。 wecom-cli contact get_userlist '{}' 在返回的 userlist 中筛选 name 包含 "张三" 和 "李四" 的成员,获取其 userid 。 信息已充分,直接调用创建命令 (禁止暴露内部 ID): wecom-cli meeting create_meeting '{"title": "技术方案评审", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600, "location": "3楼会议室", "invitees": {"userid": ["zhangsan", "lisi"]}}' 展示结果 :
会议号: <会议号>
- ✅ 会议创建成功!
- 📅 <会议标题>
- 🕐 时间: <开始时间>,时长 <时长>
- 👥 参与人: <参与者姓名列表>
- 🔗 会议链接: <会议链接>
- 工作流 3: 查询会议列表
- 示例
-
- 用户说 "帮我查一下本周有哪些会议"
- 步骤:
- 确定时间范围
-
- 根据当前日期计算本周的起止时间。
- 查询会议 ID 列表
- :
- wecom-cli meeting list_user_meetings
- '{"begin_datetime": "2026-03-16 00:00", "end_datetime": "2026-03-22 23:59", "limit": 100}'
- 逐个查询会议详情
- (对返回的每个 meetingid):
- wecom-cli meeting get_meeting_info
- '{"meetingid": "<会议id1>"}'
- wecom-cli meeting get_meeting_info
- '{"meetingid": "<会议id2>"}'
- 汇总展示
- :
- 📋 本周会议列表 (共 3 场):
- 1. 📅 技术方案评审
- 🕐 2026-03-17 10:00 - 11:00
- 👥 张三,李四,王五
- 2. 📅 产品需求沟通
- 🕐 2026-03-18 14:00 - 15:00
- 👥 赵六,钱七
- 3. 📅 周五周会
- 🕐 2026-03-21 09:00 - 10:00
- 👥 全组成员
- 分页处理
-
- 如果
- next_cursor
- 不为空,使用
- cursor
- 参数继续拉取下一页。
- 工作流 4: 获取会议详情
- 示例
-
- 用户说 "帮我看下技术方案评审会议的详情"
- 步骤:
- 定位会议
- 先通过会议列表查询找到目标会议的 meetingid (按关键词匹配)。
查询详情
:
wecom-cli meeting get_meeting_info
'{"meetingid": "
"}' 展示结果 :
会议号: <会议号>
- 📅 <会议标题>
- 🕐 时间: <开始时间>,时长 <时长>
- 📍 地点: <会议地点>
- 📝 描述: <会议描述>
- 👤 创建者: <创建者姓名>
- 👥 参与者: <参与者姓名列表>
- 🔗 会议链接: <会议链接>
- 工作流 5: 根据关键词查找会议
- 示例
-
- 用户说 "技术评审会议是什么时候?"
- 查询策略:
- 确定查询范围
- 默认查当日前后 30 天 (接口限制范围)。 拉取会议列表 : wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-02-15 00:00", "end_datetime": "2026-04-16 23:59", "limit": 100}' 逐个查询详情并匹配标题关键词 。 找到匹配后停止查询,展示结果 :
会议号: <会议号>
- ✅ 找到会议: "<会议标题>"
- 📅 时间: <开始时间>,时长 <时长>
- 📍 地点: <会议地点>
- 👥 参与者: <参与者姓名列表>
- 🔗 会议链接: <会议链接>
- 未找到处理
-
- 告知用户在前后 30 天范围内未找到匹配会议,请确认会议名称。
- 工作流 6: 取消会议
- 示例
-
- 用户说 "帮我取消明天的技术方案评审会议"
- 步骤:
- 定位会议
-
- 通过
- list_user_meetings
- +
- get_meeting_info
- 查询会议列表 + 关键词匹配找到目标会议。
- 直接执行取消
- :
- wecom-cli meeting cancel_meeting
- '{"meetingid": "
"}' - 展示结果
- :
- ✅ 会议已取消: 技术方案评审
- 工作流 7: 更新会议成员
- 示例
-
- 用户说 "把王五加到技术方案评审会议里"
- 步骤:
- 定位会议
-
- 通过
- list_user_meetings
- +
- get_meeting_info
- 查询会议列表 + 匹配找到目标会议。
- 获取当前受邀成员
- :
- set_invite_meeting_members
- 为全量覆盖,必须先通过
- get_meeting_info
- 获取会议详情,获取现有成员后再合并。
- 通讯录查询
-
- 调用
- wecomcli-contact
- 技能获取通讯录成员,按姓名筛选出王五的 userid。
- wecom-cli contact get_userlist
- '{}'
- 在返回的
- userlist
- 中筛选
- name
- 包含 "王五" 的成员,获取其
- userid
- 。
- 合并成员列表
-
- 将现有成员 + 新增成员合并 (全量覆盖)。
- 执行更新
- :
- wecom-cli meeting set_invite_meeting_members
- '{"meetingid": "
", "invitees": [{"userid": "zhangsan"}, {"userid": "lisi"}, {"userid": "wangwu"}]}' - 展示结果
- :
- ✅ 会议成员已更新: 技术方案评审
- 👥 当前成员: 张三,李四,王五
- 复杂场景样例
- 按场景按需加载,避免一次性引入过多无关示例:
- 文件
- 适用场景
- references/response-get-meeting-info.md
- 获取会议详情完整返回参数结构和字段说明
- references/example-security.md
- 会议密码,等候室,外部用户限制
- references/example-reminder.md
- 响铃提醒,指定部分人响铃
- references/example-full.md
- 全参数综合场景 (含静音,屏幕水印,等候室等设置)
- 注意事项
- 信息追问
-
- 缺少时间或主题时,简洁追问用户;未提及邀请人则默认留空
- 通讯录查询
-
- 涉及参与人时,需先通过
- wecomcli-contact
- 技能的
- get_userlist
- 接口获取全量通讯录成员,再按姓名/别名本地筛选匹配出对应的
- userid
- 。该接口无入参,返回当前用户可见范围内的成员列表 (含
- userid
- ,
- name
- ,
- alias
- )
- 直接创建
-
- 时间 + 主题已知即可直接创建,邀请人有则带上,无则留空;无论信息是一次性提供还是上下文可推断,非必要则均不请求确认,直接创建即可
- 时间格式
-
- 统一使用
- YYYY-MM-DD HH:mm
- 格式
- 会议列表时间范围限制
-
- 仅支持查询当日及前后 30 天内的会议
- 查询详情需两步
-
- 先通过
- list_user_meetings
- 获取会议 ID 列表,再通过
- get_meeting_info
- 逐个获取详情
- 定位会议
- 取消会议和更新成员等管理操作需先通过查询定位到目标会议的 meetingid 成员更新为全量覆盖 : set_invite_meeting_members 传入的列表将替换现有成员列表,需先获取当前成员再合并 参与人仅支持企业内成员 ,不支持外部人员