wecomcli-meeting

企业微信会议技能,支持创建预约会议、查询会议列表、获取会议详情、取消会议、更新会议成员。当用户需要"创建会议"、"预约会议"、"约会议"、"安排会议"、"查看会议"、"查询会议列表"、"会议详情"、"什么时候开会"、"有哪些会议"、"查找会议"、"取消会议"、"删除会议"、"修改会议成员"、"添加会议参与人"、"移除会议成员"时触发。

1,387 stars

Best use case

wecomcli-meeting is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

企业微信会议技能,支持创建预约会议、查询会议列表、获取会议详情、取消会议、更新会议成员。当用户需要"创建会议"、"预约会议"、"约会议"、"安排会议"、"查看会议"、"查询会议列表"、"会议详情"、"什么时候开会"、"有哪些会议"、"查找会议"、"取消会议"、"删除会议"、"修改会议成员"、"添加会议参与人"、"移除会议成员"时触发。

Teams using wecomcli-meeting should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/wecomcli-meeting/SKILL.md --create-dirs "https://raw.githubusercontent.com/WecomTeam/wecom-cli/main/skills/wecomcli-meeting/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/wecomcli-meeting/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How wecomcli-meeting Compares

Feature / Agentwecomcli-meetingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

企业微信会议技能,支持创建预约会议、查询会议列表、获取会议详情、取消会议、更新会议成员。当用户需要"创建会议"、"预约会议"、"约会议"、"安排会议"、"查看会议"、"查询会议列表"、"会议详情"、"什么时候开会"、"有哪些会议"、"查找会议"、"取消会议"、"删除会议"、"修改会议成员"、"添加会议参与人"、"移除会议成员"时触发。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 企业微信会议技能

> `wecom-cli` 是企业微信提供的命令行程序,所有操作通过执行 `wecom-cli` 命令完成。

## 概述

wecomcli-meeting 提供企业微信会议的完整管理能力,包含以下功能:

1. **创建预约会议** - 创建会议,支持设置会议参数,邀请参与人等
2. **查询会议列表** - 按用户和时间范围查询会议 ID 列表 (限制: 当日及前后 30 天,上限 100 个)
3. **获取会议详情** - 通过会议 ID 查询完整会议信息
4. **取消会议** - 取消指定的预约会议
5. **更新会议受邀成员** - 修改会议的参与人列表

## 命令调用方式

执行指定命令:
```bash
wecom-cli meeting <tool_name> '<json_params>'
```

---

## 命令详细说明

### 1. 创建预约会议 (create_meeting)

创建一个预约会议,支持设置会议参数配置等。

#### 执行命令

```bash
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` 技能获取

#### 返回参数

```json
{
  "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 列表。

#### 执行命令

```bash
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 天。

#### 返回参数

```json
{
  "errcode": 0,
  "errmsg": "ok",
  "next_cursor": "分页游标字符串,为空表示无更多",
  "meetingid_list": ["会议ID_1", "会议ID_2"]
}
```

| 字段               | 类型   | 说明                           |
| ------------------ | ------ | ------------------------------ |
| `meetingid_list` | array  | 会议 ID 列表                   |
| `next_cursor`    | string | 下一页游标,为空表示无更多数据 |

---

### 3. 获取会议详情 (get_meeting_info)

通过会议 ID 查询会议的完整详情。

#### 执行命令

