Skip to content

Cron Expression Tester

minhourdaymondow

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 & TimeDayRelative
1Aug 10, 2026, 09:00Mondaytomorrow
2Aug 11, 2026, 09:00Tuesdayin 2 days
3Aug 12, 2026, 09:00Wednesdayin 3 days
4Aug 13, 2026, 09:00Thursdayin 4 days
5Aug 14, 2026, 09:00Fridayin 5 days
6Aug 17, 2026, 09:00Mondayin 1 weeks
7Aug 18, 2026, 09:00Tuesdayin 1 weeks
8Aug 19, 2026, 09:00Wednesdayin 1 weeks
9Aug 20, 2026, 09:00Thursdayin 1 weeks
10Aug 21, 2026, 09:00Fridayin 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

GET /api/cron-expression/parse/ GET cron-expression/parse
POST /api/cron-expression/parse/ POST cron-expression/parse

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. 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. 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. 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. 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. 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?
A cron expression is a string of 5 fields (minute, hour, day of month, month, day of week) that defines a recurring schedule. It's used by crontab, systemd timers, CI/CD platforms, and task schedulers to run jobs automatically.
How do I test a cron expression?
Paste your cron expression into the input field, select your timezone, and instantly see the next scheduled run times with human-readable descriptions. The tool supports both 5-field (standard) and 6-field (with seconds) cron formats.
Can I generate cron from natural language?
Yes! Type phrases like 'every Monday at 9am', 'every 5 minutes', 'weekdays at 8:30am', or 'monthly on the 1st at noon' and the tool automatically generates the corresponding cron expression. No API calls — parsing runs entirely in your browser.
Is this cron tester free and private?
Free to use and runs entirely in your browser, your data is not sent to external servers. No account required. Your expressions and schedules stay completely private.
What's the difference between Cron Builder and Cron Tester?
Cron Builder lets you construct cron expressions visually using dropdowns and toggles — ideal when starting from scratch. Cron Tester validates existing expressions, shows when they'll fire, and can generate cron from natural language descriptions.

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

  1. Type the cron expression, pick a preset, or write the schedule in natural language.
  2. Check the plain-English description against what you intended — this catches transposed fields immediately.
  3. Select the timezone the job will actually run in; next runs are computed against that zone's wall clock, not your local one.
  4. Read the next-runs table: absolute date and time, weekday, and relative time for the next 5 to 50 executions.
  5. 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.