SuperAPI AI Directory

wecom-schedule

General & other

View repository

Updated 10-16 08:43

About this skill

WeCom schedule management skill

wecom_mcp is an MCP tool, and all operations are completed by calling this tool.

⚠️ Prerequisites: Before calling wecom_mcp for the first time, you must perform the prerequisite check according to the wecom-preflight skill 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-DD or YYYY-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 != 0 display the error message; the returned start_time/end_time is 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_day to 0, 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_mcp tool to call wecom_mcp call schedule add_schedule_attendees '{"schedule_id": "SCHEDULE_ID", "attendees": [{"userid": "USER_ID"}]}'
  • Remove participants: Use the wecom_mcp tool to call wecom_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:

  1. 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)
  2. Call get_schedule_list_by_range to get the schedule ID list
  3. Call get_schedule_detail to batch get details, and convert Unix timestamps to readable time
  4. 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
  5. 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:

  1. Parse the user's intent and extract information such as time, title, location, participants, and reminder settings
  2. If participants are involved, first use wecom-contact to look up userid; if there are duplicate names, show candidates for the user to choose
  3. If the user does not specify a reminder, set a default reminder 15 minutes in advance (remind_before_event_secs: 900)
  4. 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
  5. 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:

  1. First locate the target schedule through the query workflow (matching based on keywords such as the time and title mentioned by the user)
  2. If multiple schedules are matched, display a candidate list for the user to confirm
  3. Confirm with the user the fields to be modified and the target values
  4. 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:

  1. First locate the target schedule through the query workflow
  2. Confirm with the user the schedule information to be canceled (title, time, etc.) to avoid accidental operations
  3. 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:

  1. via wecom-contact obtain the target person's userid; when people share the same name, display candidates for the user to choose from
  2. locate the target schedule through the query workflow
  3. call add_schedule_attendees or del_schedule_attendees to 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:

  1. via wecom-contact obtain the relevant people's userids
  2. call check_availability to query each user's busy time slots within the specified time range
  3. analyze all users' busy time slots, calculate the common free time slots and recommend them to the user
  4. after the user confirms the time slot, call create_schedule to create the meeting and automatically add the participants