tanyar09 32cef2df77 Update cron tool documentation and context improvements
- Update cron tool and skill documentation
- Update TOOLS.md with email tool documentation
- Context builder improvements
2026-03-05 15:15:25 -05:00

3.2 KiB

name, description
name description
cron Schedule reminders and recurring tasks.

Cron

Use the cron tool to schedule reminders or recurring tasks.

Three Modes

  1. Reminder - message is sent directly to user
  2. Task - message is a task description, agent executes and sends result
  3. One-time - runs once at a specific time, then auto-deletes

Examples

IMPORTANT: Always extract the message from the user's request:

  • User: "remind me to call mama" → message="call mama"
  • User: "remind me every hour to drink water" → message="drink water"
  • User: "remind me every 10 seconds for the next minute to call mama" → message="call mama"

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 10 seconds for the next minute every_seconds: 10 AND in_seconds: 60 (creates 6 reminders: at 0s, 10s, 20s, 30s, 40s, 50s)
every 5 seconds for 30 seconds every_seconds: 5 AND in_seconds: 30 (creates 6 reminders)
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)
  • "remind me every 10 seconds for the next minute"cron(action="add", message="...", every_seconds=10, in_seconds=60) (creates 6 reminders)
  • "every 5 seconds for 30 seconds"cron(action="add", message="...", every_seconds=5, in_seconds=30) (creates 6 reminders)

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.