---
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.
Meeting list queries are limited to the current day plus or minus 30 days. The AI returns at most 100 meetings per page.
## Available operations
### create_meeting
Creates a new scheduled meeting.
```bash
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:**
```json
{
"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.
```bash
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.
Time range is limited to the current day ± 30 days. Queries outside this range will fail.
### get_meeting_info
Retrieves full details for a meeting by its ID.
```bash
wecom-cli meeting get_meeting_info '{"meetingid": ""}'
```
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.
```bash
wecom-cli meeting cancel_meeting '{"meetingid": ""}'
```
### 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.
```bash
wecom-cli meeting set_invite_meeting_members '{"meetingid": "", "invitees": [{"userid": "lisi"}, {"userid": "wangwu"}]}'
```
`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.
## Typical workflows
### Creating a meeting
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.
```bash
wecom-cli contact get_userlist '{}'
```
The AI filters the result locally to find the `userid` for each person you named.
```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"]}}'
```
The AI displays the meeting code, time, attendees, and join link.
### Querying your meeting list
For example, "this week" becomes the current Monday 00:00 through Sunday 23:59.
```bash
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-03-16 00:00", "end_datetime": "2026-03-22 23:59", "limit": 100}'
```
```bash
wecom-cli meeting get_meeting_info '{"meetingid": ""}'
```
The AI calls this once per ID returned by `list_user_meetings`.
Results are shown grouped by date with title, time window, and attendees.
### Finding a meeting by title
```bash
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-02-15 00:00", "end_datetime": "2026-04-16 23:59", "limit": 100}'
```
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.
If no meeting title matches within the ±30-day window, the AI tells you and suggests you double-check the name.
### Cancelling a meeting
The AI uses `list_user_meetings` and `get_meeting_info` to find the meeting by title or time.
```bash
wecom-cli meeting cancel_meeting '{"meetingid": ""}'
```
### Adding an attendee
The AI finds the `meetingid` using the title or time you provide.
```bash
wecom-cli meeting get_meeting_info '{"meetingid": ""}'
```
```bash
wecom-cli contact get_userlist '{}'
```
```bash
wecom-cli meeting set_invite_meeting_members '{"meetingid": "", "invitees": [{"userid": "zhangsan"}, {"userid": "lisi"}, {"userid": "wangwu"}]}'
```
## Key constraints
- Only internal organization members can be invited. External users are not supported unless `allow_external_user` is enabled in `settings`.
- Finding a meeting to cancel or update always requires two steps: `list_user_meetings` to get the ID, then `get_meeting_info` to confirm it is the right one.
- Time format for all meeting parameters is `YYYY-MM-DD HH:mm` (no seconds).
- `userid` values for invitees must always come from `wecomcli-contact`. The AI never guesses IDs.