Cron expressions are five fields of terse punctuation, and a wrong guess means a job that silently never runs — or runs a thousand times more often than you meant. Paste one here to read it back in plain English and see exactly when it will next fire.
Cron syntax is compact and unforgiving, and the errors it produces are silent: a job that never runs looks the same as a job that has not run yet. Two mistakes account for most of them. `0 0 * * 0` is weekly, not daily — the fields are minute, hour, day-of-month, month, day-of-week, and it is easy to shift by one. And when both day-of-month and day-of-week are restricted, standard cron runs on either, not on both, so `0 0 13 * 5` fires every Friday as well as every 13th.
This page describes an expression in plain language and lists the next several times it will actually fire, which turns "I think this is right" into something you can check before a job spends a week not running. It reads the standard five-field form — the one crontab, Kubernetes CronJobs and most schedulers use. Quartz and Spring accept a six-field variant with a leading seconds column; drop that column before pasting an expression in here, or every field will be read one position to the left.
The parser expects the standard 5-field crontab format used by Linux cron, Kubernetes CronJobs and most CI systems. Quartz "?" is accepted as a synonym for "*", but Quartz-only extensions such as L, W and # are not supported.
The combination is impossible — most often a date that does not exist, such as "0 0 30 2 *" for the 30th of February. Widen the day or month field and the run list reappears.
Both. Cron accepts 0 and 7 for Sunday, and this tool normalises 7 to 0 internally, so either form produces the same schedule.