Cron Expression Tester
Quick Presets
✓ Valid Expression
At 09:00, on weekdays
Field Breakdown
Minute
0
0-59
Hour
9
0-23
Day of Month
*
1-31
Month
*
1-12
Day of Week
1-5
0-7 (Sun-Sat, 7=Sun)
Next 10 Runs(UTC)
| # | Date & Time | Day | Relative |
|---|---|---|---|
| 1 | Aug 10, 2026, 09:00 | Monday | tomorrow |
| 2 | Aug 11, 2026, 09:00 | Tuesday | in 2 days |
| 3 | Aug 12, 2026, 09:00 | Wednesday | in 3 days |
| 4 | Aug 13, 2026, 09:00 | Thursday | in 4 days |
| 5 | Aug 14, 2026, 09:00 | Friday | in 5 days |
| 6 | Aug 17, 2026, 09:00 | Monday | in 1 weeks |
| 7 | Aug 18, 2026, 09:00 | Tuesday | in 1 weeks |
| 8 | Aug 19, 2026, 09:00 | Wednesday | in 1 weeks |
| 9 | Aug 20, 2026, 09:00 | Thursday | in 1 weeks |
| 10 | Aug 21, 2026, 09:00 | Friday | in 1 weeks |
Want to build visually? Use the Cron Expression Builder to create cron expressions with dropdowns and toggles.
What This Tool Does
Type a 5- or 6-field cron expression to get a plain-English description, a field-by-field breakdown, and the next run times in any timezone — or write "every Monday at 9am" and let the tool generate the cron for you. Everything is computed in your browser. Watch the classic trap: when both day-of-month and day-of-week are restricted, cron runs on either match, not both.
Last updated:
This tool is provided as-is for convenience. Output should be verified before use in any production or critical context.
Programmatic Access
Cron Expression Tester is also callable as a free HTTP JSON API at
https://aidevhub.io/api/cron-expression/parse/ — GET with query
parameters or POST with a JSON body, no authentication, CORS enabled,
50 requests/day per IP. Responses return
{ ok, tool, result, meta }.
curl -s "https://aidevhub.io/api/cron-expression/parse/?expression=0%209%20*%20*%201-5"
Machine-readable contract: /api/tool/cron-tester.json All API endpoints: /agents/ LLM site index: /llms.txt
Agent Invocation
Best Path For Builders
Dedicated API endpoint
Deterministic outputs, machine-safe contracts, and production-ready examples.
Dedicated API
https://aidevhub.io/api/cron-expression/parse/ OpenAPI: https://aidevhub.io/api/openapi.yaml
Unified Runtime API
https://aidevhub.io/api/tools/run/?toolId=cron-tester&a=...
GET and POST are supported at /api/tools/run/ with identical validation and limits.
Limit: 60 req / 60s, input max 128 KB.
How to Use Cron Expression Tester
- 1
Validate cron expression syntax
Paste cron expression: '0 8 * * MON' (every Monday 8am). Tester checks syntax, converts to English ('At 08:00 on Monday'), and shows next 5 run times. Catch typos before deployment.
- 2
Calculate next run time for scheduled jobs
Need to know when your backup cron runs next? Paste expression and current date. Tester shows exact next run datetime. Useful to verify job schedules before SLA commitments.
- 3
Convert natural language to cron expression
Want 'every 15 minutes' or 'daily at 3pm on weekdays'? Describe it, tester suggests cron. Verify suggested cron is correct by checking next 10 run times.
- 4
Debug cron jobs that don't run
If a job never ran, check if cron expression is valid. Paste into tester. If it says 'invalid', that's why job never ran. Fix syntax and redeploy.
- 5
Plan maintenance windows with cron insights
Paste all job crons (hourly backup, nightly cleanup, weekly reports). Tester shows overlap. If too many jobs run at same time, reschedule one to reduce load. Stagger crons efficiently.
Frequently Asked Questions
What is a cron expression?
How do I test a cron expression?
Can I generate cron from natural language?
Is this cron tester free and private?
What's the difference between Cron Builder and Cron Tester?
How do I test a cron expression and see its next run times?
Enter the expression — 0 9 * * 1-5, say — and the tester validates it, describes it in plain English ("At 09:00, on weekdays"), breaks it into fields with their valid ranges, and projects the next runs in the timezone you choose. If you would rather start from words, type "every 5 minutes" or "every Monday at 9am" into the natural-language box and it fills in the cron for you.
Step by step
- Type the cron expression, pick a preset, or write the schedule in natural language.
- Check the plain-English description against what you intended — this catches transposed fields immediately.
- Select the timezone the job will actually run in; next runs are computed against that zone's wall clock, not your local one.
- Read the next-runs table: absolute date and time, weekday, and relative time for the next 5 to 50 executions.
- Copy the expression or the run list once it matches your intent.
Cron field reference
| Field | Allowed values | Notes |
|---|---|---|
| Minute | 0-59 | |
| Hour | 0-23 | 24-hour clock |
| Day of month | 1-31 | ORed with day-of-week when both are restricted |
| Month | 1-12 or JAN-DEC | Names work in ranges and lists too |
| Day of week | 0-7 or SUN-SAT | Both 0 and 7 mean Sunday |
| Second (optional) | 0-59 | Only in 6-field expressions, written before the minute field |
Every field accepts * (any), lists (1,15), ranges (1-5), and steps (*/10), as implemented in this tester. Scheduler-specific extensions such as Quartz's L, W, and # tokens or @reboot are not evaluated here.
What happens when both day-of-month and day-of-week are set?
Standard cron ORs them: 0 0 13 * 5 fires at midnight on the 13th of the month and on every Friday, not only on Friday the 13th. This tester implements the OR rule, matching what Vixie cron and most schedulers do — and it is the single most common way a "monthly" job quietly runs weekly. Restrict only one of the two fields unless you genuinely want the union.
Does the tester support seconds and timezones?
Yes. Six-field expressions with a leading seconds field are parsed and simulated, and the next-run projection evaluates the schedule against the selected timezone's wall clock — including daylight-saving transitions, since each candidate instant is converted through the browser's timezone database. That makes it easy to verify what "03:30 Europe/Berlin" means for a server running in UTC.
Is my schedule sent to a server?
No. Parsing, description, and next-run calculation all happen in the page; nothing is transmitted or stored. Cron schedules describe internal operations — backups, billing runs, deploy windows — and there is no reason a tool needs to see them to compute the next execution times.