Cron Expression Generator & Explainer
Build a cron schedule by clicking, or paste one you found and see what it means in plain English. You also get the next run times, so you know it does what you expect.
- Free
- No sign-up
- Runs in your browser
Quick presets
Calculated in your browser from the current time. Daylight-saving changes are respected for your own time zone.
Everything runs in your browser. What you type here is never uploaded, stored or sent anywhere.
What is a cron expression?
Cron is the scheduler built into Linux and Unix systems. A cron expression is a short string of five fields that says when a job should run: minute, hour, day of the month, month and day of the week. For example, 30 2 * * 0 means "at 02:30 every Sunday". An asterisk means "every", a slash means "every n-th" (so */15 is every 15 minutes), a dash is a range and a comma is a list.
The format is compact, which makes it easy to get wrong. It is also easy to mix up the order of the fields or forget that the day of the month and the day of the week work as an "or", not an "and". This tool shows you exactly what an expression means and when it will next run, so you can check it before it goes anywhere near production.
One thing to remember: cron uses the time zone of the machine that runs it, which on most servers is UTC. If you are in India (IST, UTC+5:30), a job set for 0 9 * * * on a UTC server runs at 14:30 your time. Switch the preview to UTC to see the schedule the way the server sees it. Writing the server config too? Try the .htaccess Generator and the Nginx Config Generator.
How to create a cron expression
- Start from a preset such as Every 5 minutes or Weekdays at 9:00, or type into the five boxes.
- Use the small quick-pick buttons under each box to fill in common values like
*/5,1-5or0,6. - Read the plain-English line to check it says what you mean, and look at the next run times.
- Type the command you want to run, then copy the finished crontab line. Use the other tabs for GitHub Actions or Kubernetes.
- Already have an expression? Paste it into the Full expression box to get an explanation.
Where cron schedules are used
- Linux crontab entries for backups, log cleanup, report emails and scripts.
- WordPress and PHP scheduled tasks triggered from a real server cron instead of WP-Cron.
- GitHub Actions workflows that run on a schedule.
- Kubernetes CronJobs and many hosting dashboards (cPanel, Plesk, Cloudways) that take a cron expression.
- Checking someone else's crontab so you understand what it does before you change it.
Frequently asked questions
What do the five fields in a cron expression mean?
From left to right: minute (0-59), hour (0-23), day of the month (1-31), month (1-12 or JAN-DEC) and day of the week (0-6 or SUN-SAT, where 0 and 7 both mean Sunday). So 0 9 * * 1-5 is 09:00 from Monday to Friday.
How do I run a cron job every 5 minutes?
Use */5 * * * *. The */5 in the minute field means every 5th minute. For every 10 minutes use */10, for every hour use 0 * * * *.
What happens if I set both day of month and day of week?
Standard cron runs the job when EITHER field matches. 0 0 13 * 5 runs on the 13th of every month and also on every Friday, not just on Friday the 13th. The tool warns you when you set both.
Does this support seconds or Quartz expressions?
No. It uses the standard 5-field format used by Linux cron, GitHub Actions and Kubernetes. Quartz and Spring use 6 or 7 fields with seconds and extra characters like ?, L and W, which are not valid in a normal crontab.
Which time zone does cron use?
The time zone of the machine or service running it, which is usually UTC on cloud servers and CI systems. GitHub Actions always uses UTC. Use the UTC option in the preview to see the run times the way the server will.
Why did my cron job not run?
The usual causes are a wrong time zone, a command that needs a full path (cron has a very small PATH), a script that is not executable, or output and errors going nowhere. Redirect output to a log file, for example >> /var/log/job.log 2>&1, and check it.
