wecomcli-get-meeting

Original🇨🇳 Chinese
Translated

WeCom meeting query skill, which supports querying meeting lists, obtaining meeting details, and searching for meetings by keywords. It is triggered when users need to "view meetings", "query meeting list", "view meeting details", "when is the meeting", "what meetings are there", "search for meetings".

138installs
Added on

NPX Install

npx skill4agent add wecomteam/wecom-cli wecomcli-get-meeting

Tags

Translated version includes tags in frontmatter

SKILL.md Content (Chinese)

View Translation Comparison →

WeCom Meeting Query Skill

wecom-cli
is a command line program provided by WeCom, all operations are completed by executing the
wecom-cli
command.

Overview

wecomcli-get-meeting provides WeCom meeting query capabilities, including the following functions:
  1. Query Meeting List - Query the list of meeting IDs by user and time range (Limit: current day and 30 days before and after, maximum 100 entries)
  2. Get Meeting Details - Query complete meeting information via meeting ID

Command Invocation Method

Execute the specified command:
bash
wecom-cli meeting <tool_name> '<json_params>'

Detailed Command Description

1. Query Meeting List (list_user_meetings)

Query the list of meeting IDs for the specified user within the time range.

Execution Command

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

Parameter Description

ParameterTypeRequiredDescription
begin_datetime
stringNoQuery start time, format:
YYYY-MM-DD HH:mm
end_datetime
stringNoQuery end time, format:
YYYY-MM-DD HH:mm
cursor
stringNoPagination cursor, used to get the next page of data
limit
integerNoNumber of entries returned per page, maximum 100
Limit: The time range only supports the current day and 30 days before and after.

Return Parameters

json
{
  "errcode": 0,
  "errmsg": "ok",
  "next_cursor": "分页游标字符串, 为空表示无更多",
  "meetingid_list": ["会议ID_1", "会议ID_2"]
}
FieldTypeDescription
meetingid_list
arrayMeeting ID list
next_cursor
stringNext page cursor, empty means no more data

2. Get Meeting Details (get_meeting_info)

Query the complete details of a meeting via meeting ID.

Execution Command

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

Parameter Description

ParameterTypeRequiredDescription
meetingid
stringYesMeeting ID, obtained via
list_user_meetings
meeting_code
stringNoMeeting number
sub_meetingid
stringNoSub-meeting ID

Return Parameters