```bash
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](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)

取消指定的预约会议。

#### 执行命令

```bash
wecom-cli meeting cancel_meeting '{"meetingid": "<会议id>"}'
```

#### 入参说明

| 参数              | 类型   | 必填 | 说明                               |
| ----------------- | ------ | ---- | ---------------------------------- |
| `meetingid`     | string | 是   | 会议 ID,通过 `list_user_meetings` + `get_meeting_info` 获取 |

#### 返回参数

```json
{
  "errcode": 0,
  "errmsg": "ok"
}
```

---

### 5. 更新会议受邀成员 (set_invite_meeting_members)

更新会议的受邀成员列表(全量覆盖)。

#### 执行命令

```bash
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` 技能获取

#### 返回参数

```json
{
  "errcode": 0,
  "errmsg": "ok"
}
```

---

## 典型工作流

### 工作流 1: 最简创建 (无邀请人)

**用户意图**: "帮我约一个明天下午3点的会议,主题是周例会,时长1小时"

**步骤:**

1. **解析用户意图**: 时间 + 主题已有,邀请人未提及则默认留空,直接创建。
2. **调用创建命令**:

```bash
wecom-cli meeting create_meeting '{"title": "周例会", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600}'
```

3. **展示结果**:

#会议号: <会议号>

```
✅ 会议创建成功!

📅 <会议标题>
🕐 时间: <开始时间>,时长 <时长>
🔗 会议链接: <会议链接>
```

### 工作流 2: 带邀请人 + 地点 + 描述创建

**用户意图**: "帮我约一个明天下午3点的会议,主题是技术方案评审,邀请张三和李四,地点在3楼会议室,时长1小时"

**步骤:**

1. **解析用户意图**: 有邀请人,需先查询通讯录获取 userid。
2. **通讯录查询**: 调用 `wecomcli-contact` 技能获取通讯录成员,按姓名筛选出参与者的 userid。

```bash
wecom-cli contact get_userlist '{}'
```

在返回的 `userlist` 中筛选 `name` 包含 "张三" 和 "李四" 的成员,获取其 `userid`。

3. **信息已充分,直接调用创建命令** (禁止暴露内部 ID):

```bash
wecom-cli meeting create_meeting '{"title": "技术方案评审", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600, "location": "3楼会议室", "invitees": {"userid": ["zhangsan", "lisi"]}}'
```

4. **展示结果**:

#会议号: <会议号>

```
✅ 会议创建成功!

