cron
Scannednpx machina-cli add skill zebbern/icron/cron --openclawCron
Use the cron tool to schedule reminders or recurring tasks.
Two Modes
- Reminder - message is sent directly to user
- Task - message is a task description, agent executes and sends result
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 zebbern/icron GitHub stars and report", every_seconds=600)
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" |
Overview
The cron skill lets you create time-based jobs that either remind you directly or run a task through the agent. Use every_seconds for fixed intervals or cron_expr for specific times. This automation reduces manual follow-ups and keeps repetitive work on track.
How This Skill Works
Two modes are supported: Reminder (the message is sent to you) and Task (the agent executes the task and reports results). Jobs are created with cron(action='add', message='...', every_seconds=...) for fixed intervals or cron_expr for calendar-like timing. You can inspect and manage your jobs with cron(action='list') and cron(action='remove', job_id=...).
When to Use It
- You need a fixed reminder at regular intervals, e.g., every 20 minutes (every_seconds).
- You want the agent to perform a recurring task and report results.
- You need to view all active cron jobs.
- You want to cancel a scheduled job by its ID.
- You want specific times, such as daily at 8am or weekdays at 5pm, using cron_expr.
Quick Start
- Step 1: Add a fixed reminder with cron(action='add', message='Time to take a break!', every_seconds=1200)
- Step 2: Add a recurring task that reports every 600 seconds: cron(action='add', message='Check zebbern/icron GitHub stars and report', every_seconds=600)
- Step 3: List existing jobs: cron(action='list')
Best Practices
- Define clear, concise messages for reminders to avoid noise.
- Choose an appropriate every_seconds to balance usefulness and disruption.
- Prefer cron_expr when scheduling time-of-day or weekday patterns.
- Keep a reference of job IDs to simplify management.
- Test with short intervals to validate behavior before long-running schedules.
Example Use Cases
- Fixed reminder: cron(action='add', message='Time to take a break!', every_seconds=1200)
- Dynamic task: cron(action='add', message='Check zebbern/icron GitHub stars and report', every_seconds=600)
- List jobs: cron(action='list')
- Remove a job: cron(action='remove', job_id='abc123')
- Daily schedule: cron(action='add', message='Daily sales report', cron_expr='0 8 * * *')