wecomcli-meeting

wecomcli-meeting

熱門

企業微信會議技能,支援建立預約會議、查詢會議列表、取得會議詳情、取消會議、更新會議成員。當使用者需要「建立會議」、「預約會議」、「約會議」、「安排會議」、「檢視會議」、「查詢會議列表」、「會議詳情」、「什麼時候開會」、「有哪些會議」、「尋找會議」、「取消會議」、「刪除會議」、「修改會議成員」、「新增會議與會者」、「移除會議成員」時觸發。

2403星標
166分支
更新於 2026/7/2
SKILL.md
唯讀
名稱
wecomcli-meeting
描述

企業微信會議技能,支援建立預約會議、查詢會議列表、取得會議詳情、取消會議、更新會議成員。當使用者需要「建立會議」、「預約會議」、「約會議」、「安排會議」、「檢視會議」、「查詢會議列表」、「會議詳情」、「什麼時候開會」、「有哪些會議」、「尋找會議」、「取消會議」、「刪除會議」、「修改會議成員」、「新增會議與會者」、「移除會議成員」時觸發。

企業微信會議技能

wecom-cli 是企業微信提供的命令列程式,所有操作皆透過執行 wecom-cli 命令完成。

概述

wecomcli-meeting 提供企業微信會議的完整管理功能,包含以下功能:

  1. 建立預約會議 - 建立會議,支援設定會議參數、邀請與會者等
  2. 查詢會議列表 - 按使用者與時間範圍查詢會議 ID 列表 (限制: 當日及前後 30 天,上限 100 個)
  3. 取得會議詳情 - 透過會議 ID 查詢完整會議資訊
  4. 取消會議 - 取消指定的預約會議
  5. 更新會議受邀成員 - 修改會議的與會者列表

命令呼叫方式

執行指定命令:

wecom-cli meeting <tool_name> '<json_params>'

命令詳細說明

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小時"

步驟:

  1. 解析使用者意圖: 時間 + 主題已有,未提及邀請人則預設留空,直接建立。
  2. 呼叫建立命令:
wecom-cli meeting create_meeting '{"title": "週例會", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600}'
  1. 展示結果:

#會議號: <會議號>

✅ 會議建立成功!

📅 <會議標題>
🕐 時間: <開始時間>,時長 <時長>
🔗 會議連結: <會議連結>

工作流程 2: 帶邀請人 + 地點 + 描述建立

使用者意圖: "幫我約一個明天下午3點的會議,主題是技術方案評審,邀請張三和李四,地點在3樓會議室,時間1小時"

步驟:

  1. 解析使用者意圖: 有邀請人,需先查詢通訊錄取得 userid。
  2. 通訊錄查詢: 呼叫 wecomcli-contact 技能取得通訊錄成員,按姓名篩選出與會者的 userid。
wecom-cli contact get_userlist '{}'

在回傳的 userlist 中篩選 name 包含 "張三" 和 "李四" 的成員,取得其 userid

  1. 資訊已充分,直接呼叫建立命令 (禁止暴露內部 ID):
wecom-cli meeting create_meeting '{"title": "技術方案評審", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600, "location": "3樓會議室", "invitees": {"userid": ["zhangsan", "lisi"]}}'
  1. 展示結果:

#會議號: <會議號>

✅ 會議建立成功!

📅 <會議標題>
🕐 時間: <開始時間>,時長 <時長>
👥 與會者: <與會者姓名列表>
🔗 會議連結: <會議連結>

工作流程 3: 查詢會議列表

範例: 使用者說 "幫我查一下本週有哪些會議"

步驟:

  1. 確定時間範圍: 根據目前日期計算本週的起止時間。
  2. 查詢會議 ID 列表:
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-03-16 00:00", "end_datetime": "2026-03-22 23:59", "limit": 100}'
  1. 逐一查詢會議詳情 (對回傳的每個 meetingid):
wecom-cli meeting get_meeting_info '{"meetingid": "<會議id1>"}'
wecom-cli meeting get_meeting_info '{"meetingid": "<會議id2>"}'
  1. 彙整展示:
