Cron Expression Generator
Build a cron schedule with dropdowns — no syntax memorizing.
Reviewed by the ToolNestr Editorial Team — July 2026
How cron expressions work
A cron expression is a string of five space-separated fields that define a schedule: minute (0–59), hour (0–23), day of month (1–31), month (1–12 or names), and day of week (0–7, where 0 and 7 both mean Sunday). Each field accepts a specific syntax that determines when the cron job triggers.
What each field means
Every cron expression has five fields. Here is what each one controls and the values it accepts.
| Field | Range | Allowed values | Example |
|---|---|---|---|
| Minute | 0–59 | *, */n, n, n-m, a,b,c | */5 |
| Hour | 0–23 | *, */n, n, n-m, a,b,c | 9 |
| Day of month | 1–31 | *, n, n-m, a,b,c | 15 |
| Month | 1–12 | *, n, n-m, a,b,c, JAN–DEC | 1 |
| Day of week | 0–7 | *, n, n-m, a,b,c, SUN–SAT | 1-5 |
The asterisk * means "every" — it matches all values in that field. A step value like */5 means "every 5 units." Ranges (1-5) match any value in the range, and lists (1,3,5) match any of the listed values.
Cron syntax at a glance
Beyond simple numbers, cron supports several operators that give you precise control over scheduling.
* — Wildcard
Matches every possible value for the field. For example, * in the hour field means every hour of the day.
*/n — Step
Runs every n units. */15 in the minute field fires at minutes 0, 15, 30, and 45.
n-m — Range
Matches any value between n and m inclusive. 9-17 in the hour field matches 9 AM through 5 PM.
a,b,c — List
Matches any of the comma-separated values. 1,3,5 in the day-of-week field matches Monday, Wednesday, and Friday.
Worked example: "Every weekday at 9 AM"
Let us build the cron expression for a job that runs at 9:00 AM on every weekday (Monday through Friday).
The cron daemon reads this as: "When the minute is 0, the hour is 9, and the day of week is between 1 and 5, run the command." The * fields tell cron not to restrict those dimensions.
Common cron use cases
Cron expressions are used across many domains of software engineering and system administration.
Server job scheduling
System administrators use cron for log rotation, backup scripts, database dumps, certificate renewal, cache invalidation, and system health checks that run at defined intervals.
CI / automation pipelines
Continuous integration systems like GitHub Actions, Jenkins, and GitLab CI use cron expressions for scheduled workflows — nightly builds, weekly regression tests, or monthly dependency updates.
Data processing
ETL pipelines, report generation, data aggregation, and analytics jobs often run on cron schedules. A daily export at midnight or an hourly synch with external APIs are typical patterns.
Learning cron syntax
Developers new to Linux or server administration use interactive generators to build cron expressions without memorising syntax, gradually learning how the five fields combine to form schedules.
Tips for working with cron
Day-of-month AND day-of-week use OR logic
When both fields are restricted (not *), cron runs the job when either condition matches. For example, 0 0 1,15 * 5 runs on the 1st, the 15th, and every Friday — which may be more often than intended. If you need AND logic, use a wrapper script with conditional checks.
Times use the server timezone
Cron reads the system clock and uses the local timezone configured on the server. If your server is in UTC but you need a schedule in Eastern Time, set the CRON_TZ or TZ variable at the top of your crontab file (supported by Vixie cron and modern forks).
Test before deploying
Always verify your cron expression before putting it into production. Use the next-run preview above to confirm the timing is what you expect. A mistake like * * * * * for a database backup job could run your backup script every 60 seconds.
Be mindful of daylight saving time
Cron jobs scheduled during a DST transition may skip an hour (spring forward) or repeat (fall back). Jobs at 2:30 AM may behave unpredictably twice a year. Where possible, schedule critical jobs outside DST windows or use UTC-based scheduling.
Redirect output for debugging
Cron sends output by email to the crontab owner. Always add output redirection to your cron jobs: 0 3 * * * /usr/bin/backup.sh >> /var/log/backup.log 2>&1. This captures both stdout and stderr into a log file you can inspect later.
Related tools
If you already have a cron expression and need to understand what it does, try these complementary tools.
Frequently asked questions
What do the five cron fields mean?
Minute, hour, day-of-month, month, and day-of-week, in that order.
How do I run something every 5 minutes?
Use */5 * * * *.
What timezone does cron use?
Usually the server local timezone — set or check TZ/CRON_TZ if needed.
What does */n mean?
Every n units — */5 in minute field means every 5 minutes.
What happens if both day-of-month and day-of-week are set?
Cron uses OR logic — the task runs when either field matches the current date.
How do I schedule something for weekdays only?
Use 1-5 in the day-of-week field (Monday=1 through Friday=5).
What is the difference between cron and crontab?
Cron is the scheduler daemon; crontab is the file that lists cron jobs. Each line in a crontab is a cron expression followed by a command.
Is this tool private?
Yes — all processing happens in your browser. No data is sent to any server.