json
{
  "errcode": 0,
  "errmsg": "ok",
  "creator_userid": "创建者userid",
  "admin_userid": "会议管理userid (与 creator_userid 有且仅返回一个)",
  "title": "会议标题",
  "meeting_start_datetime": "YYYY-MM-DD HH:mm",
  "meeting_duration": 会议时长秒数,
  "description": "会议描述文本",
  "location": "会议地点文本",
  "main_department": 创建者主部门ID,
  "status": 会议状态枚举值,
  "meeting_type": 会议类型枚举值,
  "attendees": {
    "member": [
      {
        "userid": "内部成员userid",
        "status": 与会状态枚举值,
        "first_join_datetime": "YYYY-MM-DD HH:mm",
        "last_quit_datetime": "YYYY-MM-DD HH:mm",
        "total_join_count": 加入次数,
        "cumulative_time": 累计在会时长秒数
      }
    ],
    "tmp_external_user": [
      {
        "tmp_external_userid": "外部临时用户ID",
        "status": 与会状态枚举值,
        "first_join_datetime": "YYYY-MM-DD HH:mm",
        "last_quit_datetime": "YYYY-MM-DD HH:mm",
        "total_join_count": 加入次数,
        "cumulative_time": 累计在会时长秒数
      }
    ]
  },
  "settings": {
    "remind_scope": 提醒范围枚举值,
    "need_password": 是否需要密码布尔值,
    "password": "会议密码",
    "enable_waiting_room": 是否启用等候室布尔值,
    "allow_enter_before_host": 是否允许提前入会布尔值,
    "enable_enter_mute": 入会静音枚举值,
    "allow_unmute_self": 是否允许自我解除静音布尔值,
    "allow_external_user": 是否允许外部用户布尔值,
    "enable_screen_watermark": 是否开启水印布尔值,
    "watermark_type": 水印类型枚举值,
    "auto_record_type": "录制类型枚举字符串",
    "attendee_join_auto_record": 参会者加入自动录制布尔值,
    "enable_host_pause_auto_record": 主持人可暂停录制布尔值,
    "enable_doc_upload_permission": 允许上传文档布尔值,
    "enable_enroll": 是否开启报名布尔值,
    "enable_host_key": 是否启用主持人密钥布尔值,
    "host_key": "主持人密钥字符串",
    "hosts": {"userid": ["主持人userid列表"]},
    "current_hosts": {"userid": ["当前主持人userid列表"]},
    "co_hosts": {"userid": ["联席主持人userid列表"]},
    "ring_users": {"userid": ["响铃用户userid列表"]}
  },
  "meeting_code": "会议号码字符串",
  "meeting_link": "会议链接URL",
  "has_vote": 是否有投票布尔值,
  "has_more_sub_meeting": 是否有更多子会议枚举值,
  "remain_sub_meetings": 剩余子会议场数,
  "current_sub_meetingid": "当前子会议ID",
  "guests": [
    {
      "area": "国际区号",
      "phone_number": "手机号字符串",
      "guest_name": "嘉宾姓名"
    }
  ],
  "reminders": {
    "is_repeat": 是否周期性枚举值,
    "repeat_type": 重复类型枚举值,
    "repeat_until_type": 结束类型枚举值,
    "repeat_until_count": 限定次数,
    "repeat_until_datetime": "YYYY-MM-DD HH:mm",
    "repeat_interval": 重复间隔数值,
    "is_custom_repeat": 是否自定义重复枚举值,
    "repeat_day_of_week": [星期几数组],
    "repeat_day_of_month": [日期数组],
    "remind_before": [提醒秒数数组]
  },
  "sub_meetings": [
    {
      "sub_meetingid": "子会议ID",
      "status": 子会议状态枚举值,
      "start_datetime": "YYYY-MM-DD HH:mm",
      "end_datetime": "YYYY-MM-DD HH:mm",
      "title": "子会议标题",
      "repeat_id": "周期性会议分段ID"
    }
  ],
  "sub_repeat_list": [
    {
      "repeat_id": "周期性会议分段ID",
      "repeat_type": 重复类型枚举值,
      "repeat_until_type": 结束类型枚举值,
      "repeat_until_count": 限定次数,
      "repeat_until_datetime": "YYYY-MM-DD HH:mm",
      "repeat_interval": 重复间隔数值,
      "is_custom_repeat": 是否自定义重复枚举值,
      "repeat_day_of_week": [星期几数组],
      "repeat_day_of_month": [日期数组]
    }
  ]
}
Key Return Fields:
FieldTypeDescription
creator_userid
stringCreator userid, only one of
creator_userid
and
admin_userid
will be returned
admin_userid
stringMeeting admin userid, only one of
creator_userid
and
admin_userid
will be returned
title
stringMeeting title
meeting_start_datetime
stringMeeting start time
meeting_duration
integerMeeting duration (seconds)
main_department
integerMain department of the creator
status
integerMeeting status (1: To be started, 2: In progress, 3: Ended, 4: Cancelled, 5: Expired)
meeting_type
integerMeeting type (0: One-time meeting, 1: Recurring meeting, 2: WeChat exclusive meeting, 3: Rooms screencast meeting, 5: Personal meeting number meeting, 6: Webinar)
meeting_code
stringMeeting number
meeting_link
stringMeeting link
attendees.member
arrayList of internal participants
attendees.member[].status
integerParticipation status (1: Participated, 2: Not participated)
attendees.tmp_external_user
arrayExternal participants (temporary ID)
attendees.tmp_external_user[].status
integerParticipation status (1: Participated, 2: Not participated)
guests
arrayList of external guests, each item contains
area
,
phone_number
,
guest_name
current_sub_meetingid
stringCurrent sub-meeting ID
settings.ring_users
objectList of ringing users
settings.need_password
booleanWhether password is required (read-only field)
settings.enable_doc_upload_permission
booleanWhether members are allowed to upload documents
settings.hosts
objectList of hosts
settings.current_hosts
objectList of current hosts
settings.co_hosts
objectList of co-hosts
reminders
objectRecurring configuration
has_vote
booleanWhether there is a vote (only the meeting creator and host have permission to query)
has_more_sub_meeting
integerWhether there are more sub-meeting exceptions (0: No more, 1: More available)
remain_sub_meetings
integerRemaining number of sub-meetings
sub_meetings
arrayList of sub-meetings
sub_meetings[].status
integerSub-meeting status (0: Default/exists, 1: Deleted)
sub_meetings[].repeat_id
stringRecurring meeting segment ID, used to associate the segment to which the sub-meeting belongs
sub_repeat_list
arrayRecurring meeting segment information, modifying a single session of a recurring meeting may generate different segments, each with different recurrence rules

Typical Workflows

Workflow 1: Query Meeting List

Example: User says "帮我查一下本周有哪些会议"
Steps:
  1. Determine time range: Calculate the start and end time of this week based on the current date.
  2. Query meeting ID list:
bash
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-03-16 00:00", "end_datetime": "2026-03-22 23:59", "limit": 100}'
  1. Query meeting details one by one (for each returned meetingid):
bash
wecom-cli meeting get_meeting_info '{"meetingid": "<会议id1>"}'
bash
wecom-cli meeting get_meeting_info '{"meetingid": "<会议id2>"}'
  1. Summarize and display:
📋 本周会议列表 (共 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
   👥 全组成员
Pagination processing: If
next_cursor
is not empty, use the
cursor
parameter to continue pulling the next page.

Workflow 2: Get Meeting Details

Example: User says "帮我看下技术方案评审会议的详情"
Steps:
  1. Locate the meeting: First find the meetingid of the target meeting by querying the meeting list (matched by keywords).
  2. Query details:
bash
wecom-cli meeting get_meeting_info '{"meetingid": "<target_meetingid>"}'
  1. Display results:
#Meeting No.: <会议号>
📅 <会议标题>

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

Workflow 3: Search for Meetings by Keywords

Example: User says "技术评审会议是什么时候?"
Query Strategy:
  1. Determine query scope: By default, query 30 days before and after the current day (interface limit range).
  2. Pull meeting list:
bash
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-02-15 00:00", "end_datetime": "2026-04-16 23:59", "limit": 100}'
  1. Query details one by one and match title keywords.
  2. Stop querying after a match is found, display the results:
#Meeting No.: <会议号>
✅ 找到会议: "<会议标题>"

📅 时间: <开始时间>, 时长 <时长>
📍 地点: <会议地点>
👥 参与者: <参与者姓名列表>
🔗 会议链接: <会议链接>
  1. Processing when not found: Inform the user that no matching meeting was found within the range of 30 days before and after, please confirm the meeting name.

Notes

  • Time format: Uniformly use the
    YYYY-MM-DD HH:mm
    format
  • Meeting list time range limit: Only supports querying meetings within the current day and 30 days before and after
  • Two steps required to query details: First obtain the meeting ID list through
    list_user_meetings
    , then obtain details one by one through
    get_meeting_info