SuperAPI AI Directory

wecom-meeting-query

General & other

View repository

Updated 10-16 08:49

About this skill

WeCom meeting query skill

wecom_mcp is an MCP tool, and all operations are completed by calling this tool.

⚠️ Prerequisites: Before the first call to wecom_mcp , you must follow the wecom-preflight skill to perform the prerequisite check to ensure the tool has been added to the allowlist.

Overview

wecom-meeting-query provides WeCom meeting query capabilities, including the following functions:

  1. Query meeting list - Query the list of meeting IDs by user and time range (limitation: the current day and 30 days before and after, maximum 100)
  2. Get meeting details - Query complete meeting information by meeting ID

Command invocation method

View the list of available commands: use the wecom_mcp tool to call wecom_mcp list meeting

Execute a specified command: use the wecom_mcp tool to call wecom_mcp call meeting <tool_name> '<json_params>'

Detailed command description

1. Query meeting list (list_user_meetings)

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

Execute command

Use the wecom_mcp tool to call wecom_mcp call meeting list_user_meetings '{"begin_datetime": "2026-03-01 00:00", "end_datetime": "2026-03-31 23:59", "limit": 100}'

Input parameter description

Parameter Type Required Description
begin_datetime string No Query start time, format:YYYY-MM-DD HH:mm
end_datetime string No Query end time, format:YYYY-MM-DD HH:mm
cursor string No Pagination cursor, used to get the next page of data
limit integer No Number of items returned per page, maximum 100

Limitation: The time range only supports the current day and 30 days before and after.

Return parameters

{
  "errcode": 0,
  "errmsg": "ok",
  "next_cursor": "分页游标字符串, 为空表示无更多",
  "meetingid_list": ["会议ID_1", "会议ID_2"]
}
Field Type Description
meetingid_list array Meeting ID list
next_cursor string Next page cursor, empty means no more data

2. Get meeting details (get_meeting_info)

Query the complete details of a meeting by meeting ID.

Execute command

Use the wecom_mcp tool to call wecom_mcp call meeting get_meeting_info '{"meetingid": "<会议id>"}'

Input parameter description

Parameter Type Required Description
meetingid string Yes Meeting ID, obtained through list_user_meetings Get
meeting_code string No Meeting number
sub_meetingid string No Sub-meeting ID

Return parameters

{
  "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:

Field Type Description
creator_userid string Creator userid, only one of this and admin_userid is returned
admin_userid string Meeting admin userid, only one of this and creator_userid is returned
title string Meeting title
meeting_start_datetime string Meeting start time
meeting_duration integer Meeting duration (seconds)
main_department integer Main department to which the creator belongs
status integer Meeting status (1: Not started, 2: In progress, 3: Ended, 4: Canceled, 5: Expired)
meeting_type integer Meeting type (0: One-time meeting, 1: Recurring meeting, 2: WeChat-exclusive meeting, 3: Rooms screen casting meeting, 5: Personal meeting number meeting, 6: Webinar)
meeting_code string Meeting number
meeting_link string Meeting link
attendees.member array Internal participant list
attendees.member[].status integer Attendance status (1: Attended, 2: Not attended)
attendees.tmp_external_user array External participant (temporary ID)
attendees.tmp_external_user[].status integer Attendance status (1: Attended, 2: Not attended)
guests array External guest list, each item contains area, phone_number, guest_name
current_sub_meetingid string Current sub-meeting ID
settings.ring_users object Ringing user list
settings.need_password boolean Whether a password is required (read-only field)
settings.enable_doc_upload_permission boolean Whether members are allowed to upload documents
settings.hosts object Host list
settings.current_hosts object Current host list
settings.co_hosts object Co-host list
reminders object Recurring configuration
has_vote boolean Whether there is a poll (only the meeting creator and host have permission to query)
has_more_sub_meeting integer Whether there are more sub-meeting exceptions (0: No more, 1: More)
remain_sub_meetings integer Remaining number of sub-meeting sessions
sub_meetings array Sub-meeting list
sub_meetings[].status integer Sub-meeting status (0: Default/Exists, 1: Deleted)
sub_meetings[].repeat_id string Recurring meeting segment ID, used to associate the segment to which the sub-meeting belongs
sub_repeat_list array Recurring meeting segment information. After modifying one session of a recurring meeting, different segments may be generated, and each segment has a different recurrence rule

Typical workflows

Workflow 1: Query meeting list

Example: The user says "Help me check what meetings there are this week"

Steps:

  1. Determine the time range: Calculate the start and end time of this week based on the current date.
  2. Query the meeting ID list:

Use the wecom_mcp tool to call wecom_mcp call 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):

Use the wecom_mcp tool to call wecom_mcp call meeting get_meeting_info '{"meetingid": "<会议id1>"}' Use the wecom_mcp tool to call wecom_mcp call 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 handling: If next_cursor is not empty, use the cursor parameter to continue fetching the next page.


Workflow 2: Get meeting details

Example: The user says "Help me check the details of the technical solution review meeting"

Steps:

  1. Locate the meeting: First find the meetingid of the target meeting through meeting list query (match by keyword).
  2. Query details:

Use the wecom_mcp tool to call wecom_mcp call meeting get_meeting_info '{"meetingid": "<target_meetingid>"}'

  1. Display the result:

#Meeting number: <meeting number>

📅 <会议标题>

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

Workflow 3: Find meetings by keyword

Example: The user says "When is the technical review meeting?"

Query strategy:

  1. Determine the query range: By default, query 30 days before and after the current day (interface limit range).
  2. Fetch the meeting list:

Use the wecom_mcp tool to call wecom_mcp call 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, and display the result:

#Meeting number: <meeting number>

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

📅 时间: <开始时间>, 时长 <时长>
📍 地点: <会议地点>
👥 参与者: <参与者姓名列表>
🔗 会议链接: <会议链接>
  1. Handling when not found: Inform the user that no matching meeting was found within 30 days before and after, and ask them to 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
  • Querying details requires two steps: first use list_user_meetings to get the meeting ID list, then use get_meeting_info to get details one by one