Cron API FREE

Parse, validate, describe, and predict cron expressions. Get next N run times in any IANA timezone. Build expressions from structured input. Standard aliases like @hourly and @daily are accepted everywhere.

Try the interactive UI: /tools/cron

GET /cron/parse

Validate an expression and describe it in plain English.

ParamDefaultNotes
expr(required)5-field cron expression or alias
curl "https://forge-node.tail2b516d.ts.net/cron/parse?expr=0%209%20*%20*%201-5"
# {"valid":true,"expression":"0 9 * * 1-5","normalized":"0 9 * * 1-5",
#  "description":"At 09:00 AM, Monday through Friday","is_alias":false}

GET /cron/next

Predict the next N run times for an expression.

ParamDefaultNotes
expr(required)cron expression
count51..100
fromnowISO 8601 instant to count forward from
tzUTCIANA timezone (e.g., America/Los_Angeles)
# Next 3 runs of "every weekday at 9am PT"
curl "https://forge-node.tail2b516d.ts.net/cron/next?expr=0%209%20*%20*%201-5&count=3&tz=America/Los_Angeles"

GET /cron/prev

Previous N run times. Same parameters as /cron/next.

GET /cron/match

Does an expression fire at a specific instant?

ParamDefaultNotes
expr(required)cron expression
atnowISO 8601 instant to test
tzUTCIANA timezone
curl "https://forge-node.tail2b516d.ts.net/cron/match?expr=0%20*%20*%20*%20*&at=2026-05-12T10:00:00Z"
# {"match":true, ...}

POST /cron/builder

Build a cron expression from structured input. Choose a frequency type and fill the relevant fields.

FieldTypeUsed for
typestringevery_minutes, hourly, daily, weekdays, weekends, weekly, monthly, yearly
valueint 1..59every_minutes only
minuteint 0..59all (default 0)
hourint 0..23daily / weekdays / weekends / weekly / monthly / yearly
day_of_weekint 0..6weekly (0=Sun..6=Sat)
day_of_monthint 1..31monthly / yearly
monthint 1..12yearly
# Weekdays at 9:30 AM
curl -X POST https://forge-node.tail2b516d.ts.net/cron/builder \
  -H 'Content-Type: application/json' \
  -d '{"type":"weekdays","hour":9,"minute":30}'
# {"expression":"30 9 * * 1-5","description":"At 09:30 AM, Monday through Friday", ...}

GET /cron/common

List of common cron patterns grouped by category (Minute, Hour, Day, Week, Month, Year). Each entry has the expression, a short name, and a plain-English description.

GET /health/cron

Service health check. Returns {"status":"ok"}.

Supported aliases

@hourly, @daily, @midnight, @weekly, @monthly, @yearly, @annually. These are expanded server-side. @reboot is not supported (it is a daemon directive, not a schedule).

Limits

120 requests/minute per IP. Up to 100 next/prev runs per call. No auth.

Pure Python on top of croniter + cron-descriptor. Part of the Forge Node API suite — free developer APIs, no signup.