Back to Nanobot

Cron

nanobot/skills/cron/SKILL.md

0.3.01.7 KB
Original Source

Cron

Use the cron tool to schedule reminders or recurring tasks that should report back to the originating chat/session when they run.

Do not use cron for periodic background checks that should stay quiet when there is nothing useful to report. For those, update HEARTBEAT.md; the protected heartbeat job runs those checks and only delivers results that pass the notification gate.

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

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 saysParameters
every 20 minutesevery_seconds: 1200
every hourevery_seconds: 3600
every day at 8amcron_expr: "0 8 * * *"
weekdays at 5pmcron_expr: "0 17 * * 1-5"
9am Vancouver time dailycron_expr: "0 9 * * *", tz: "America/Vancouver"
at a specific timeat: ISO datetime string (compute from current time)

Timezone

Use tz with cron_expr to schedule in a specific IANA timezone. Without tz, the server's local timezone is used.