Validate & Understand CRON Expressions
Paste your CRON expression to check its syntax and see a clear explanation of when it will run. Our validator detects errors and shows the next scheduled execution times for your cron job.
The task runs at 0 minutes, at 9 AM, from Monday to Friday.
How CRON Validation and Explanation Works
This validator checks each of the five CRON fields against valid ranges and syntax rules. It verifies that values fall within acceptable bounds (0-59 for minutes, 0-23 for hours, etc.) and that special characters are used correctly.
The explainer then translates each field into plain English, building a complete sentence that describes when the task runs. It handles all special characters: asterisks, ranges, lists, and step values.
Validation checks performed:
- Correct number of fields (5 or 6 depending on mode)
- Each field value within valid range
- Proper syntax for ranges (start-end)
- Valid step values (positive integers)
- Comma-separated lists contain only valid values
- No invalid characters or malformed expressions
The field breakdown tab shows detailed analysis of each position, explaining what constraint it imposes and whether it's valid. Invalid fields are highlighted with specific error messages.
When You'd Actually Use This
Debugging a CRON expression that isn't working
A developer copied a CRON expression from documentation but the job never runs. The validator reveals they used "24" for hour (valid range is 0-23) or included an extra space that broke parsing.
Learning what a complex expression means
Someone inherited a codebase with "30 */4 1-15 * 1-5" and needs to understand it. The explainer breaks it down: "at minute 30, every 4 hours, days 1-15 of the month, Monday through Friday."
Verifying expressions generated by code
A program dynamically builds CRON expressions based on user input. Before deploying to production, the team validates generated expressions to catch bugs in their expression-building logic.
Documenting existing scheduled tasks
An ops team is documenting their infrastructure. They paste each CRON expression into the explainer and copy the human-readable descriptions into their runbooks for future reference.
Teaching CRON syntax to new team members
A senior engineer uses the validator as a teaching tool. They show how different expressions are parsed, what makes them valid or invalid, and how the English translation maps to each field.
Checking expressions before adding to documentation
A technical writer is creating deployment guides that include CRON expressions. They validate each expression to ensure the documentation doesn't contain typos that would break customer installations.
What to Know About CRON Validation
Syntax validation doesn't guarantee logical correctness."60 25 32 13 7" is syntactically invalid (out of range), but "0 3 31 2 *" is syntactically valid yet never runs (February never has 31 days). The validator catches syntax errors, not logic issues.
Different systems support different extensions.Standard CRON doesn't support "L" for last day or "W" for nearest weekday. Some implementations (like Quartz) support these. This validator checks standard Unix CRON syntax.
The 5-field vs 6-field distinction matters.Standard Unix CRON uses 5 fields (no seconds). Some systems like Node.js node-cron or Spring use 6 fields with seconds first. Toggle the mode to match your target system.
Field ranges are zero-indexed for hours and days.Hours go from 0 (midnight) to 23 (11 PM), not 1-24. Days of week go from 0 (Sunday) to 6 (Saturday). This trips up many beginners.
Common gotcha: If both day-of-month and day-of-week are specified (not *), CRON uses OR logic. "0 0 15 * 1" runs on the 15th of any month AND every Monday, not just Mondays that fall on the 15th.
Common Questions
What makes a CRON expression invalid?
Invalid expressions have wrong field count, values outside valid ranges (like minute 75), malformed syntax (like "5-"), or invalid characters. The validator shows exactly which field failed and why.
How do I read the field breakdown?
Each row shows one field: its name, the value in your expression, the valid range, what that field controls, and whether it's valid. Invalid fields show in red with specific error details.
What does "*/5" mean in a field?
The slash creates a step interval. "*/5" in minutes means "every 5 minutes" (0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55). "10-30/5" means starting at 10, every 5th value (10, 15, 20, 25, 30).
Can I use names like "MON" or "JAN"?
Standard Unix CRON doesn't support names—use numbers only. Some extended implementations allow "MON" for Monday or "JAN" for January, but for maximum compatibility, stick to numeric values.
Why does the explanation sound different from my intent?
The explainer translates exactly what the expression says, not what you meant. If you wanted "first Monday of each month" but wrote "0 0 * * 1", the explanation correctly says "every Monday" because that's what the expression actually specifies.
What's the difference between 5-field and 6-field mode?
5-field mode: minute, hour, day, month, weekday (standard Unix CRON). 6-field mode: second, minute, hour, day, month, weekday (used by some libraries). Use the mode that matches your scheduling system.
How do I validate multiple expressions at once?
This tool validates one expression at a time. For batch validation, consider using a script with a CRON parsing library, or validate each expression individually as you build your scheduling configuration.
Other Free Tools
CRON Expression Generator
Free CRON Expression Generator
CRON to English Translator
CRON to English Translator
English to CRON Expression Converter
English to CRON Expression Converter
CRON Expression Tester (Next Run Times)
CRON Expression Tester - See Next Run Times
ASCII to Hex Converter
ASCII to Hex Converter: Text to Hexadecimal Translator
Barcode Generator
Free Barcode Generator
Binary to Text Converter
Binary to Text Converter
Free Printable Calendar Maker
Create & Print Your Custom Calendar
Pie Chart Maker
Free Pie Chart Maker Online