Cron Expression Explainer
Read any cron expression in plain English, see its next run times, and build new schedules without memorising the syntax.
Runs in your browser. Nothing you add is uploaded.
What the Cron Expression Explainer does
Cron expressions schedule jobs on Linux servers, in CI pipelines, cloud schedulers and many web frameworks, but five fields of numbers and asterisks are hard to read correctly. Paste an expression like 30 2 * * 1-5 and this explainer translates it into plain English — "at 02:30 on weekdays" — breaks down each field, and lists the next times it will run in your time zone or in UTC. It checks every value, warns about the mistakes that make jobs run at the wrong time, and understands names, @daily shortcuts and the L, W and # characters. Because the same text means different things in different schedulers, it can read an expression the way Linux crontab, Spring, Quartz or AWS EventBridge would. To write a new one, switch to the builder and pick how often it should run.
How to read a cron expression
- Paste or type a cron expression: minute, hour, day of month, month and day of week. Six- and seven-field expressions with seconds or a year are recognised too.
- If it came from Spring, Quartz or AWS, check that Read as shows the right scheduler — they number weekdays differently.
- Read the plain-English description and the field-by-field breakdown, and fix anything marked as an error or warning.
- Check the next run times, in your time zone or in UTC for GitHub Actions and cloud schedulers.
- Or switch to Build a schedule, choose how often it runs, and copy the expression into your crontab, workflow file or scheduler.
The Cron Expression Explainer runs entirely in your browser — nothing you enter is uploaded, stored, or logged.
When to use it
Checking a schedule before deploying
A backup job meant for 2 a.m. daily written as * 2 * * * actually runs every minute between 2:00 and 2:59 — sixty times. Reading the explanation before deploying catches that kind of mistake.
Understanding someone else's crontab
Inherited servers often have dozens of undocumented jobs. Translating each line tells you what runs when, which is the first step to cleaning them up.
Writing CI and cloud schedules
GitHub Actions, Kubernetes CronJobs and most cloud schedulers use the same five-field syntax. Build the expression here, then paste it into the workflow file.
Good to know
- Most cron systems run in UTC unless configured otherwise. 30 3 * * * in UTC is 9:00 a.m. in India.
- When both day of month and day of week are set, classic cron runs the job when either matches, not only when both do.
- */15 in the minute field means every 15 minutes starting at :00, not every 15 minutes from when the job was installed. A step that doesn't divide 60, such as */7, leaves a short gap at the end of each hour.
- GitHub Actions runs scheduled workflows at most every 5 minutes, in UTC, and may start them a few minutes late when it's busy.
- Avoid scheduling many jobs at exactly midnight or on the hour; spreading them by a few minutes reduces load spikes.
Frequently asked questions
What do the 5 asterisks in a cron expression mean?
Why does my 6-field cron expression mean something different?
What do the symbols * , - and / mean?
Is Sunday 0 or 7?
Can cron run a job every 30 seconds?
Related tools
Regex Builder
Build a regular expression from blocks, with live matches.
SQL Formatter
Format, beautify, and minify SQL queries for Postgres, MySQL, and SQLite.
JSON to YAML Converter
Convert bidirectional JSON to YAML and YAML to JSON with presets.
Chmod Permissions Calculator
Interactive 3x3 Linux permissions matrix, octal sync, and command generator.