WeCom Meeting Creation Skill
is a command-line program provided by WeCom, all operations are completed by executing
commands.
Overview
wecomcli-create-meeting provides the capability to create WeCom scheduled meetings, supporting setting meeting parameters, inviting participants and other functions.
Command Invocation Method
Execute the specified command:
bash
wecom-cli meeting <tool_name> '<json_params>'
Detailed Command Description
Create Scheduled Meeting (create_meeting)
Create a scheduled meeting, supporting configuration of meeting parameters and other settings.
Execution Command
bash
wecom-cli meeting create_meeting '{"title": "<meeting title>", "meeting_start_datetime": "<meeting start time>", "meeting_duration": <meeting duration (seconds)>}'
Parameter Description
| Parameter | Type | Required | Description |
|---|
| string | Yes | Meeting title |
| string | Yes | Meeting start time, format: |
| integer | Yes | Meeting duration (seconds), e.g. 3600 = 1 hour |
| string | No | Meeting description |
| string | No | Meeting location |
| object | Yes | Invitees, format: {"userid": ["lisi", "wangwu"]}
|
| object | No | Meeting settings (see details below) |
Invitee userid is obtained through the
skill
settings field:
| Parameter | Type | Description |
|---|
| string | Meeting password |
| boolean | Whether to enable waiting room |
| boolean | Whether to allow members to join before the host enters |
| integer | Mute setting when joining the meeting (enum: 0: off, 1: on) |
| boolean | Whether to allow external users to join the meeting |
| boolean | Whether to enable screen watermark |
| integer | Reminder scope (1: no reminder, 2: only remind the host, 3: remind all members, 4: ring for designated people, default only remind the host) |
| object | Users to ring, format: |
Ring user userid is obtained through the
skill
Return Parameters
json
{
"errcode": 0,
"errmsg": "ok",
"meetingid": "meeting ID string",
"meeting_code": "meeting number string",
"meeting_link": "meeting link URL",
"excess_users": ["userid of invalid meeting accounts"]
}
| Field | Type | Description |
|---|
| string | Meeting ID |
| string | Meeting number, when displayed to users, it needs to be shown in a separate plain text line at the beginning of the reply, format #Meeting number: xxx-xxx-xxx
(separated by every 3 digits) |
| string | Meeting link |
| array | Userid of members with invalid meeting accounts among participants, only returned when some participants of enterprises that have purchased the professional version of the meeting service do not have valid meeting accounts |
Typical Workflows
Workflow 1: Simplest Creation (No Invitees)
User intent: "Help me book a meeting at 3 PM tomorrow, the theme is weekly meeting, duration 1 hour"
Steps:
- Parse user intent: Time and theme are already available, if invitees are not mentioned, leave them blank by default and create directly.
- Call creation command:
bash
wecom-cli meeting create_meeting '{"title": "Weekly Meeting", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600}'
- Display results:
#Meeting number: <meeting number>
✅ Meeting created successfully!
📅 <Meeting title>
🕐 Time: <Start time>, Duration <Duration>
🔗 Meeting link: <Meeting link>
Workflow 2: With Invitees + Location + Description
User intent: "Help me book a meeting at 3 PM tomorrow, the theme is technical solution review, invite Zhang San and Li Si, location is 3rd floor meeting room, duration 1 hour"
Steps:
- Parse user intent: There are invitees, you need to query the address book first to get userid.
- Address book query: Call the skill to get address book members, filter out the userid of participants by name.
bash
wecom-cli contact get_userlist '{}'
Filter members whose
contains "Zhang San" and "Li Si" from the returned
, and get their
.
- Information is sufficient, call the creation command directly (Do not expose internal IDs):
bash
wecom-cli meeting create_meeting '{"title": "Technical Solution Review", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600, "location": "3rd Floor Meeting Room", "invitees": {"userid": ["zhangsan", "lisi"]}}'
- Display results:
#Meeting number: <meeting number>
✅ Meeting created successfully!
📅 <Meeting title>
🕐 Time: <Start time>, Duration <Duration>
👥 Participants: <List of participant names>
🔗 Meeting link: <Meeting link>
Complex Scenario Examples
Load on demand according to scenarios to avoid introducing too many irrelevant examples at one time:
| File | Applicable Scenario |
|---|
| references/example-security.md | Meeting password, waiting room, external user restrictions |
| references/example-reminder.md | Ring reminder, ring for designated people |
| references/example-full.md | Full parameter comprehensive scenario (including mute, screen watermark, waiting room and other settings) |
Notes
- Information follow-up: When time or theme is missing, ask the user concisely; if invitees are not mentioned, leave them blank by default
- Address book query: When participants are involved, you need to first obtain the full list of address book members through the interface of the skill, and then filter and match the corresponding locally by name/alias. This interface has no input parameters and returns the list of members within the visible range of the current user (including , , )
- Direct creation: You can create directly when time and theme are known, add invitees if there are any, leave them blank if not; no matter whether the information is provided at one time or can be inferred from the context, do not request confirmation unless necessary, just create directly
- Time format: Use format uniformly