wecom_mcpis an MCP tool, and all operations are completed by calling this tool.
⚠️ Prerequisites: Before calling
wecom_mcpfor the first time, you must perform the prerequisite check according to thewecom-preflightskill to ensure that the tool has been added to the whitelist.
Interact with the WeCom schedule system through wecom_mcp call schedule <接口名> '<json入参>' .
Notes
- Schedule list queries only support30 days before and after the current day, and the time format is
YYYY-MM-DDorYYYY-MM-DD HH:MM:SS - When participant userid is involved, you need to first use the wecom-contact skill to obtain it; when there are duplicate names, display candidates for the user to choose (exposing userid is prohibited)
- Before creating/modifying/cancelling, first confirm the target schedule and participant information
errcode != 0display the error message; the returnedstart_time/end_timeis a Unix timestamp (seconds) and needs to be converted to a readable format- Pay attention to time format conversion: API input parameters use string format (such as
YYYY-MM-DD HH:MM:SS), but return values are mostly Unix timestamps, so format conversion is required when using them
API list
get_schedule_list_by_range — Query schedule ID list
Use the wecom_mcp tool to call wecom_mcp call schedule get_schedule_list_by_range '{"start_time": "YYYY-MM-DD HH:MM:SS", "end_time": "YYYY-MM-DD HH:MM:SS"}'
Return schedule_id_list array. Only supports 30 days before and after the current day.
get_schedule_detail — Get schedule details
Use the wecom_mcp tool to call wecom_mcp call schedule get_schedule_detail '{"schedule_id_list": ["SCHEDULE_ID_1", "SCHEDULE_ID_2"]}'
Supports 1~50 IDs, and returns schedule title, time, location, participants, etc. See API details。
create_schedule — Create schedule
Use the wecom_mcp tool to call wecom_mcp call schedule create_schedule '{"schedule": {"start_time": "YYYY-MM-DD HH:MM:SS", "end_time": "YYYY-MM-DD HH:MM:SS", "summary": "日程标题", "attendees": [{"userid": "USER_ID"}], "reminders": {"is_remind": 1, "remind_before_event_secs": 3600, "timezone": 8}}}'
See API details | reminders field。
update_schedule — Modify schedule
Only pass in the fields that need to be modified; fields not passed remain unchanged.
⚠️ Important: If you want to change an all-day schedule into a regular schedule and modify the time, you must set
is_whole_dayto0, otherwise the schedule will remain in all-day status.
Use the wecom_mcp tool to call wecom_mcp call schedule update_schedule '{"schedule": {"schedule_id": "SCHEDULE_ID", "summary": "更新后的标题"}}'
See API details。
cancel_schedule — Cancel schedule
Use the wecom_mcp tool to call wecom_mcp call schedule cancel_schedule '{"schedule_id": "SCHEDULE_ID"}'
add_schedule_attendees / del_schedule_attendees — Manage participants
- Add participants: Use the
wecom_mcptool to callwecom_mcp call schedule add_schedule_attendees '{"schedule_id": "SCHEDULE_ID", "attendees": [{"userid": "USER_ID"}]}' - Remove participants: Use the
wecom_mcptool to callwecom_mcp call schedule del_schedule_attendees '{"schedule_id": "SCHEDULE_ID", "attendees": [{"userid": "USER_ID"}]}'
check_availability — Query availability
Use the wecom_mcp tool to call wecom_mcp call schedule check_availability '{"check_user_list": ["USER_ID_1", "USER_ID_2"], "start_time": "YYYY-MM-DD HH:MM:SS", "end_time": "YYYY-MM-DD HH:MM:SS"}'
Supports 1~10 users, and returns the busy time period list for each user. See API details。
Typical workflows
Query schedules
Classic query examples:
- "What schedules do I have today?"
- "Help me check whether there are any meetings this Wednesday afternoon"
- "What is tomorrow's schedule?"
- "Check if there is any recent schedule about project review"
- "What are all my schedules from next Monday to Friday?"
Process:
- Calculate the time range based on user intent (e.g., "today" → the current day from 00:00:00 to 23:59:59, "this week" → this Monday to Sunday)
- Call
get_schedule_list_by_rangeto get the schedule ID list - Call
get_schedule_detailto batch get details, and convert Unix timestamps to readable time - If the user mentions a keyword (e.g., "project review"), match and filter in
summary; if not found, gradually expand the range up to 30 days before and after - When displaying the schedule list, include key information such as title, time, location, and participants, so users can quickly understand it
Create Schedule
Classic query examples:
- "Help me create a meeting from 2 PM to 3 PM tomorrow afternoon, titled Requirements Review"
- "Arrange a full-day team-building activity on Friday"
- "Create a schedule: the day after tomorrow at 10 AM, hold a product plan discussion meeting with Zhang San and Li Si, location is the 3rd-floor meeting room"
- "Help me create a schedule, next Monday 14:00-15:00, remind me 15 minutes in advance"
- "Set up a schedule for tomorrow morning, invite Wang Wei to attend"
Process:
- Parse the user's intent and extract information such as time, title, location, participants, and reminder settings
- If participants are involved, first use wecom-contact to look up userid; if there are duplicate names, show candidates for the user to choose
- If the user does not specify a reminder, set a default reminder 15 minutes in advance (
remind_before_event_secs: 900) - If the user says "all day", set
is_whole_day: 1, and set the time to 00:00:00 to 23:59:59 of that day - After confirming the schedule information with the user (title, time, location, participants, etc.), call
create_schedule
Modify Schedule
Classic query examples:
- "Move tomorrow's requirements review to 3 PM the day after tomorrow"
- "Help me change the title of this afternoon's meeting to Technical Plan Review"
- "Change the location of my 2 PM schedule today to the online Tencent Meeting"
- "Postpone Friday's team-building activity by one hour"
- "Help me add a description to tomorrow's weekly meeting: discuss Q2 planning"
Process:
- First locate the target schedule through the query workflow (matching based on keywords such as the time and title mentioned by the user)
- If multiple schedules are matched, display a candidate list for the user to confirm
- Confirm with the user the fields to be modified and the target values
- Call
update_schedule, and pass in only the fields that need to be modified
Cancel Schedule
Classic query examples:
- "Cancel tomorrow afternoon's requirements review"
- "Help me delete Friday's team-building schedule"
- "I don't want to have the 3 PM meeting today anymore, help me cancel it"
Process:
- First locate the target schedule through the query workflow
- Confirm with the user the schedule information to be canceled (title, time, etc.) to avoid accidental operations
- After confirmation, call
cancel_schedule
Manage Participants
Classic query examples:
- "Add Zhang San to tomorrow's requirements review meeting"
- "Help me remove Li Si from Friday's schedule"
- "Invite Wang Wei and Zhao Min again to tomorrow afternoon's meeting"
- "Remove Liu Qiang from the participants of my tech sharing session the day after tomorrow"
Process:
- via wecom-contact obtain the target person's userid; when people share the same name, display candidates for the user to choose from
- locate the target schedule through the query workflow
- call
add_schedule_attendeesordel_schedule_attendeesto complete adding/removing
query free/busy status and schedule a meeting
Classic query example:
- "Help me check whether Zhang San and Li Si are free tomorrow afternoon"
- "Check my and Wang Wei's free time this week, I want to set up a meeting"
- "I want to have a meeting with Xiao Ming and Xiao Hong from the product team, see when everyone is free"
- "Find a time slot tomorrow afternoon when everyone is free, and schedule a 1-hour meeting"
Process:
- via wecom-contact obtain the relevant people's userids
- call
check_availabilityto query each user's busy time slots within the specified time range - analyze all users' busy time slots, calculate the common free time slots and recommend them to the user
- after the user confirms the time slot, call
create_scheduleto create the meeting and automatically add the participants