Cron Expression Parser
Paste a cron expression — or a whole line out of a crontab — and read it back in plain English, with the next times it fires. Each column is labelled, so you never have to remember which one is the day of the week. Nothing leaves your browser.
At 09:00 on Monday through Friday.
Reading your clock
The next runs are worked out in your browser, against your own time.
Frequently asked questions
What do the five fields in a cron expression mean?
In order: minute, hour, day of month, month and day of week. So 30 2 * * 1 is 02:30 every Monday. Each column is labelled as you type here, which removes the usual guessing about which position holds the day of the week. A six-field expression is read with seconds in front, as Quartz and several schedulers write it.
What does */5 mean in cron?
Every fifth value of that field, counting from its lowest. In the minute field */5 fires at :00, :05, :10 and so on through :55 — twelve times an hour, not once every five hours. The step applies only to the field it is written in, so */5 in the hour column with 0 in the minute column means 00:00, 05:00, 10:00 and so on.
How do I schedule a job for a specific time every day?
Put the minute and hour you want in the first two fields and leave the rest as asterisks: 15 9 * * * runs at 09:15 every day. Paste it here and the next run times are listed, which is the quickest way to confirm you have not written 9 15 * * * and scheduled it for a quarter past three in the afternoon.
Which time zone are the next run times in?
You choose — the schedule can be shown in your local zone or in UTC, and both are computed from the same fields. Real cron daemons use the system zone unless a CRON_TZ or TZ setting says otherwise, and a container almost always runs in UTC, which is the usual reason a job fires an unexpected number of hours out.
Why does my job run more often than expected when I set both a day of month and a day of week?
Because cron treats those two fields as an OR, not an AND, whenever both are restricted. 0 0 1 * 1 runs on the first of the month and on every Monday, not only on a first that falls on a Monday. It is the most misread rule in crontab, so the explanation here calls it out whenever your expression triggers it.
Does it understand @daily, @hourly and the other nicknames?
Yes. @yearly, @annually, @monthly, @weekly, @daily, @midnight and @hourly are expanded to the fields they stand for and then explained normally, so you can see exactly what time of day @daily means before you rely on it.
Can I paste a whole line from my crontab?
Yes. The schedule is told apart from the command that follows it, so you can copy a line straight out of a crontab or a Kubernetes CronJob manifest without trimming it first, and the command is shown separately from the schedule it runs on.
