--- 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.