Cron Expression Generator
Build and validate cron expressions visually — no syntax memorization needed
How to Use the Cron Expression Generator
- Edit each field (minute, hour, day, month, weekday) or use a preset.
- The cron expression and plain-English explanation update in real time.
Standard 5-field cron syntax. Use * for any, */N for intervals, 1,3,5 for lists, 1-5 for ranges.
What is a Cron Expression?
A cron expression is a string of 5 or 6 fields that defines a schedule for recurring tasks in Unix-like systems. The fields represent: minute, hour, day of month, month, day of week (and optionally seconds). Cron is used in Linux servers, CI/CD pipelines, cloud schedulers (AWS EventBridge, GitHub Actions), and databases.
Common Uses
- Scheduling daily database backups (0 2 * * *)
- Running hourly data sync jobs (0 * * * *)
- Setting up weekly reports every Monday morning (0 9 * * 1)
- Configuring GitHub Actions scheduled workflows
Frequently Asked Questions
What does * mean in a cron expression?
* means "every" — every minute, every hour, every day, etc. for that field. So * * * * * runs every minute. 0 * * * * runs at the start of every hour.
What is the difference between 5-field and 6-field cron?
Standard Unix cron uses 5 fields (minute to day-of-week). Some systems (Spring, Quartz, AWS) add a seconds field as the first field. Always check which format your scheduler expects.
How do I run a job every 15 minutes?
Use the */15 syntax: */15 * * * * — the / operator means "every N". Similarly */2 * * * * runs every 2 minutes.
Notes from this implementation
Five fields, or six, depending on who runs it
The generator builds a cron expression from controls for minute, hour, day of month, month, and day of week. That is the classic five-field crontab. Quartz and some cloud schedulers add a seconds field on the left, or a year field on the right. A expression this page calls “every hour” can fire every second if you paste it into a six-field runner that treats the first number as seconds.
Day-of-month and day-of-week interact. In classic cron, if both are restricted, many implementations fire when either matches. Read the explainer page on the expression you generated before you put it on a production scheduler. “Every weekday at 09:00” is not the same string as “the 1st through the 5th of the month.”