Cron-as-a-Service
Schedule jobs with standard 5-field expressions or @daily macros. Manage entries via REST, toggle them on/off, and set auto-expiry — no SSH required.
# Create a cron job that runs daily at 9 AM
hoody cron create root \
--schedule "0 9 * * *" \
--command "/usr/local/bin/backup.sh" \
--comment "Daily backup at 9 AM"
# Response
[
"id": "7d3f2a1b-8c4e-4f9a-b2d5",
"schedule_human": "At 09:00",
"enabled": true
]
# Disable a job temporarily
hoody cron update root $ENTRY_ID --enabled false
# Entry disabled
Every Pattern You'll Need
Eight expressions with their human-readable equivalents — straight from the API's schedule_human field.
Schedule at a Glance
Four managed entries on a rolling axis — upcoming fires in blue, disabled entries dimmed. Powered by schedule_human and enabled state.
daily-backup
At 02:00
health-check
Every 15 minutes
log-rotate
At 00:00 on Sunday
sync-reports
At 09:00 on Mon–Fri
Managed or Raw — Your Call
UUID-tracked entries with toggle and expiry via the JSON API, or direct crontab file access when you own the workflow.
Managed Entries
5 endpointsUUID-backed CRUD — create, read, update, delete cron jobs via JSON. Attach comments, toggle enabled state, and set auto-expiration without touching the raw crontab.
# Create a managed entry
POST /users/[user]/entries
[
"schedule": "0 9 * * *",
"command": "/usr/local/bin/backup.sh",
"comment": "Daily backup",
"enabled": true,
"expires_at": null
Raw Crontab
3 endpointsFull read/write access to the crontab file per system user. Use this when you need complete control or have existing crontab-based workflows.
# Read the raw crontab
GET /users/[user]/crontab
# Replace entire crontab
PUT /users/[user]/crontab
["crontab": "0 5 * * * /usr/local/bin/backup.sh"]
Common Cron Expressions
Copy-paste these doc-grounded schedules — each verified against the expression reference above.
* * * * *
Every Minute
Fire on every clock tick. Ideal for continuous polling tasks, metric collectors, or watchdog processes.
0 * * * *
Every Hour
Fire at the top of each hour. Good for hourly summaries, cache warming, or scheduled API syncs.
0 9 * * 1-5
Weekdays at 9 AM
Fire at 09:00 Mon–Fri only. Use for business-hours tasks like sending daily digests or generating reports.
0 0 1 * *
First of Month
Fire once per month at midnight on the 1st. Perfect for monthly rollups, billing cycles, and archive jobs.
*/5 * * * *
Every 5 Minutes
Fire every 5 minutes. Useful for health checks, queue drainers, and near-real-time data synchronisation.
@daily
Daily Macro
Equivalent to 0 0 * * * — midnight every day. The clearest way to express a once-per-day schedule.
9 Endpoints. Two Modes.
Five managed-entry CRUD endpoints, three raw crontab endpoints, and one health check — all scoped per system user.
Managed Entries
5 endpointsGET /users/root/entries → [[id, schedule_human, enabled]]
Raw Crontab
3 endpointsPUT /users/root/crontab → [crontab, user]
System
1 endpointGET /health → [status: ok]
Schedule Your First Job
One POST request. One cron entry. Zero SSH. Hoody Cron is running inside your container right now.