Toolify

Cron Expression Tester (preview next 5 runs)

Type a 5-field cron expression (min, hour, day-of-month, month, day-of-week) and see the next 5 trigger times. Common presets included.

Next 5 runs
  1. 1.Thursday, May 7, 2026 at 9:00 AM
  2. 2.Friday, May 8, 2026 at 9:00 AM
  3. 3.Monday, May 11, 2026 at 9:00 AM
  4. 4.Tuesday, May 12, 2026 at 9:00 AM
  5. 5.Wednesday, May 13, 2026 at 9:00 AM

How it works

Cron syntax in five fields

Standard cron has 5 space-separated fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-6, 0=Sunday). Each field accepts: a single value (5), a range (1-5), a list (1,3,5), a step (*/15 means every 15), or wildcard (*). Combinations work: 1-5,10/2 means 1-5 then every 2 starting from 10.

This tester uses the strict POSIX/Linux crontab dialect. Some systems extend cron with named months (JAN-DEC) or weekdays (SUN-SAT) — those aren't supported here. Use numeric values for full compatibility.

Common patterns

*/5 * * * * — every 5 minutes. Useful for cache refreshes and short polls.

0 9 * * 1-5 — 9am every weekday. Office-hour reports.

0 0 1 * * — midnight on the 1st of every month. Monthly billing or stats rollups.

0 */6 * * * — every 6 hours (00:00, 06:00, 12:00, 18:00). Long polls.

0 0 * * 0 — midnight every Sunday. Weekly reports.

*/15 9-17 * * 1-5 — every 15 minutes during business hours, weekdays. Active-hour polling.

Day-of-month vs day-of-week

Both fields accept values, but watch out: in the standard dialect, when both fields are set (not '*'), the cron runs when EITHER condition matches, not both. So `0 0 1 * MON` (1st of month, OR Monday) fires more often than you might think.

To restrict to 'first Monday of the month', cron alone can't do it directly — you need to either run a script daily and check day-of-month <= 7 inside, or use a scheduler (Airflow, GitHub Actions schedule + check) that supports more expressive scheduling.

Frequently asked questions

Why do I see 5 runs in my local timezone?

Cron is always in the host's local timezone. Your browser's timezone is what's displayed here. Real cron daemons honor the server's TZ; check your host.

Can I use named months/weekdays?

Not yet — only numeric values. We may add JAN/MON-style aliases later.

What's the difference between * and ?

In standard cron they're identical. Some Quartz dialects use ? to distinguish 'unspecified' for the day-of-month vs day-of-week fields. Standard cron treats them the same.

Why doesn't day-of-month + day-of-week work like I expect?

When both fields aren't '*', standard cron uses OR (matches either). To get AND ('first Monday of month'), you need a wrapper script or a more expressive scheduler.

Does this support seconds?

Standard cron is minute-precision. Some systems add a sixth field for seconds; we don't support that. If you need second precision, use setInterval or a different scheduler.

What's the granularity limit?

Minute-level. Schedules finer than 1 minute aren't expressible in cron.

Can I test cron expressions for years in the past?

We compute forward from 'now'. For historical analysis, use a programming language's cron library.

Does the data leave my browser?

No. Parsing and computation are all local.

Related tools

Last updated: