Cron
Cron Expression Parser
Read a cron schedule in plain language and see when it next runs.
Five fields: minute, hour, day of month, month, day of week. A sixth field at the front is read as seconds.
About cron expressions
A cron expression is five fields describing when a job should run: minute, hour, day of month, month, and day of week. Each field takes a number, a list, a range, or a step such as */15. They are compact but easy to misread — especially the two day fields, which combine in a way most people guess wrong — so seeing the schedule spelled out and dated is usually faster than reasoning it through.
Beyond the five numeric fields, most cron implementations — including the parser behind this tool — also accept three-letter names for months and weekdays (JAN, MON) instead of numbers, and a handful of shorthand macros like @daily, @hourly, and @weekly that expand to the equivalent numeric expression. These exist purely for readability; @daily and "0 0 * * *" schedule identically. Not every cron implementation supports every macro, though, so double-check against your specific scheduler's documentation before relying on one in production.
Where you'll run into it
- Checking a crontab entry before deploying it to a server
- Reading a schedule in a Kubernetes CronJob or CI pipeline
- Working out why a nightly job fired at an unexpected hour
- Writing a new backup or cleanup schedule from scratch
Frequently asked
What happens if I set both day of month and day of week?
They combine with OR, not AND — the job runs when either matches. So "0 0 13 * 5" fires on the 13th of every month and on every Friday, not only on Friday the 13th. This is the single most common cron mistake.
Which timezone are the run times in?
UTC. Real schedulers use the timezone of the machine or of the job definition, so if your server runs on local time the actual firing times will be shifted. Check the scheduler configuration before relying on the hour shown here.
Are five-field and six-field expressions both supported?
Yes. Five fields is standard Unix cron starting at minutes. A sixth field at the front adds seconds, which is what Quartz, Spring, and several job libraries expect.
Can I write @daily or MON instead of numbers?
Yes. Three-letter names for months and weekdays (JAN, MON, and so on) and shorthand macros like @daily, @hourly, and @weekly are both accepted here and expand to the equivalent numeric fields — @daily is identical to "0 0 * * *". These are widely, but not universally, supported: some minimal or embedded cron implementations only accept the plain five-field numeric form, so it's worth checking your actual scheduler's documentation before depending on a macro in production.