Generate and Understand CRON Expressions with Precision
A powerful tool for generating, parsing, and understanding cron expressions used to schedule recurring tasks. Build complex schedules using natural language, visual builders, or preset templates. Preview next executions in multiple timezones, visualize schedules on a calendar, and bulk export multiple expressions.
The tool features an intelligent natural language parser that converts human-readable phrases into cron expressions. Simply type what you mean and let the tool do the conversion.
"every 30 minutes"→ 0/30 * * * *"every Monday at 9am"→ 0 9 * * 1"every weekday at 9am"→ 0 9 * * 1-5"every day at noon"→ 0 12 * * *The CRON Calculator helps you create and understand cron expressions for scheduling recurring tasks. Whether you're configuring cron jobs, setting up CI/CD pipelines, or scheduling background jobs, this tool makes it easy to build precise schedules.
A cron expression consists of five fields separated by spaces, each representing a time unit. The standard format is:
The first three fields (minute, hour, day) control when a task runs within the day. Use ranges, lists, or wildcards to create flexible schedules.
The last two fields (month, day of week) control which days or months the schedule applies to. Both can be combined for complex date matching.
The tool provides multiple ways to build cron expressions - from natural language to visual field builders with extensive preset options.
Type directly into the main cron input field. The tool validates the expression and shows an error if it doesn't have exactly 5 parts.
Use the five dropdown fields (minute, hour, day, month, day of week) to build your expression visually. Each field includes extensive preset options:
The tool validates each field individually to ensure values are within valid ranges. Invalid expressions show descriptive error messages, and individual field errors are highlighted in red.
Use the reset button to quickly return to the default expression (0 0 * * * - daily at midnight). This clears all custom field selections and natural language input.
The tool calculates and displays the next 5 scheduled execution times based on your cron expression. This helps you verify your schedule is working as expected.
View execution times in your preferred timezone. The tool supports 21 timezones including:
The tool automatically calculates and displays the execution interval - how often your task will run. This helps you understand the frequency at a glance.
Examples: "Every 1 minute", "Every 24 hours", "Every 7 days"
The visual calendar provides an intuitive way to see which days your scheduled task will execute. Navigate through months to plan your schedule visually.
Days when the task will execute are highlighted with a gradient (violet to fuchsia). Today is marked with a ring outline for easy reference.
Use the left/right arrow buttons to navigate between months and view execution days for any month in the year.
The calendar shows a summary indicating how many times the task will execute in the currently viewed month. This helps with capacity planning and understanding workload distribution.
Need to manage multiple cron expressions? The bulk export feature lets you create, manage, and export collections of cron expressions for backup or configuration purposes.
Export your cron expression collection in multiple formats:
Includes expression, description, and next 3 execution times
Human-readable format with comments for each expression
Simple text format: "expression # description"
Four special characters allow you to create complex schedules with minimal syntax:
*Matches any value in the field. "0 0 * * *" runs at midnight every day regardless of month, day, or weekday.
,Separates multiple values. "0 9 * * 1,3,5" runs at 9 AM every Monday, Wednesday, and Friday.
-Defines a range of consecutive values. "0 9 * * 1-5" runs at 9 AM on weekdays only (Monday through Friday).
/Specifies intervals. "*/15 * * * *" runs every 15 minutes. "0 */6 * * *" runs every 6 hours.
The tool includes a library of common schedules you can use with a single click. Each preset card has a "Use This Schedule" button that instantly applies the expression:
* * * * *Runs every single minute. Useful for high-frequency tasks.
0 * * * *Runs at the start of every hour (minute 0).
0 0 * * *Runs once a day at exactly 00:00 (midnight).
0 9 * * *Runs every day at 9:00 AM.
0 0 * * 0Runs every Sunday at midnight.
0 0 1 * *Runs on the 1st of every month at midnight.
0 0 1 1 *Runs on January 1st at midnight every year.
0 9 * * 1-5Runs Monday through Friday at 9:00 AM.
*/15 * * * *Runs every 15 minutes (0, 15, 30, 45).
0 */6 * * *Runs every 6 hours (0, 6, 12, 18).
Each of the five fields in a cron expression has specific valid ranges and meanings:
| Field | Position | Valid Values | Special Allowed |
|---|---|---|---|
| Minute | 1st | 0 - 59 | , - * / |
| Hour | 2nd | 0 - 23 | , - * / |
| Day of Month | 3rd | 1 - 31 | , - * / L W |
| Month | 4th | 1 - 12 | , - * / |
| Day of Week | 5th | 0 - 7 (Sun-Sat) | , - * / L # |
In the Day of Week field, both 0 and 7 represent Sunday. This ensures compatibility with both Unix cron (0) and some other systems (7).
Here are some practical examples of cron expressions for common scheduling scenarios:
30 14 * * 1-5Runs at 2:30 PM on weekdays (Monday-Friday).
0 8,20 * * *Runs twice a day at 8 AM and 8 PM.
0 0 1,15 * *Runs at midnight on the 1st and 15th of every month.
0 12 * * 1Runs at noon every Monday.
*/10 9-17 * * 1-5Runs every 10 minutes during business hours (9 AM - 5 PM) on weekdays.
0 3 * * 0Runs at 3 AM every Sunday (good for weekly maintenance tasks).
Schedule daily or weekly database backups. Example: "0 2 * * *" runs daily at 2 AM when system activity is lowest.
Automate daily, weekly, or monthly report generation. Use "0 6 1 * *" for monthly reports on the 1st at 6 AM.
Clear application caches on a regular schedule. "0 4 * * 0" for weekly Sunday morning cache cleanup.
Sync data from external sources. "*/30 * * * *" for frequent syncs, or "0 0 * * *" for daily midnight sync.
Schedule nightly builds or weekly release pipelines. Use "0 0 * * *" for daily builds at midnight.
Schedule marketing emails. "0 9 * * 1" for weekly Monday morning newsletters at 9 AM.