ENยทESยทDEยทPTยทFR
โŒ˜K

Scheduled Tasks

Create recurring and one-shot tasks with natural language or cron expressions. The agent executes the task prompt on schedule.

Tool Name

scheduler

Actions

ActionRequired ParamsDescription
createname, schedule, promptCreate a new scheduled task
listโ€”List all tasks with status and next run time
deleteidDelete a task by UUID
pauseidPause a task (stops firing)
resumeidResume a paused task (recomputes next run)

Create Parameters

KeyTypeDefaultDescription
namestringโ€”Human-readable label for the task
schedulestringโ€”Natural language or 5-field cron expression
promptstringโ€”What the agent should do when the task fires
oneshotboolfalseFire once then auto-delete
trustedboolfalseRun with full autonomy (no terminal approval needed)

Natural Language Schedules

The scheduler parses common patterns into cron expressions:

InputCronDescription
hourly0 * * * *Every hour at :00
daily0 0 * * *Every day at midnight
weekly0 0 * * 0Every Sunday at midnight
monthly0 0 1 * *First of the month
every 5m*/5 * * * *Every 5 minutes
every 2h0 */2 * * *Every 2 hours
daily at 9am0 9 * * *Every day at 9:00 AM
daily at 14:3030 14 * * *Every day at 2:30 PM
weekdays at 8:3030 8 * * 1-5Mon-Fri at 8:30 AM
weekends at 10am0 10 * * 0,6Sat-Sun at 10:00 AM
in 2h(computed absolute)One-shot, fires once in 2 hours
in 30m(computed absolute)One-shot, fires once in 30 minutes

Standard 5-field cron expressions are also accepted directly (e.g., 0 9 * * 1-5).

Configuration

config.toml
[scheduler]
enabled = true
tick_interval_secs = 30

[[scheduler.tasks]]
name = "Morning check-in"
schedule = "weekdays at 9am"
prompt = "Check system health and report any issues"
trusted = true

[[scheduler.tasks]]
name = "Backup reminder"
schedule = "weekly"
prompt = "Remind me to run backups"

Task Storage

Tasks are persisted in SQLite (scheduled_tasks table). Config-defined tasks are synced on startup โ€” removed tasks are cleaned up automatically. Tasks created via the tool persist indefinitely.

Missed Tasks

On startup, the scheduler checks for tasks that should have fired while the daemon was down. Missed tasks are fired immediately during recovery.

Trusted vs Untrusted
Trusted tasks run with full terminal access (no approval needed). Untrusted tasks (default) require approval for any terminal commands, just like email trigger sessions.