Cron Expression Parser
Parse Unix cron expressions and see exactly when they fire.
Type a cron expression and get a human-readable explanation field by field, plus the next few firing times so you can sanity-check the schedule before deploying it. Saves you from running production jobs ten minutes too early because you misread an asterisk.
Common use cases: verifying a cron line in a Kubernetes CronJob manifest, decoding a schedule pulled from a legacy crontab, learning the syntax by experimenting with combinations, and confirming exactly when "every other Tuesday at 3" actually fires.
Cron Expression
Enter a cron expression (e.g., * * * * *)
Cron Syntax Reference
| Field | Range | Special Characters |
|---|---|---|
| Minutes | 0–59 | * , - / |
| Hours | 0–23 | * , - / |
| Day of Month | 1–31 | * , - / |
| Month | 1–12 | * , - / |
| Day of Week | 0–6 (Sun–Sat) | * , - / |
Frequently asked questions
What do the five fields actually mean?
In order:
minute (0–59), hour (0–23), day of month (1–31), month (1–12), day of week (0–6, Sunday is 0). * means "every", */N means "every Nth", A-B means "range", A,B,C means "list".What's the gotcha with day-of-month and day-of-week together?
When both fields are non-
*, most cron implementations treat them as OR, not AND. So 0 12 1 * 1 runs at noon on the 1st of every month and on every Monday — not just on a Monday that falls on the 1st.Why does my schedule drift around DST changes?
Classic cron runs in the server's local time. When clocks spring forward, the 2 a.m. hour is skipped; when they fall back, it runs twice. For predictable schedules, run cron in UTC or use a scheduler that explicitly handles DST (Kubernetes CronJob with
timeZone, GitHub Actions schedule, etc).How do extensions like @hourly, @daily and "L" work?
@hourly, @daily, @weekly, @monthly, @yearly are shortcuts most cron implementations accept. L in the day-of-month field means "last day of the month"; 5L in day-of-week means "last Friday." Not every cron supports these — check your runtime.