Cron Expression Parser
Convert cron expressions to plain English and see when they fire next — with timezone support and special-character handling.
Enter a 5-field or 6-field cron expression
Enter a cron expression above
Results will appear as you type.
All processing happens in your browser. Your cron expressions are not transmitted to any server.
Guide
How to use this tool
- 1 Enter your cron expression
Type or paste a 5-field (or 6-field) cron expression into the input field. Results appear as you type.
- 2 Read the plain-English description
Below the input, you'll see a sentence explaining what your expression means — for example, "Every 15 minutes".
- 3 Check the next run times
A list shows the next 8 times your expression will fire, in your selected timezone. Adjust the count with the segmented control (5, 8, or 10).
- 4 Change timezone if needed
Use the timezone selector to view run times in a different timezone. UTC is one click away with the UTC toggle.
- 5 Copy results
Click the copy button next to the description or run-time list to paste them into tickets, docs, or messages.
- 6 Try an example
Not sure where to start? Click any example preset chip to see how common cron expressions are parsed.
Reference
Cron special characters
| Character | Name | Valid in | Example | Meaning |
|---|---|---|---|---|
| * | Wildcard | All fields | * * * * * | Every minute |
| / | Step | All fields | */5 * * * * | Every 5 minutes |
| - | Range | All fields | 0 9-17 * * * | Every hour from 9 AM to 5 PM |
| , | List | All fields | 0 8,12,18 * * * | At 8 AM, noon, and 6 PM |
| L | Last | DOM, DOW | 0 0 L * * | Last day of the month at midnight |
| W | Nearest weekday | DOM only | 0 0 15W * * | Nearest weekday to the 15th |
| # | Nth weekday | DOW only | 0 0 * * 1#1 | 1st Monday of the month |
| ? | No specific value | DOM, DOW | 0 0 1 * ? | Midnight on the 1st (no specific DOW) |
Examples
Common cron expressions
| Expression | Meaning |
|---|---|
| */5 * * * * | Every 5 minutes |
| 0 2 * * * | At 2:00 AM every day |
| 0 9 * * 1-5 | At 9:00 AM, Monday through Friday |
| 0 0 1 * * | At midnight on the 1st of every month |
| 0 0 * * 1#1 | At midnight on the 1st Monday of every month |
Frequently Asked Questions
What is a cron expression?
*/5 * * * * means "every 5 minutes".What do the special characters mean?
*— every value (e.g.,*in the hour field means "every hour")/— step (e.g.,*/15means "every 15")-— range (e.g.,1-5means "1 through 5"),— list (e.g.,1,3,5means "1, 3, and 5")L— last (e.g.,Lin day-of-month means "last day of the month")W— nearest weekday (e.g.,15Wmeans "the weekday closest to the 15th")#— nth occurrence (e.g.,2#3means "the 3rd Tuesday")?— no specific value (used in day-of-month or day-of-week when the other is specified)
What's the difference between 5-field and 6-field cron?
How does the tool handle day-of-month vs day-of-week conflicts?
* or ?), different cron implementations behave differently. This tool uses OR logic (Vixie cron / Cronie default): the job runs if either the day-of-month or the day-of-week matches. A warning banner appears when this situation is detected.What timezone are the run times in?
Is my cron expression sent to a server?
Why do some run times seem to skip months?
0 0 31 * *), those months are skipped. February never has a 31st day, so a "31st of every month" expression only fires in months that have 31 days.Does this tool support named months (JAN, FEB) or named days (MON, SUN)?
What cron implementations does this tool support?
How accurate is the plain-English description?
All processing happens in your browser. Your cron expressions are not transmitted to any server.