Skip to content
kit / cron / hero
CronCron-as-a-Service

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.

cron — hoody kit

# 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

kit / cron / expression-gallery
EXPRESSION REFERENCE

Every Pattern You'll Need

Eight expressions with their human-readable equivalents — straight from the API's schedule_human field.

Expression
Human Readable
Copy
* * * * *
Every minute
*/5 * * * *
Every 5 minutes
0 * * * *
At minute 0 (every hour)
0 9 * * *
At 09:00
0 9 * * 1-5
At 09:00 on Mon–Fri
0 0 1 * *
At 00:00 on day 1 of the month
@daily
At 00:00 (macro)
@weekly
At 00:00 on Sunday (macro)
Macros: @hourly @daily @weekly @monthly @yearly
kit / cron / timeline
ENTRY SCHEDULER

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.

-2h-1.5h-1h-0.5hnow+0.5h+1h+1.5h+2h+2.5h+3h

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

upcoming
disabled
past
kit / cron / modes
TWO MODES

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 endpoints

UUID-backed CRUD — create, read, update, delete cron jobs via JSON. Attach comments, toggle enabled state, and set auto-expiration without touching the raw crontab.

POST /users/root/entries

# 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 endpoints

Full read/write access to the crontab file per system user. Use this when you need complete control or have existing crontab-based workflows.

GET /users/root/crontab

# Read the raw crontab

GET /users/[user]/crontab

# Replace entire crontab

PUT /users/[user]/crontab

["crontab": "0 5 * * * /usr/local/bin/backup.sh"]

kit / cron / patterns
SCHEDULE PATTERNS

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.

kit / cron / endpoints
API ENDPOINTS

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 endpoints

GET /users/root/entries → [[id, schedule_human, enabled]]

GET
/users/{user}/entriesList managed entries
POST
/users/{user}/entriesCreate managed entry
GET
/users/{user}/entries/{id}Get entry by ID
PATCH
/users/{user}/entries/{id}Update entry
DELETE
/users/{user}/entries/{id}Delete entry

Raw Crontab

3 endpoints

PUT /users/root/crontab → [crontab, user]

GET
/crontabList all crontabs (paginated)
GET
/users/{user}/crontabGet raw crontab for user
PUT
/users/{user}/crontabReplace crontab for user

System

1 endpoint

GET /health → [status: ok]

GET
/healthHealth check
kit / cron / cta

Schedule Your First Job

One POST request. One cron entry. Zero SSH. Hoody Cron is running inside your container right now.

View API Docs