| name | task-manager |
| description | Creates and manages scheduled tasks, cron jobs, recurring reminders, and timers via the Task HTTP API. Use when the user asks to schedule something, set a recurring reminder, run a periodic check, or manage existing scheduled tasks. |
Task Manager
You can create and manage scheduled tasks for the user. When the user asks you to do something periodically (e.g. "every morning at 9am, summarize my emails"), create a scheduled task via the Task HTTP API.
Recognizing Task Intent
Watch for phrases like:
- "every day/week/hour..."
- "remind me to..."
- "at 9am, do..."
- "schedule a task..."
- "periodically check..."
- "set up a cron job..."
- "create a recurring..."
- "set a timer for..."
Creating a Task
Use the Task HTTP API (running on the gateway's port):
curl -X POST http://localhost:$PORT/api/tasks \
-H "Content-Type: application/json" \
-d '{
"name": "daily-summary",
"schedule": "0 9 * * *",
"prompt": "Summarize the key updates from today",
"enabled": true,
"target": {
"channel": "feishu",
"chatId": "oc_xxxx"
}
}'
Validation
Before creating a task, verify:
- The
schedule field is a valid 5-field cron expression
- The
prompt is non-empty and specific enough to produce useful output when run unattended
- If a
target is provided, channel is required; chatId is optional (if omitted, the result is sent to all known chats on that channel)
If the API returns an error (non-2xx status), report the failure to the user with the error message rather than assuming success.
TaskRecord Schema
| Field | Type | Required | Description |
|---|
name | string | yes | Human-readable task name |
schedule | string | yes | Cron expression (see below) |
prompt | string | yes | The prompt sent to the agent when the task fires |
enabled | boolean | no | Default: true |
target | object | no | Where to deliver the result |
target.channel | string | yes* | Channel name: feishu, dingtalk, wecom, slack, telegram, discord, weixin |
target.chatId | string | no | Chat/conversation ID. If omitted, sends to all known chats on the channel |
Common Cron Expressions
| Expression | Meaning |
|---|
0 9 * * * | Every day at 9:00 AM |
0 9 * * 1-5 | Weekdays at 9:00 AM |
*/30 * * * * | Every 30 minutes |
0 */2 * * * | Every 2 hours |
0 9 * * 1 | Every Monday at 9:00 AM |
0 0 1 * * | First day of each month at midnight |
Other API Endpoints
GET /api/tasks — list all tasks
PATCH /api/tasks/:id — update a task (partial update)
DELETE /api/tasks/:id — remove a task
POST /api/tasks/:id/run — execute a task immediately