cronuru
Tool

Cron Expression Validator

Paste a cron expression to check it for more than syntax. The validator flags the issues that actually cause production incidents — the day-of-month / day-of-week OR-trap, missing Quartz `?` placeholders, unsupported special characters, GitHub Actions' 5-minute minimum, and schedules that land in a daylight-saving transition window.

Valid, with 1 warning

At 12:00 AM, on day 1 of the month, and on Monday

  • WarningDay-of-month AND day-of-week both set

    In Unix cron, the job runs on days matching EITHER field, not both — "1" (day-of-month) OR "1" (day-of-week). This usually fires more often than intended.

How to use it

  1. 01

    Paste your expression

    Type or paste the cron expression you want to check into the input field.

  2. 02

    Pick the target dialect

    Choose the scheduler you're targeting — Unix, Quartz, Kubernetes, AWS EventBridge, Spring, or GitHub Actions. Validation rules differ by dialect.

  3. 03

    Read the findings

    Errors mean the expression won't work on that platform. Warnings flag likely-unintended behavior. Notes are advisory heads-up about frequency, DST, and overlap.

  4. 04

    Fix and re-check

    Edit the expression and the findings update instantly. A green banner means it's clean for the selected dialect.

Frequently asked questions

How is this different from the parser?
The parser tells you what an expression does — a plain-English description and the next run times. The validator tells you what's wrong or risky about it: syntax errors, the DOM/DOW OR-trap, missing `?` placeholders, unsupported characters, platform minimums, and DST-window scheduling. Use the parser to understand, the validator to catch mistakes before they ship.
What is the day-of-month / day-of-week trap it warns about?
In Unix-family cron, if you set both the day-of-month and day-of-week fields to anything other than `*`, the job runs on days matching EITHER field — not both. So `0 0 1 * 1` runs on the 1st of every month AND every Monday, not 'the 1st only if it's a Monday.' The validator flags this whenever both day fields are constrained. See the dedicated DOM/DOW trap guide for the full explanation.
Why does it say my expression needs a ? placeholder?
Quartz and AWS EventBridge require exactly one of the day-of-month or day-of-week fields to be `?` (the 'no specific value' placeholder) whenever the other field is set. If neither is `?`, the expression is invalid on those platforms. The validator catches this and tells you which field to change.
What severity levels does it use?
Three. Errors mean the expression is invalid for the selected dialect and won't run. Warnings mean it's syntactically valid but probably does something you didn't intend (like the DOM/DOW trap). Notes are advisory — frequency reminders, DST-window heads-up, and overlap risk.
Is my expression sent to a server?
No. All validation runs in your browser. Nothing is logged, stored, or transmitted.