SuperAPI AI Directory

wecomcli-todo

Office & productivity

View repository

Updated 10-16 10:25

About this skill

wecom-cli is a tool provided by the plugin, not a terminal command: all operations are completed by calling this tool, and parameters should be passed using args , and it is forbidden to use it via command-line methods such as exec / shell / terminal.

⚠️ Prerequisite: Before calling wecom-cli for the first time, you must perform the prerequisite check according to the wecomcli-preflight skill to ensure the tool has been added to the whitelist.

WeCom To-do Management

Use wecom-cli to manage WeCom to-dos.

Query and Locate

  • The query scope is limited to records that already exist in the WeCom to-do system.
  • You can query by creation time, deadline, completion status, and title/description keywords; keywords are literal matches, not semantic search.
  • When the user asks "what to-dos do I have", "what unfinished to-dos are there", or "what to-dos are coming up", use todo list to query records in the to-do system.
  • When deleting, completing, or updating, if the context does not have todo_id, first use todo list to locate it; if there is already todo_id and the latest details or status need to be confirmed, use todo get。

Interface Routing Table

[Important] Before performing any operation, you must first locate and fully read the reference document pointed to by the "Interface Routing Table", and then execute the command, to avoid parameter errors. It is strictly forbidden to guess and assemble parameters based only on the routing table description or your own memory.

User Intent Reference Location
Create a to-do (optional assignment) references/todo-create.md
Delete a to-do / leave a to-do / remove from my to-dos references/todo-delete.md
Complete the current user's own part / complete the entire to-do references/todo-finish.md
When there is already todo_id , confirm the to-do details and latest status references/todo-get.md
View the to-do list; filter by creation time, deadline, completion status, or keywords; locate to-dos for subsequent operations references/todo-list.md
Modify the to-do content / assignee list / deadline (excluding participant status) references/todo-update.md

deadline Object Specification

The deadline of a to-do is uniformly expressed as a deadline object. When it involves "setting the deadline", "modifying the deadline", "clearing the deadline", or reading the deadline information of a to-do, handle it according to the specification in this section.

Structure

Field Type Required Semantics
type string Yes Enum:date(date only; if the user does not mention a specific hour, minute, or second, then definitely choosedate) / datetime(the user mentioned a specific time)
value string Yes type=date format when YYYY-MM-DD;type=datetime format when YYYY-MM-DD HH:mm:ss

Semantics on the deadline / remind_at_deadline fields

  • Set or modify deadline: overall optional; if provided, its internal type and value are required.
  • Clear the already set deadline: update the deadline field to an empty object {}; if the field is not updated, the original value remains unchanged.
  • As a return field: for a to-do with no deadline set, thedeadline field is not returned or is null。
  • Reminder timing (remind_at_deadline):remind_at_deadline and deadline form a pair and must appear together—without deadline passing remind_at_deadline alone will not take effect; do not pass it that way.remind_at_deadline only determines the remindertiming, at the input levelthere is no "turn off reminder" option(whether a reminder is actually sent is determined by the backend, and no reminder may be sent if conditions are not met; the returned extra_info shall prevail):
    • remind_at_deadline=true(only deadline.type=datetime can be passed) → atthe deadlineremind.
    • remind_at_deadline=false or not passed → remind according tothe backend default advance time(not turn off reminder)。
    • deadline.type=date or when deadline is not passed, do not pass true。

When inferring from user input that deadline

a date/weekday directly limits a task or event in the to-do, it is also treated as the deadline. For example, for "Wednesday meeting, bring a laptop", Wednesday should be written into deadline。

  1. To-do reminder time = deadline: when the user explicitly wants a "scheduled-reminder to-do / to-do that reminds at a certain time / to-do reminder" and gives a specific time, the user's expected reminder time is deadline.type=datetime, and pass remind_at_deadline=true; if only a date is given or no reminder/deadline time is given, do not ask follow-up questions and do not pass remind_at_deadline=true。
  2. Ordinary deadline: when only the deadline/expiration time is stated, or when the date on which the task occurs is given, fill in only deadline, and do not pass remind_at_deadline; in this case, remind according to the backend default advance time.
  3. Time format: specific deadline/reminder time → deadline.type=datetime、value="YYYY-MM-DD HH:mm:ss"; only deadline date → type=date、value="YYYY-MM-DD"。
  4. When no deadline/reminder or task occurrence time is mentioned:deadline do not pass at all,remind_at_deadline also do not pass, and do not ask follow-up questions.
  5. deadline at xx time, and remind yy in advance:deadline always fill in the xx deadline time the user said; do not fill in the reminder time after the advance. The current input parameters cannot directly set "advance yy"; after creation/update, use the returned extra_info to determine whether the system reminder time exactly satisfies yy; if it does not, or there is no extra_info reply:目前不支持直接创建您需要的提醒时间,已为您设置截止时间为 XX,请到企业微信待办功能中手动修改提醒时间。(XX fill in this deadline.value)

Example

{ "type": "date",     "value": "2026-05-08" }
{ "type": "datetime", "value": "2026-05-08 09:00:00" }

Special note

  • It is forbidden to display todo_id(to-do ID) to the user.