wecomcli-contact
使用 wecom-cli 按姓名、拼音、英文名或别名搜索企业微信通讯录中的人员,并查询匹配人员的 userid、部门和职务。适用于查找联系人、区分同名人员、获取用户 userid,以及列出全部同名人员。
企业微信日程管理。当用户需要预约日程、预订会议室、查看/更新/取消日程或查忙闲时触发。本技能负责『日程』——即不含在线会议链接的安排(也涵盖纯线下面对面碰头);若用户要的是『在线会议』(含会议号/入会链接、可远程或视频参会),改用 wecomcli-meeting 技能。用户仅说'开会/约个会/某会'等、未明确要创建的是日程还是在线会议时,必须先读取本技能并按其中的消歧流程向用户追问确认后再处理,不可臆断直接创建。
$ npx -y skills add wecomteam/wecom-cli --skill wecomcli-calendar --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/wecomcli-calendarContext preview
The summary Claude sees to decide when to auto-load this skill.
企业微信日程管理。当用户需要预约日程、预订会议室、查看/更新/取消日程或查忙闲时触发。本技能负责『日程』——即不含在线会议链接的安排(也涵盖纯线下面对面碰头);若用户要的是『在线会议』(含会议号/入会链接、可远程或视频参会),改用 wecomcli-meeting 技能。用户仅说'开会/约个会/某会'等、未明确要创建的是日程还是在线会议时,必须先读取本技能并按其中的消歧流程向用户追问确认后再处理,不可臆断直接创建。
name: wecomcli-calendar
description: "企业微信日程管理。当用户需要预约日程、预订会议室、查看/更新/取消日程或查忙闲时触发。本技能负责『日程』——即不含在线会议链接的安排(也涵盖纯线下面对面碰头);若用户要的是『在线会议』(含会议号/入会链接、可远程或视频参会),改用 wecomcli-meeting 技能。用户仅说'开会/约个会/某会'等、未明确要创建的是日程还是在线会议时,必须先读取本技能并按其中的消歧流程向用户追问确认后再处理,不可臆断直接创建。"
metadata:
requires:
bins: ["wecom-cli"]> 执行任何 `wecom-cli` 命令前,必须先读取并完成 `wecomcli-shared` 技能的公共前置检查。
| 用户意图 | 参考文档 | |---------|---------| | 预约日程、安排纯线下面对面会议(不含在线会议链接)、创建日程 | [calendar-create](references/calendar-create.md) | | 看日程、今天有什么安排、查本周日程 | [calendar-agenda](references/calendar-agenda.md) | | 找某个日程、项目评审是什么时候 | [calendar-search](references/calendar-search.md) | | 查日程详情、看周期规则、看会议链接 | [calendar-agenda](references/calendar-agenda.md) | | 取消日程、不开了 | [calendar-cancel](references/calendar-cancel.md) | | 修改日程、更新日程、改时间、加人/移除人、换会议室 | [calendar-update](references/calendar-update.md) | | 查忙闲、某人什么时候有空、约多人共同空闲 | [calendar-freebusy](references/calendar-freebusy.md) | | 订会议室、查会议室空不空、查办公楼、约会议室 | [calendar-meeting-room](references/calendar-meeting-room.md) |
> **浏览 vs 搜索的选择原则**:用户提到**日程主题关键词**时走搜索;**只给了时间/日期而无日程主题关键词时,必须走列表浏览(`list`)**。需要周期规则、会议链接等详情时再读取单条日程详情补充。
本技能(wecomcli-calendar)只负责**日程**——即非会议的日程安排,以及不含在线会议链接的纯线下面对面会议。**只要涉及在线会议链接(含远程/视频参会)的会议,一律归 wecomcli-meeting 技能**,不在本技能创建。
| 用户意图 | 归属技能 | |---------|---------| | 预约日程、安排纯线下面对面会议(不含在线会议链接)、订会议室、查/改/取消日程、查忙闲 | **本技能 wecomcli-calendar** | | 创建含在线会议链接的会议、需要会议号或入会链接的会、需要远程/视频参会的会 | **wecomcli-meeting 技能** |
**消歧规则(仅创建场景)**:用户仅说"会议/会/开个会/约个会/安排个会/xx会/xx会议"等而未明确是日程还是会议时,**必须先用文字追问**,再路由到对应技能,禁止默认直接创建日程。此文字消歧仅用于「创建」;查询场景严格禁止追问——明确指向在线会议时只查会议,明确是日程/安排时只查日程,模糊表述("会 / xx会 / 最近有什么会"等)则日程和会议都查(见下文「查询消歧」)。
> **问题与选项固定 [CRITICAL]**:消歧确认时,问题与可选项都必须原文照用、严格禁止修改任何内容——问题固定为 `"需要创建日程还是会议?"`,可选项固定为 `日程` / `会议`;不得改写问题措辞、增减或改写选项、翻译,或自行设计其他表述(如"在线会议 / 线上会议 / 视频会议 / 线下会议"等)。
用文字向用户提问:`需要创建日程还是会议?(请回复:日程 / 会议)`
"改约 / 改时间 / 挪到 / 顺延 / 重新约"等改期意图(即使用户说"取消……再约到……",带"取消"也算改期),禁止机械拆成 `cancel` + `create`:
1. **先定位再判定会议关联**:`search` / `list` 返回均含 `meeting` 字段,定位到目标日程后**直接检查 `meeting.meeting_code`**——非空为「含在线会议链接的会议形态日程」,为空为纯日程;无需为此再补一次读取日程详情(仅当还需 `repeat_rule` 等字段时才补)。 2. **纯日程** → 用本技能路由表中更新日程意图改时间,禁止 cancel + create。 3. **含会议链接** → 改用 `读取 wecomcli-meeting 技能`,把 `meeting.meeting_id` 传入 `meeting update` 改时间(保留会议链接与参会人),无需重新 search 定位。
> **根因**:`create` 只能建纯日程、重建不出会议链接(能拆不能合),cancel + create 会让会议链接永久丢失,故改约一律走 update。
读取 [calendar-create](references/calendar-create.md),按其中"预约日程工作流"执行(信息补全 → 参与人解析 → 时间协商/忙闲检查 → 执行创建 → 结果反馈)。
| 场景 | 参考文档 | |------|---------| | 泛泛查询("今天有什么安排") | [calendar-agenda](references/calendar-agenda.md) | | 有关键词("项目评审是什么时候") | [calendar-search](references/calendar-search.md) | | 需要详情(只拿到 `schedule_id` 时补齐字段) | [calendar-agenda](references/calendar-agenda.md) |
> **浏览 vs 搜索**:有**日程主题关键词** → 搜索(不追问时间);**只给时间/日期而无主题关键词 → 列表浏览(`list`)**,禁止把日期当 `keywords` 喂给 `search`。列表浏览已返回 `repeat_rule`,无需额外读取单条详情判断是否周期日程。
> **查询消歧(模糊查询时日程 + 会议都查)[REQUIRED]**:查询场景严格禁止用文字追问"是日程还是会议"——日程/会议消歧追问仅用于创建,查询时一律按以下规则直接处理、不追问。**判定分两个独立维度,不要混为一谈**: > > **维度一:查哪一边(日程 / 会议 / 两边都查)** > - **明确是在线会议** → 用户明确提到"在线会议 / 视频会议 / 入会链接 / 会议号 / 腾讯会议 / 远程参会"等在线会议专属特征时,改用 `读取 wecomcli-meeting 技能` 只查会议。 > - **明确是日程 / 安排** → 用户说的明显是日程类内容(如"日程 / 安排 / 我的安排 / 日历 / 今天有什么安排",且不带在线会议特征)时,只查日程。 > - **模糊表述无法判定**("会 / xx会 / xx会议 / 开会 / 最近有什么会 / 有哪些会 / 找下 xx会议"等,既可能是日程也可能是会议)→ **日程和会议都要查**:既查日程,又 `读取 wecomcli-meeting 技能` 查会议。 > > **维度二:每一边用 `search` 还是 `list`(与维度一独立,逐边各自判断)** > - **有主题/名称关键词**(如"找下 xx会议""项目评审是什么时候")→ 该边用 `search`(把关键词传入 `keywords`)。 > - **只有时间/日期或泛浏览无关键词**(如"最近有什么会""今天有什么安排")→ 该边用 `list`,禁止把日期当`keywords` 喂给 `search`。 > - 即使"两边都查",也按本维度对每一边各自选择:带关键词时两边都用 `search`,纯时间/泛浏览时两边都用 `list`。 > > **合并展示**:两边都查时,合并结果后统一展示——按是否含在线会议链接分成「(会议)」(来自会议侧、或日程中 `meeting.meeting_code` 非空者)和「(日程)」(`meeting_code` 为空的纯日程)两部分,同一场会议在两边都出现时按"主题 + 时间"去重只保留一条,末尾汇总"共 N 场,其中会议 X 场、日程 Y 场"。 > > - 本消歧仅针对查询;创建场景仍按上文"日程 vs 会议"用文字追问。
先定位日程(有**日程主题关键词**走搜索;只给时间/日期而无主题关键词走列表浏览 `list`,禁止把日期当 `keywords` 喂给 `search`),再判断是否周期日程(可直接读取列表返回的 `repeat_rule`,无需额外读取单条详情)——**周期日程不支持取消**,告知用户并引导其在企业微信客户端操作(见「已知限制」)。普通日程**不预先按"是否本人创建"拦截取消**,直接执行取消并根据工具返回结果判断能否取消(成功返回 `{}`,无权限则返回错误,此时告知用户并建议联系创建人)。**若用户意图实为"改约 / 挪到 / 顺延"(即使带"取消"字样),按上文「改约 / 重建日程前必须先识别会议关联」走更新流程。** 完整流程见 [calendar-cancel](references/calendar-cancel.md)。
💬 扫码加入企业微信交流群: 企业微信命令行工具,覆盖消息、邮件、文档、待办、日程、会议、微盘、通讯录等业务功能。支持机器人主动通知、新建与读取文档、文档搜索、新建与管理日程、预约与获取会议信息、新建与跟进待办、上传与获取微盘文件、发送与获取邮件、获取通讯录成员信息,以提升企业办公效率
Repo: wecomteam/wecom-cli
使用 wecom-cli 按姓名、拼音、英文名或别名搜索企业微信通讯录中的人员,并查询匹配人员的 userid、部门和职务。适用于查找联系人、区分同名人员、获取用户 userid,以及列出全部同名人员。
企业微信微盘(Disk / 网盘)文件操作技能。承接"微盘 / 网盘"里的文件列出、搜索、读取元信息、上传、下载、重命名、新建文件夹操作。用户明确提到"微盘"/"网盘"/"共享空间"时必须先读取本技能获取完整指引,不得凭记忆处理。用户说"上传到微盘"、"帮我在微盘里搜一下 xxx"、"微盘那个 PPT…
企业微信文档公共管理:搜索文档(最近浏览/创建)、文档改名、添加文档成员权限、设置文档加入规则。适用于所有文档类型(doc文档 / 在线表格 / 智能表格 / 智能文档)。新建或导入doc文档请使用 wecomcli-doc;新建或导入在线表格请使用 wecomcli-sheet;智能表格内容 CRUD 请使用…
企业微信在线 doc 文档技能。能够新建 doc、导入本地 .doc/.docx/.txt 为 doc、读取 doc 内容、向 doc 追加或覆盖写入。仅当用户明确出现「doc」「docx」「word」「在线文档」「office 文档」等强类型词,或提供…
企业微信邮件:发送/回复/转发邮件、搜索邮件列表、获取邮件详情(正文、附件、内嵌图片解析),支持通过邮件发送日程邀约和会议预定。当用户涉及内部邮件收发、邮件查询、邮件管理等需求时使用。注意:日程和会议有单独的技能,仅当用户明确提到"邮箱"或"邮件"时(如"通过邮箱发送会议邀请"、"发封会议邮件"),才使用本技能处理会议…
企业微信媒体文件上传/下载技能。承接基于 media_id 下载媒体文件到本地,以及上传本地文件获取 media_id 两类操作。当其他技能(微盘、邮件等)返回了 media_id 需要落地为本地文件,或已有本地文件需要转换为 media_id…