📅 <会议标题>
🕐 时间: <开始时间>,时长 <时长>
👥 参与人: <参与者姓名列表>
🔗 会议链接: <会议链接>
```

---

### 工作流 3: 查询会议列表

**示例**: 用户说 "帮我查一下本周有哪些会议"

**步骤:**

1. **确定时间范围**: 根据当前日期计算本周的起止时间。
2. **查询会议 ID 列表**:

```bash
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-03-16 00:00", "end_datetime": "2026-03-22 23:59", "limit": 100}'
```

3. **逐个查询会议详情** (对返回的每个 meetingid):

```bash
wecom-cli meeting get_meeting_info '{"meetingid": "<会议id1>"}'
```
```bash
wecom-cli meeting get_meeting_info '{"meetingid": "<会议id2>"}'
```

4. **汇总展示**:

```
📋 本周会议列表 (共 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: 获取会议详情

**示例**: 用户说 "帮我看下技术方案评审会议的详情"

**步骤:**

1. **定位会议**: 先通过会议列表查询找到目标会议的 meetingid (按关键词匹配)。
2. **查询详情**:

```bash
wecom-cli meeting get_meeting_info '{"meetingid": "<target_meetingid>"}'
```

3. **展示结果**:

#会议号: <会议号>

```
📅 <会议标题>

🕐 时间: <开始时间>,时长 <时长>
📍 地点: <会议地点>
📝 描述: <会议描述>
👤 创建者: <创建者姓名>
👥 参与者: <参与者姓名列表>
🔗 会议链接: <会议链接>
```

---

### 工作流 5: 根据关键词查找会议

**示例**: 用户说 "技术评审会议是什么时候?"

**查询策略:**

1. **确定查询范围**: 默认查当日前后 30 天 (接口限制范围)。
2. **拉取会议列表**:

```bash
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-02-15 00:00", "end_datetime": "2026-04-16 23:59", "limit": 100}'
```

3. **逐个查询详情并匹配标题关键词**。
4. **找到匹配后停止查询,展示结果**:

#会议号: <会议号>

```
✅ 找到会议: "<会议标题>"

📅 时间: <开始时间>,时长 <时长>
📍 地点: <会议地点>
👥 参与者: <参与者姓名列表>
🔗 会议链接: <会议链接>
```

5. **未找到处理**: 告知用户在前后 30 天范围内未找到匹配会议,请确认会议名称。

---

### 工作流 6: 取消会议

**示例**: 用户说 "帮我取消明天的技术方案评审会议"

**步骤:**

1. **定位会议**: 通过 `list_user_meetings` + `get_meeting_info` 查询会议列表 + 关键词匹配找到目标会议。
2. **直接执行取消**:

```bash
wecom-cli meeting cancel_meeting '{"meetingid": "<target_meetingid>"}'
```

3. **展示结果**:

```
✅ 会议已取消: 技术方案评审
```

---

### 工作流 7: 更新会议成员

**示例**: 用户说 "把王五加到技术方案评审会议里"

**步骤:**

1. **定位会议**: 通过 `list_user_meetings` + `get_meeting_info` 查询会议列表 + 匹配找到目标会议。
2. **获取当前受邀成员**: `set_invite_meeting_members` 为全量覆盖,必须先通过 `get_meeting_info` 获取会议详情,获取现有成员后再合并。
3. **通讯录查询**: 调用 `wecomcli-contact` 技能获取通讯录成员,按姓名筛选出王五的 userid。

```bash
wecom-cli contact get_userlist '{}'
```

在返回的 `userlist` 中筛选 `name` 包含 "王五" 的成员,获取其 `userid`。

4. **合并成员列表**: 将现有成员 + 新增成员合并 (全量覆盖)。
5. **执行更新**:

```bash
wecom-cli meeting set_invite_meeting_members '{"meetingid": "<target_meetingid>", "invitees": [{"userid": "zhangsan"}, {"userid": "lisi"}, {"userid": "wangwu"}]}'
```

6. **展示结果**:

```
✅ 会议成员已更新: 技术方案评审
👥 当前成员: 张三,李四,王五
```

---

## 复杂场景样例

按场景按需加载,避免一次性引入过多无关示例:

| 文件 | 适用场景 |
| ---- | -------- |
| [references/response-get-meeting-info.md](references/response-get-meeting-info.md) | 获取会议详情完整返回参数结构和字段说明 |
| [references/example-security.md](references/example-security.md) | 会议密码,等候室,外部用户限制 |
| [references/example-reminder.md](references/example-reminder.md) | 响铃提醒,指定部分人响铃 |
| [references/example-full.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` 传入的列表将替换现有成员列表,需先获取当前成员再合并
- **参与人仅支持企业内成员**,不支持外部人员

Related Skills

wecomcli-todo

1387
from WecomTeam/wecom-cli

企业微信待办事项管理技能,支持查询待办列表、获取待办详情、创建待办、更新待办、删除待办及变更用户处理进度状态。在用户说"看看我的待办列表"、"我有哪些待办"、"帮我创建一个待办"、"把这个任务分派给张三"、"标记待办完成"、"删掉那个待办"、"帮我建个提醒"、"更新一下待办内容"、"把提醒时间改到下周"、"接受这个待办"、"拒绝这个待办"、"这个待办的详情"、"待办分派给谁了"等需要对待办进行读写操作的场景时使用。

wecomcli-schedule

1387
from WecomTeam/wecom-cli

企业微信日程管理技能。适用于用户对企业微信日程的各类管理需求。当用户需要:(1) 查询指定时间范围内的日程列表或获取日程详细信息(标题、时间、地点、参与者等),(2) 创建新日程并设置提醒、参与人等,(3) 修改已有日程的标题、时间、地点等信息或取消日程,(4) 添加或移除日程参与人,(5) 查询多个成员的闲忙状态并分析共同空闲时段以安排会议时使用此技能。

wecomcli-msg

1387
from WecomTeam/wecom-cli

企业微信消息技能。提供会话列表查询、消息记录拉取(支持文本/图片/文件/语音/视频)、多媒体文件获取和文本消息发送能力。当用户需要"查看消息"、"看聊天记录"、"发消息给某人"、"最近有什么消息"、"给群里发消息"、"看看发了什么图片/文件"时触发。

wecomcli-doc

1387
from WecomTeam/wecom-cli

企业微信文档与智能表格管理技能。提供文档的创建、读取、编辑能力,以及智能表格的结构管理(子表、字段)和数据管理(记录增删改查)。适用场景:(1) 以 Markdown 格式获取文档完整内容 (2) 新建文档或智能表格 (3) 用 Markdown 格式覆写文档内容 (4) 管理智能表格子表和字段/列 (5) 查询、添加、更新、删除智能表格记录。支持通过 docid 或文档 URL 定位文档。

wecomcli-contact

1387
from WecomTeam/wecom-cli

通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。

wecomcli-manage-smartsheet-schema

1354
from WecomTeam/wecom-cli

企业微信智能表格结构管理技能。提供子表(Sheet)和字段(Field/列)的增删改查能力。适用场景:(1) 查询智能表格的子表列表 (2) 添加、更新、删除子表 (3) 查询子表的字段/列信息 (4) 添加、更新、删除字段/列。当用户需要管理智能表格的表结构、列定义、子表配置时触发此 Skill。支持通过 docid 或文档 URL 定位文档。

wecomcli-manage-smartsheet-data

1354
from WecomTeam/wecom-cli

企业微信智能表格数据(记录)管理技能。提供智能表格记录的增删改查能力。适用场景:(1) 查询子表全部记录 (2) 添加一行或多行记录 (3) 更新已有记录 (4) 删除记录。当用户需要读取表格数据、写入新数据、修改或删除表格行时触发此 Skill。支持通过 docid 或文档 URL 定位文档。

wecomcli-manage-schedule

1354
from WecomTeam/wecom-cli

企业微信日程管理技能。适用于用户对企业微信日程的各类管理需求。当用户需要:(1) 查询指定时间范围内的日程列表或获取日程详细信息(标题、时间、地点、参与者等),(2) 创建新日程并设置提醒、参与人等,(3) 修改已有日程的标题、时间、地点等信息或取消日程,(4) 添加或移除日程参与人,(5) 查询多个成员的闲忙状态并分析共同空闲时段以安排会议时使用此技能。

wecomcli-manage-doc

1354
from WecomTeam/wecom-cli

企业微信文档管理技能。提供文档的创建、读取和编辑能力,支持通过 docid 或文档 URL 操作企业微信文档(doc_type=3)和智能表格(doc_type=10)。适用场景:(1) 以 Markdown 格式导出获取文档完整内容(异步轮询) (2) 新建文档或智能表格 (3) 用 Markdown 格式覆写文档内容。当用户需要查看文档内容、创建新文档、编辑文档正文时触发此 Skill。

wecomcli-lookup-contact

1354
from WecomTeam/wecom-cli

通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。

wecomcli-get-todo-list

1354
from WecomTeam/wecom-cli

企业微信待办列表查询技能,支持按创建时间和提醒时间过滤,支持分页。在用户说"看看我的待办列表"、"我有哪些待办"、"这周的待办有哪些"、"最近有什么待办"、"查一下我的待办"、"列出所有待办"等需要浏览待办概览的场景时使用。注意:此技能仅返回待办概要信息(不含内容和分派人),如需完整详情请配合 wecomcli-get-todo-detail 使用。

wecomcli-get-todo-detail

1354
from WecomTeam/wecom-cli

企业微信待办详情批量查询技能,根据待办 ID 列表获取完整信息(包含待办内容和分派人)。在用户说"看看这个待办的详情"、"待办内容是什么"、"这个待办分派给谁了"、"告诉我待办的具体信息"等需要查看待办完整内容的场景时使用。通常配合 wecomcli-get-todo-list 使用——先获取待办 ID 列表,再用本技能获取详情。