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
Validate an expression and describe it in plain English.
| Param | Default | Notes |
|---|---|---|
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}
Predict the next N run times for an expression.
| Param | Default | Notes |
|---|---|---|
expr | (required) | cron expression |
count | 5 | 1..100 |
from | now | ISO 8601 instant to count forward from |
tz | UTC | IANA 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"
Previous N run times. Same parameters as /cron/next.
Does an expression fire at a specific instant?
| Param | Default | Notes |
|---|---|---|
expr | (required) | cron expression |
at | now | ISO 8601 instant to test |
tz | UTC | IANA timezone |
curl "https://forge-node.tail2b516d.ts.net/cron/match?expr=0%20*%20*%20*%20*&at=2026-05-12T10:00:00Z"
# {"match":true, ...}
Build a cron expression from structured input. Choose a frequency type and fill the relevant fields.
| Field | Type | Used for |
|---|---|---|
type | string | every_minutes, hourly, daily, weekdays, weekends, weekly, monthly, yearly |
value | int 1..59 | every_minutes only |
minute | int 0..59 | all (default 0) |
hour | int 0..23 | daily / weekdays / weekends / weekly / monthly / yearly |
day_of_week | int 0..6 | weekly (0=Sun..6=Sat) |
day_of_month | int 1..31 | monthly / yearly |
month | int 1..12 | yearly |
# 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", ...}
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.
Service health check. Returns {"status":"ok"}.
@hourly, @daily, @midnight, @weekly, @monthly, @yearly, @annually. These are expanded server-side. @reboot is not supported (it is a daemon directive, not a schedule).
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.