Cron Expression Validator
Paste any cron expression to validate syntax, see a human-readable explanation, and preview upcoming runs.
When a cron expression validator saves you
Cron expressions are compact, but a single typo changes the schedule completely. 0 3 * * * runs a task at 3 AM every day. 0 3 * * (one field missing) is invalid, and the cron daemon will silently ignore it. And 3 * * * * is valid but runs the task every hour at minute 3 instead of once a day. The difference between a syntax error and a logic error is that cron rejects the first one immediately, while the second runs incorrectly for weeks before anyone notices.
This validator checks the syntax, shows a human-readable explanation, and previews the next 5 runs — so you see the actual schedule before writing it to crontab.
Common mistakes this catches
Most cron expression errors fall into a few categories. The first is the wrong number of fields. A standard crontab expects exactly 5 fields (minute, hour, day of month, month, day of week). Add a sixth, and depending on the system it will either be interpreted as a year field or cause an error.
The second is confusing field order. 0 */2 * * * runs a task every 2 hours, while */2 0 * * * runs every 2 minutes but only at midnight. The fields look similar, but the order changes everything.
The third is using 0 and 7 for Sunday. Both values are valid, but not all systems handle them the same way. Kubernetes CronJobs follow the standard format, Laravel's scheduler does too, but some legacy systems behave differently.
The fourth is range boundaries. Day of month accepts 1–31, but 0 0 31 2 * (February 31st) is syntactically valid — cron will simply skip that day. The validator checks syntax, not calendar logic — worth keeping in mind.
Beyond validation
If you need to build an expression from scratch rather than validate an existing one, try the Cron Expression Builder with its visual interface and presets for common schedules.
For tasks already running in production, syntax validation is only the first step. A task can be configured correctly and still stop working: the script crashes, the disk fills up, a dependency updates and breaks compatibility. Cron job monitoring catches exactly that — if a task stops reporting, you get an alert instead of silence.
Cron syntax quick reference
| Field | Values | Special |
|---|---|---|
| Minute | 0–59 | * , - / |
| Hour | 0–23 | * , - / |
| Day of Month | 1–31 | * , - / |
| Month | 1–12 | * , - / |
| Day of Week | 0–7 (0 and 7 = Sun) | * , - / |