- Add examples for in_seconds parameter usage - Clarify when to use in_seconds vs at parameter - Improve time expression examples
2.4 KiB
2.4 KiB
name, description
| name | description |
|---|---|
| cron | Schedule reminders and recurring tasks. |
Cron
Use the cron tool to schedule reminders or recurring tasks.
Three Modes
- Reminder - message is sent directly to user
- Task - message is a task description, agent executes and sends result
- One-time - runs once at a specific time, then auto-deletes
Examples
Fixed reminder:
cron(action="add", message="Time to take a break!", every_seconds=1200)
Dynamic task (agent executes each time):
cron(action="add", message="Check HKUDS/nanobot GitHub stars and report", every_seconds=600)
One-time scheduled task (compute ISO datetime from current time):
cron(action="add", message="Remind me about the meeting", at="<ISO datetime>")
Timezone-aware cron:
cron(action="add", message="Morning standup", cron_expr="0 9 * * 1-5", tz="America/Vancouver")
List/remove:
cron(action="list")
cron(action="remove", job_id="abc123")
Time Expressions
| User says | Parameters |
|---|---|
| remind me in 20 seconds | in_seconds: 20 (RECOMMENDED - tool computes datetime automatically) |
| remind me in 5 minutes | in_seconds: 300 (5 minutes = 300 seconds) |
| remind me in 1 hour | in_seconds: 3600 (1 hour = 3600 seconds) |
| every 20 minutes | every_seconds: 1200 |
| every hour | every_seconds: 3600 |
| every day at 8am | cron_expr: "0 8 * * *" |
| weekdays at 5pm | cron_expr: "0 17 * * 1-5" |
| 9am Vancouver time daily | cron_expr: "0 9 * * *", tz: "America/Vancouver" |
| at a specific time | at: ISO datetime string (e.g. "2026-03-03T14:30:00") |
IMPORTANT: For "remind me in X seconds/minutes", use in_seconds parameter instead of calculating at manually!
Examples:
- "remind me in 25 seconds" →
cron(action="add", message="...", in_seconds=25) - "remind me in 5 minutes" →
cron(action="add", message="...", in_seconds=300)(5 * 60 = 300) - "remind me in 1 hour" →
cron(action="add", message="...", in_seconds=3600)(60 * 60 = 3600)
The in_seconds parameter automatically computes the correct future datetime - you don't need to calculate it yourself!
Only use at when:
- User specifies an exact time like "at 3pm" or "at 2026-03-03 14:30"
- You need to schedule for a specific absolute datetime
Timezone
Use tz with cron_expr to schedule in a specific IANA timezone. Without tz, the server's local timezone is used.