Cron Expression Parser
Inspect cron schedules in readable form.
Fields: minute hour day-of-month month day-of-week. Supports *, ranges (1-5), lists (1,3,5), steps (*/15), names (MON, JAN), and shorthands like @daily.
How it works
A cron expression has five fields in order: minute, hour, day of month, month, and day of week. Each accepts a value, a list such as 1,15, a range such as 1-5, a step such as */15, or the wildcard *, and the parser reports which field is at fault when one of them is out of range.
Alongside the description you get the next five run times, computed from the current moment and shown in your own time zone. Reading those dates is the quickest way to catch an expression that is valid but does not mean what you intended.
The shorthands @hourly, @daily, @midnight, @weekly, @monthly, @yearly, and @annually are expanded before parsing. When both the day-of-month and the day-of-week fields are restricted, cron treats them as an OR, and the preview reflects that.
Switch to the Azure WebJobs format to read NCRONTAB schedules, the six-field syntax with a leading seconds field used by Azure WebJobs and Azure Functions timer triggers. You can paste the expression or a whole settings.job file, and the next run times are computed in UTC, as Azure does by default.
Frequently asked questions
- What do the five fields in a cron expression mean?
- In order: minute 0-59, hour 0-23, day of month 1-31, month 1-12, and day of week 0-7 where both 0 and 7 are Sunday. So 30 9 * * 1-5 is half past nine on weekdays.
- What does */15 mean in cron?
- A step. In the minute field it means every fifteenth minute from the start of the hour, so at :00, :15, :30, and :45. The same syntax works in any field.
- Why does my job run more often than expected?
- Probably because both the day-of-month and the day-of-week fields are set. Cron joins them with OR, so 0 0 1 * 1 fires on the first of the month and on every Monday, not only on a Monday the first.
- Does it support seconds or special characters like L and W?
- Seconds are supported through the Azure WebJobs (NCRONTAB) format, which adds a seconds field in front. Quartz extensions such as L, W, and # are not supported in either format.
- How do Azure WebJobs cron expressions differ from Unix cron?
- Azure WebJobs and Azure Functions use NCRONTAB with six fields: second minute hour day month day-of-week, so 0 */5 * * * * runs every five minutes. Day of week goes from 0 to 6, shorthands like @daily are not accepted, both day fields must match, and schedules run in UTC unless WEBSITE_TIME_ZONE is set.
- In which time zone are the next run times shown?
- In your browser's local time zone. A server usually runs cron in UTC or in its own configured zone, so shift the times accordingly when the two differ.