Cron Expression Parser

Parse standard 5-field cron expressions. Get a plain-English description and the next 10 fire times in your local timezone. Useful when writing a new cron, debugging why one didn't fire, or converting between cron and human schedules.

Standard cron syntax

┌──────── minute       (0 - 59)
│ ┌────── hour         (0 - 23)
│ │ ┌──── day of month (1 - 31)
│ │ │ ┌── month        (1 - 12)
│ │ │ │ ┌ day of week  (0 - 6, Sunday = 0)
│ │ │ │ │
* * * * *  command

Common expressions

ExpressionMeaning
* * * * *Every minute
*/5 * * * *Every 5 minutes
0 * * * *Every hour, on the hour
0 9 * * *Daily at 9:00am
0 9 * * 1-5Weekdays at 9:00am
0 0 1 * *First day of each month at midnight
0 0 1 1 *New Year's day at midnight
*/15 9-17 * * 1-5Every 15 minutes from 9am-5pm on weekdays

Quirks to watch

Day-of-month vs day-of-week. When both fields have values (neither is *), standard cron triggers when either matches — which is rarely what people expect. To restrict to a specific day AND weekday, you need application logic, not pure cron syntax.

Timezone. Standard cron uses the system timezone of the host running it. If your server is UTC and you write 0 9 * * *, that fires at 9am UTC. The "next fires" panel in this tool uses your browser's local timezone for readability.

Non-standard extensions. Quartz (Java) and cronie (Linux) add 6th field for seconds, special strings (@hourly, @daily), and L/W/# modifiers (last day, weekday-nearest, nth-day-of-week). This parser handles standard 5-field syntax plus @hourly / @daily / @weekly / @monthly / @yearly aliases.