📋 本週會議列表 (共 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. 查詢詳情:
wecom-cli meeting get_meeting_info '{"meetingid": "<target_meetingid>"}'
  1. 展示結果:

#會議號: <會議號>

📅 <會議標題>

🕐 時間: <開始時間>,時長 <時長>
📍 地點: <會議地點>
📝 描述: <會議描述>
👤 建立者: <建立者姓名>
👥 與會者: <與會者姓名列表>
🔗 會議連結: <會議連結>

工作流程 5: 根據關鍵字搜尋會議

範例: 使用者說 "技術評審會議是什麼時候?"

查詢策略:

  1. 確定查詢範圍: 預設查當日前後 30 天 (介面限制範圍)。
  2. 拉取會議列表:
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-02-15 00:00", "end_datetime": "2026-04-16 23:59", "limit": 100}'
  1. 逐一查詢詳情並比對標題關鍵字
  2. 找到比對結果後停止查詢,展示結果:

#會議號: <會議號>

✅ 找到會議: "<會議標題>"

📅 時間: <開始時間>,時長 <時長>
📍 地點: <會議地點>
👥 與會者: <與會者姓名列表>
🔗 會議連結: <會議連結>
  1. 未找到處理: 告知使用者在前後 30 天範圍內未找到比對會議,請確認會議名稱。

工作流程 6: 取消會議

範例: 使用者說 "幫我取消明天的技術方案評審會議"

步驟:

  1. 定位會議: 透過 list_user_meetings + get_meeting_info 查詢會議列表 + 關鍵字比對找到目標會議。
  2. 直接執行取消:
wecom-cli meeting cancel_meeting '{"meetingid": "<target_meetingid>"}'
  1. 展示結果:
✅ 會議已取消: 技術方案評審

工作流程 7: 更新會議成員

範例: 使用者說 "把王五加到技術方案評審會議裡"

步驟:

  1. 定位會議: 透過 list_user_meetings + get_meeting_info 查詢會議列表 + 比對找到目標會議。
  2. 取得目前受邀成員: set_invite_meeting_members 為全量覆蓋,必須先透過 get_meeting_info 取得會議詳情,取得現有成員後再合併。
  3. 通訊錄查詢: 呼叫 wecomcli-contact 技能取得通訊錄成員,按姓名篩選出王五的 userid。
wecom-cli contact get_userlist '{}'

在回傳的 userlist 中篩選 name 包含 "王五" 的成員,取得其 userid

  1. 合併成員列表: 將現有成員 + 新增成員合併 (全量覆蓋)。
  2. 執行更新:
wecom-cli meeting set_invite_meeting_members '{"meetingid": "<target_meetingid>", "invitees": [{"userid": "zhangsan"}, {"userid": "lisi"}, {"userid": "wangwu"}]}'
  1. 展示結果:
✅ 會議成員已更新: 技術方案評審
👥 目前成員: 張三,李四,王五

複雜場景範例

按場景按需載入,避免一次性引入過多無關範例:

檔案 適用場景
references/response-get-meeting-info.md 取得會議詳情完整回傳參數結構與欄位說明
references/example-security.md 會議密碼,等候室,外部使用者限制
references/example-reminder.md 響鈴提醒,指定部分人響鈴
references/example-full.md 全參數綜合場景 (含靜音,螢幕浮水印,等候室等設定)

注意事項

  • 資訊追問: 缺少時間或主題時,簡潔追問使用者;未提及邀請人則預設留空
  • 通訊錄查詢: 涉及與會人時,需先透過 wecomcli-contact 技能的 get_userlist 介面取得全量通訊錄成員,再按姓名/別名本地篩選比對出對應的 userid。該介面無輸入參數,回傳目前使用者可見範圍內的成員列表 (含 useridnamealias)
  • 直接建立: 時間 + 主題已知即可直接建立,邀請人有則帶上,無則留空;無論資訊是一次性提供或可由前後文推斷,非必要皆不請求確認,直接建立即可
  • 時間格式: 統一使用 YYYY-MM-DD HH:mm 格式
  • 會議列表時間範圍限制: 僅支援查詢當日及前後 30 天內的會議
  • 查詢詳情需兩步: 先透過 list_user_meetings 取得會議 ID 列表,再透過 get_meeting_info 逐一取得詳情
  • 定位會議: 取消會議和更新成員等管理操作需先透過查詢定位到目標會議的 meetingid
  • 成員更新為全量覆蓋: set_invite_meeting_members 傳入的列表將替換現有成員列表,需先取得目前成員再合併
  • 與會人僅支援企業內成員,不支援外部人員