How the cron expression generator works
Cron is the time-based job scheduler that has run scheduled tasks on Unix and Linux systems since the 1970s. A cron expression is a compact string of five fields that tells the cron daemon precisely when to execute a command. The fields, in order, are minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, where 0 is Sunday). This cron generator lets you assemble that string visually and confirms its meaning before you ever touch a crontab.
The five fields and their special characters
Each field accepts more than a single number. An asterisk (*) means "every" possible value. A list like 1,15,30 matches several specific values. A range like 1-5 matches a contiguous span (Monday to Friday in the weekday field). A step like */10 means "every tenth value", so */10 in the minute field fires at minute 0, 10, 20, 30, 40 and 50. You can even combine them: 0-30/5 means every five minutes during the first half of each hour. The explainer on this page translates whichever combination you use into a sentence in plain English.
Reading a schedule in plain English
The hardest part of cron is trusting that a string does what you think. 0 9 * * 1-5 looks innocent, but is it 9 AM or 9 PM? Is 1-5 Monday–Friday or Tuesday–Saturday? Our explainer removes the doubt by spelling it out — "At 09:00 AM, Monday through Friday" — and the next-run preview lists the actual upcoming fire times computed in your local timezone, so you can sanity-check the schedule against real dates before deploying it.
Common cron recipes
*/5 * * * *— every 5 minutes, a popular health-check interval.0 * * * *— once an hour, on the hour.0 0 * * *— once a day at midnight, ideal for nightly backups.0 9 * * 1-5— 9 AM on weekdays, common for business-hours reports.0 0 1 * *— midnight on the first of every month, for monthly rollups.
Five-field vs. six-field cron
This tool generates the standard five-field Vixie/Unix cron format used by Linux crontab, most managed schedulers, and Kubernetes CronJobs. Some systems — notably the Quartz scheduler in the Java ecosystem and certain libraries like node-cron — use a six-field variant that adds a leading seconds field. If your platform needs seconds precision, generate the five-field expression here and prepend a seconds value (for example 30 for "at the 30-second mark"). Always check your scheduler's documentation, because day-of-week numbering and the handling of the special string ? differ between implementations.
A note on overlapping day fields
One classic gotcha: when you restrict both the day-of-month and the day-of-week fields, standard cron runs the job whenever either condition matches, not both. So 0 0 13 * 5 fires on the 13th of the month and on every Friday, not only on Friday the 13th. The plain-English explainer here reflects standard cron behaviour so you are not caught out. When you are done, copy the expression and explore the epoch converter and timezone converter to round out your scheduling toolkit.