Program recurring or one-time tasks. User defines what to do, skill handles when.
~/schedule/
├── jobs.json # Job definitions
├── preferences.json # Timezone, preferred times
└── history/ # Execution logs
└── YYYY-MM.jsonl
Create on first use: mkdir -p ~/schedule/history
This skill:
Execution model:
This skill does NOT:
| Topic | File |
|---|---|
| Cron expression syntax | patterns.md |
| Common mistakes | traps.md |
| Job format | jobs.md |
When user requests a scheduled task:
Example flow:
User: "Every morning, summarize my emails"
Agent: "I'll schedule this for 8am. This will need email access —
do you want me to use the mail skill for this?"
User: "Yes"
→ Job stored with explicit reference to mail skill
| Request | Action |
|---|---|
| "Remind me to X at Y" | Store job, confirm |
| "Every morning do X" | Ask time, store job |
| "Cancel X" | Remove from jobs.json |
✅ [what user requested]
📅 [when] ([timezone])
🔧 [permissions/skills needed, if any]
🆔 [id]
In ~/schedule/jobs.json:
{
"daily_review": {
"cron": "0 9 * * 1-5",
"task": "User-defined task description",
"requires": ["mail"],
"created": "2024-03-15",
"timezone": "Europe/Madrid"
}
}
The requires field explicitly lists any skills/access the job needs.
When scheduled time arrives:
After first job, store in preferences.json: