DevOps engineers write cron expressions for Kubernetes CronJobs, AWS EventBridge rules, and Linux crontab entries. When you need a job to run at 2:30 AM every weekday, writing '30 2 * * 1-5' by hand is easy to get wrong. This generator builds the expression visually and shows the human-readable meaning so you can verify it before deploying.
Backend developers schedule background jobs using cron. A payment processing system that runs reconciliation at midnight on the first of every month needs the expression '0 0 1 * *'. Testing that expression before deploying prevents missed runs that could affect financial reporting.
QA engineers verify cron schedules before production deployment. If a data pipeline is supposed to run every 15 minutes during business hours, the expression '*/15 9-17 * * 1-5' needs to be checked. The next execution times list shows exactly when the job will fire, so you can confirm it matches expectations.
System administrators maintain existing crontab files. When you inherit a server with the expression '0 23 ? * MON-FRI' and need to understand what it does, paste it into the parser to get 'At 11:00 PM, Monday through Friday' instantly.
A standard cron expression has five fields separated by spaces: 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 represent Sunday). Each field accepts specific values and special characters.
The asterisk (*) matches every value in the field's range. A slash (/) defines step values: */15 in the minute field means every 15 minutes. A comma (,) creates a list: 1,3,5 means values 1, 3, and 5. A hyphen (-) creates a range: 9-17 means 9 through 17.
This tool uses the cronstrue library to convert your expression into a plain English description, and the cron-parser library to calculate the next 5 execution times. Both libraries support the full standard cron syntax including special characters like L (last), W (nearest weekday), and # (nth weekday of month).
The visual builder lets you set each field independently. As you type, the expression updates in real time and the human-readable description changes to match. You can also paste an existing expression into the input field and the builder fields will populate automatically.
Input
*/5 * * * *
Output
Every 5 minutes
Common for health checks and polling
Input
0 9 * * 1-5
Output
At 09:00 AM, Monday through Friday
Weekday morning job
Input
0 0 1 * *
Output
At 00:00 (midnight) on day 1 of every month
Monthly report generation
Input
0 */6 * * *
Output
At minute 0 past every 6th hour
Every 6 hours for batch processing
Input
30 23 * * 0
Output
At 11:30 PM on Sunday
Weekly backup on Sunday night
Pitfalls to avoid
What is a cron expression?
A cron expression is a string of five or six fields that defines a schedule for running tasks. The five fields are: minute, hour, day of month, month, and day of week. For example, '0 9 * * 1-5' means 'at 9:00 AM, Monday through Friday'.
What do the special characters mean?
Asterisk (*) means 'every value'. Slash (/) means 'step values' (*/5 = every 5). Comma (,) means 'list of values' (1,3,5). Hyphen (-) means 'range' (1-5). L means 'last' (last day of month). W means 'nearest weekday' (15W = nearest weekday to the 15th).
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) add a seconds field at the beginning, making it 6 fields. This tool focuses on the standard 5-field format.
How accurate are the next execution times?
The next execution times are calculated using the cron-parser library, which handles all standard cron syntax including ranges, steps, lists, and special characters. Times are shown in your local timezone.
Can I use this for Kubernetes CronJobs?
Yes. Kubernetes CronJobs use the standard 5-field cron syntax. Generate your expression here, then paste it into your CronJob manifest's schedule field.
What does the @yearly or @daily notation mean?
These are cron nicknames. @yearly (or @annually) equals '0 0 1 1 *'. @monthly equals '0 0 1 * *'. @weekly equals '0 0 * * 0'. @daily (or @midnight) equals '0 0 * * *'. @hourly equals '0 * * * *'.
Why does my cron job run at the wrong time?
The most common cause is a timezone mismatch. Cron jobs run in the server's system timezone. If your server is in UTC but you wrote the expression in your local timezone, the job will run at the wrong time. Use the UTC Time Now tool to check the current UTC time.
What happens when day of month and day of week are both set?
In standard cron, when both day of month and day of week are restricted (not *), the job runs if either condition is met. This is an OR relationship. For example, '0 0 13 * 5' runs on the 13th of the month OR on any Friday.
This tool supports standard 5-field cron syntax. Some systems (Quartz, Spring, AWS EventBridge) extend cron with additional fields or use different numbering. Always verify your expression works in your target system. The next execution times are calculated in your browser's local timezone.