title: "Meeting skill" description: "Create, query, cancel, and manage attendees for WeCom scheduled meetings through wecom-cli."
The wecomcli-meeting skill gives the AI the ability to manage your WeCom video meetings. It can create scheduled meetings, query what meetings are coming up, retrieve full meeting details, cancel meetings, and update the invited attendee list.
Available operations
create_meeting
Creates a new scheduled meeting.
wecom-cli meeting create_meeting '{"title": "Weekly sync", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600}'
Key parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Meeting title. |
meeting_start_datetime | string | Yes | Start time in YYYY-MM-DD HH:mm format. |
meeting_duration | integer | Yes | Duration in seconds. For example, 3600 = 1 hour. |
description | string | No | Meeting description. |
location | string | No | Meeting location. |
invitees | object | No | Invited members: {"userid": ["lisi", "wangwu"]}. Obtained via wecomcli-contact. |
settings | object | No | Advanced settings (password, waiting room, mute on entry, etc.). |
Response:
{
"errcode": 0,
"errmsg": "ok",
"meetingid": "meeting-id-string",
"meeting_code": "123456789",
"meeting_link": "https://meeting.tencent.com/...",
"excess_users": []
}
The meeting_code is shown to you at the top of the reply in the format #Meeting code: 123-456-789.
list_user_meetings
Returns the meeting ID list for your account within a time range.
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-03-01 00:00", "end_datetime": "2026-03-31 23:59", "limit": 100}'
Returns meetingid_list and a next_cursor for pagination. If next_cursor is non-empty, more results are available.
get_meeting_info
Retrieves full details for a meeting by its ID.
wecom-cli meeting get_meeting_info '{"meetingid": "<meeting-id>"}'
Key fields in the response:
| Field | Description |
|---|---|
title | Meeting title. |
meeting_start_datetime | Start time. |
meeting_duration | Duration in seconds. |
status | 1 = upcoming, 2 = in progress, 3 = ended, 4 = cancelled, 5 = expired. |
meeting_code | Dial-in code. |
meeting_link | Join URL. |
attendees.member[].status | 1 = attended, 2 = did not attend. |
cancel_meeting
Cancels a scheduled meeting.
wecom-cli meeting cancel_meeting '{"meetingid": "<meeting-id>"}'
set_invite_meeting_members
Replaces the invited attendee list for a meeting. This is a full overwrite — you must include existing members you want to keep.
wecom-cli meeting set_invite_meeting_members '{"meetingid": "<meeting-id>", "invitees": [{"userid": "lisi"}, {"userid": "wangwu"}]}'
<Warning>
`set_invite_meeting_members` replaces the entire attendee list. To add a single person, the AI first fetches the current attendees via `get_meeting_info`, merges the new person in, then submits the combined list.
</Warning>
Typical workflows
Creating a meeting
<Steps> <Step title="Parse your request"> The AI extracts the title and start time. If you did not mention invitees, the meeting is created without them. No confirmation is requested unless information is missing. </Step> <Step title="Look up invitee userids (if needed)"> ```bash wecom-cli contact get_userlist '{}' ``` The AI filters the result locally to find the `userid` for each person you named. </Step> <Step title="Create the meeting"> ```bash wecom-cli meeting create_meeting '{"title": "Tech review", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600, "location": "3F conference room", "invitees": {"userid": ["zhangsan", "lisi"]}}' ``` </Step> <Step title="Show the result"> The AI displays the meeting code, time, attendees, and join link. </Step> </Steps>Querying your meeting list
<Steps> <Step title="Calculate the time range"> For example, "this week" becomes the current Monday 00:00 through Sunday 23:59. </Step> <Step title="Fetch meeting IDs"> ```bash wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-03-16 00:00", "end_datetime": "2026-03-22 23:59", "limit": 100}' ``` </Step> <Step title="Fetch details for each meeting"> ```bash wecom-cli meeting get_meeting_info '{"meetingid": "<meeting-id>"}' ``` The AI calls this once per ID returned by `list_user_meetings`. </Step> <Step title="Display the list"> Results are shown grouped by date with title, time window, and attendees. </Step> </Steps>Finding a meeting by title
<Steps> <Step title="Query the ±30-day window"> ```bash wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-02-15 00:00", "end_datetime": "2026-04-16 23:59", "limit": 100}' ``` </Step> <Step title="Fetch details and match by title keyword"> The AI calls `get_meeting_info` for each ID and compares the title against your keyword. It stops as soon as a match is found. </Step> <Step title="Show the result or report no match"> If no meeting title matches within the ±30-day window, the AI tells you and suggests you double-check the name. </Step> </Steps>Cancelling a meeting
<Steps> <Step title="Locate the meeting"> The AI uses `list_user_meetings` and `get_meeting_info` to find the meeting by title or time. </Step> <Step title="Cancel it"> ```bash wecom-cli meeting cancel_meeting '{"meetingid": "<meeting-id>"}' ``` </Step> </Steps>Adding an attendee
<Steps> <Step title="Locate the meeting"> The AI finds the `meetingid` using the title or time you provide. </Step> <Step title="Fetch current attendees"> ```bash wecom-cli meeting get_meeting_info '{"meetingid": "<meeting-id>"}' ``` </Step> <Step title="Look up the new person's userid"> ```bash wecom-cli contact get_userlist '{}' ``` </Step> <Step title="Submit the merged attendee list"> ```bash wecom-cli meeting set_invite_meeting_members '{"meetingid": "<meeting-id>", "invitees": [{"userid": "zhangsan"}, {"userid": "lisi"}, {"userid": "wangwu"}]}' ``` </Step> </Steps>Key constraints
- Only internal organization members can be invited. External users are not supported unless
allow_external_useris enabled insettings. - Finding a meeting to cancel or update always requires two steps:
list_user_meetingsto get the ID, thenget_meeting_infoto confirm it is the right one. - Time format for all meeting parameters is
YYYY-MM-DD HH:mm(no seconds). useridvalues for invitees must always come fromwecomcli-contact. The AI never guesses IDs.