Cron
ProductivitycronCron is an Agent Skill for productivity published in the HKUDS/nanobot repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
Schedule reminders and recurring tasks.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/HKUDS/nanobot/blob/HEAD/nanobot/skills/cron/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/cron, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
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
- 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 |
|---|---|
| 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 (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.