Skip to content

Cron

Standard · 1 credit

Parse and validate cron expressions, get human-readable explanations, compute upcoming run times, or generate expressions from natural descriptions.

FieldTypeRequiredDescription
actionstringYesparse, explain, next_runs, or generate
expressionstringNoCron expression — required for parse, explain, next_runs
countintegerNoNumber of next runs to compute (default 5, max 25)
timezonestringNoIANA timezone for next_runs (e.g. America/Chicago)
everystringNoInterval for generate: minute, hour, day, week, month
atstringNoTime in HH:MM format (for generate with day/week/month)
weekdaystringNoDay of week (for generate with week)
day_of_monthintegerNoDay 1–31 (for generate with month)
FieldTypeDescription
validbooleanWhether the expression is valid
expressionstringThe cron expression (returned by generate)
explanationstringHuman-readable description
fieldsobjectParsed cron fields
fields.minutestringMinute field
fields.hourstringHour field
fields.day_of_monthstringDay of month field
fields.monthstringMonth field
fields.day_of_weekstringDay of week field
next_runsarrayUpcoming run times as RFC 3339 strings
Terminal window
curl -X POST https://morso.dev/api/cron \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"action": "explain", "expression": "0 9 * * 1-5"}'
{
"valid": true,
"explanation": "At 09:00 on every day-of-week from Monday through Friday",
"fields": {
"minute": "0",
"hour": "9",
"day_of_month": "*",
"month": "*",
"day_of_week": "1-5"
}
}
Terminal window
curl -X POST https://morso.dev/api/cron \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"action": "next_runs", "expression": "*/15 * * * *", "count": 3, "timezone": "Europe/London"}'
{
"valid": true,
"next_runs": [
"2026-05-06T15:00:00+01:00",
"2026-05-06T15:15:00+01:00",
"2026-05-06T15:30:00+01:00"
]
}
Terminal window
curl -X POST https://morso.dev/api/cron \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"action": "generate", "every": "week", "weekday": "monday", "at": "09:00"}'
{
"valid": true,
"expression": "0 9 * * 1",
"explanation": "At 09:00 on Monday"
}
  • 400 — Invalid cron expression, unknown timezone, or unsupported interval.

See Errors for the standard error shape.