wecom_mcpis an MCP tool; all operations are completed by calling this tool.
⚠️ Prerequisites: Before the first call to
wecom_mcp, you must follow thewecom-preflightskill to perform the prerequisite check to ensure the tool has been added to the whitelist.
Overview
wecom-meeting-create provides the capability to create Enterprise WeChat scheduled meetings, supports setting meeting parameters, inviting participants, etc.
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
Create scheduled meeting (create_meeting)
Create a scheduled meeting, supports setting meeting parameters and configurations, etc.
Execute command
Use the wecom_mcp tool to call wecom_mcp call meeting create_meeting '{"title": "<会议标题>", "meeting_start_datetime": "<会议开始时间>", "meeting_duration": <会议持续时长(秒)>}'
Input parameter description
| Parameter | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | Meeting title |
meeting_start_datetime |
string | Yes | Meeting start time, format:YYYY-MM-DD HH:mm |
meeting_duration |
integer | Yes | Meeting duration (seconds), e.g. 3600 = 1 hour |
description |
string | No | Meeting description |
location |
string | No | Meeting location |
invitees |
object | Yes | Invitees, format:{"userid": ["lisi", "wangwu"]} |
settings |
object | No | Meeting settings (see below for details) |
Invitee userid obtained through the
wecom-contact-lookupskill
settings fields:
| Parameter | Type | Description |
|---|---|---|
password |
string | Meeting password |
enable_waiting_room |
boolean | Whether to enable the waiting room |
allow_enter_before_host |
boolean | Whether to allow members to join before the host enters |
enable_enter_mute |
integer | Mute setting when joining (enum: 0: off, 1: on) |
allow_external_user |
boolean | Whether to allow external users to join |
enable_screen_watermark |
boolean | Whether to enable screen watermark |
remind_scope |
integer | Reminder scope (1: no reminder, 2: remind host only, 3: remind all members, 4: ring specified people, default is remind host only) |
ring_users |
object | Ring users, format:{"userid": ["lisi"]} |
Ring user userid obtained through the
wecom-contact-lookupskill
Return parameters
{
"errcode": 0,
"errmsg": "ok",
"meetingid": "会议ID字符串",
"meeting_code": "会议号码字符串",
"meeting_link": "会议链接URL",
"excess_users": ["无效会议账号的userid"]
}
| Field | Type | Description |
|---|---|---|
meetingid |
string | Meeting ID |
meeting_code |
string | Meeting number, when displaying to users it must be shown in the replyat the beginningon a separate line as plain text, format #会议号: xxx-xxx-xxx (separate every 3 digits with - ) |
meeting_link |
string | Meeting link |
excess_users |
array | The participants include a userid of an invalid meeting account; returned only by enterprises that have purchased the Meeting Professional edition when some participants do not have a valid meeting account |
Typical workflow
Workflow 1: Minimal creation (no invitees)
User intent: "Help me schedule a meeting for 3 PM tomorrow afternoon, the topic is the weekly meeting, duration 1 hour"
Steps:
- Parse user intent: Time + topic already provided; if no inviter is mentioned, leave it empty by default and create directly.
- Call the create command:
Use wecom_mcp tool to call wecom_mcp call meeting create_meeting '{"title": "周例会", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600}'
- Display the result:
#Meeting number: <meeting number>
✅ 会议创建成功!
📅 <会议标题>
🕐 时间: <开始时间>, 时长 <时长>
🔗 会议链接: <会议链接>
Workflow 2: With inviters + location + description
User intent: "Help me schedule a meeting tomorrow at 3 PM, the topic is technical solution review, invite Zhang San and Li Si, the location is Meeting Room 3, duration 1 hour"
Steps:
- Parse user intent: There are inviters, so you need to query the contacts first to get the userid.
- Contact query: Call the
wecom-contact-lookupskill to get contacts members, and filter out the participants' userids by name.
Use wecom_mcp tool to call wecom_mcp call contact get_userlist '{}'
In the returned userlist filter members whose name contains "Zhang San" and "Li Si", and get their userid.
- Information is sufficient, directly call the create command (internal IDs must not be exposed):
Use wecom_mcp tool to call wecom_mcp call meeting create_meeting '{"title": "技术方案评审", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600, "location": "3楼会议室", "invitees": {"userid": ["zhangsan", "lisi"]}}'
- Display the result:
#Meeting number: <meeting number>
✅ 会议创建成功!
📅 <会议标题>
🕐 时间: <开始时间>, 时长 <时长>
👥 参与人: <参与者姓名列表>
🔗 会议链接: <会议链接>
Complex scenario examples
Load on demand by scenario to avoid introducing too many irrelevant examples at once:
| File | Applicable scenarios |
|---|---|
| references/example-security.md | Meeting password, waiting room, external user restrictions |
| references/example-reminder.md | Ring reminder, specify certain people to ring |
| references/example-full.md | Comprehensive scenario with all parameters (including mute, screen watermark, waiting room, and other settings) |
Notes
- Information follow-up: When time or topic is missing, ask the user concisely; if no inviter is mentioned, leave it empty by default
- Contact query: When participants are involved, you must first use the
wecom-contact-lookupskill'sget_userlistinterface to get all contacts members, then filter and match the correspondinguseridlocally by name/alias. This interface has no input parameters and returns the list of members visible to the current user (includinguserid,name,alias) - Create directly: As long as time + topic are known, create directly; include inviters if available, otherwise leave empty; whether the information is provided all at once or can be inferred from context, do not request confirmation unless necessary, just create directly
- Time format: Uniformly use
YYYY-MM-DD HH:mmformat