Cron Expression Parser

Cron expression

Six fields: second, minute, hour, day, month, and day of week.

Examples
EmptyQuartz 6-field

Schedule interpretation

The schedule explanation will appear here.

Not runsec min hour day month dow
Expression reference
Field reference
#FieldRangeSpecial syntaxNotes
1Second0–59* , - /—
2Minute0–59* , - /—
3Hour0–23* , - /24-hour format
4Day of month1–31* , - / ?"?" means "no specific value" — avoids conflicting with day-of-week in the same expression
5Month1–12* , - /, plus names JAN–DECNames map 1:1 to 1–12
6Day of week0–7* , - / ?, plus names SUN–SATBoth 0 and 7 mean Sunday (common cron alias)
Syntax legend
SyntaxMeaningExample
*Every value in the field's range* * * * * * → every second
,A list of specific values0,15,30,45 in the minute field → on the quarter-hour
-An inclusive range9-17 in the hour field → 9am through 5pm
/A step, usually after * or a range*/15 in the minute field → every 15 minutes
?"No specific value" (day-of-month or day-of-week only)0 0 0 * * ? → midnight every day, day-of-week unspecified

About this Cron Expression Parser

Parse six-field cron expressions into a human-readable schedule.

This parser reads the six-field Quartz form — second, minute, hour, day of month, month, day of week — not the five-field Unix crontab form. Day of month and day of week accept ? to mean "no specific value", which is how you avoid the two fields contradicting each other.

FAQ

What do the fields in a cron expression mean?

Six fields, in order: second (0-59), minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, 0=Sunday) — this is Quartz's 6-field form, not the 5-field Unix crontab syntax.

What happens if I set both day-of-month and day-of-week to real values?

Both must match — this parser requires day AND day-of-week when both are restricted, unlike traditional Unix cron, which ORs them. Set whichever field you don't care about to ? instead of a value to avoid over-restricting the schedule.

What does the * wildcard mean?

"Every possible value" for that field.

Does this support standard 5-field Unix cron, or just Quartz syntax?

Quartz's 6-field form only — second, minute, hour, day, month, day-of-week — not the 5-field Unix crontab form, and not Quartz's optional 7th (year) field either. If you have a standard 5-field crontab entry, prepend a 0 for seconds to use it here.

Does it support special characters like L, W, or #?

No — the field grammar accepts *, ? (day fields only), numbers, ranges (a-b), lists (a,b,c), and steps (a/n), but not Quartz's L (last), W (nearest weekday), or # (nth weekday of month) modifiers.

Is my cron expression sent anywhere?

No — parsing runs entirely in your browser.

Related tools