Cron Expression Generator
Create cron expressions with a visual builder, translate them into plain English, and preview the next execution times. Choose from common presets or edit each field individually. 100% client-side — nothing leaves your browser.
┌───── minute (0-59) │ ┌───── hour (0-23) │ │ ┌───── day of month (1-31) │ │ │ ┌───── month (1-12) │ │ │ │ ┌───── day of week (0-7) * * * * *
At 09:00, on Monday through Friday
How It Works
Choose a schedule
Pick a preset like 'Every hour' or 'Weekdays at 9 AM', or type a cron expression directly.
Review the expression
See a plain English description of your schedule and edit individual fields to fine-tune it.
Verify and copy
Check the next execution times to confirm the schedule is correct, then copy the expression.
Frequently Asked Questions
What is a cron expression?
A cron expression is a string of five fields separated by spaces that defines a recurring schedule. The fields are: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-7, where both 0 and 7 are Sunday). It is used by Unix cron daemons, CI/CD systems, and task schedulers.
What do the special characters mean?
The asterisk (*) means 'every value'. A range like 1-5 means values 1 through 5. A step like */15 means 'every 15th value'. A list like 1,3,5 means those specific values. You can combine them, e.g. 1-10/2 means every 2nd value from 1 to 10.
What time zone does the tool use?
The next execution times are calculated using your browser's local time zone. Cron expressions themselves do not encode a time zone — the time zone depends on the system running the cron job.
What is the difference between 5-field and 6-field cron?
Standard Unix cron uses 5 fields (minute, hour, day of month, month, day of week). Some systems like Quartz and Spring add a sixth 'seconds' field at the beginning. This tool uses the standard 5-field format, which is compatible with crontab, GitHub Actions, and most CI/CD platforms.
Is my data sent to a server?
No. All parsing and schedule calculation happens entirely in your browser using JavaScript. Nothing is sent over the network.