No Login Data Private Local Save

Cron Expression Tester – See Next 10 Execution Times

31
0
0
0

Cron Expression Tester

Test your cron expressions and preview the next execution times instantly

Quick Presets:
*/5 * * * * 0 * * * * 0 0 * * * 0 0 * * 0 0 0 1 * * 30 9 * * 1-5 0 0 1 1 * */30 8-18 * * 1-5
Expression Breakdown:
Next 10 Execution Times
Local Time
# Date & Time Day Relative

No matching execution times found in the next 10 years.

This cron expression may never execute (e.g., February 30th).
Cron Field Reference
Field Position Allowed Values Special Characters
Minute 1st 0 – 59 * , - /
Hour 2nd 0 – 23 * , - /
Day of Month 3rd 1 – 31 * , - / ?
Month 4th 1 – 12 or JAN – DEC * , - /
Day of Week 5th 0 – 7 or SUN – SAT (0 & 7 = Sunday) * , - / ?
Frequently Asked Questions
What is a cron expression?

A cron expression is a string of 5 fields separated by spaces that defines a schedule for recurring tasks. Each field represents a unit of time: minute, hour, day of month, month, and day of week. Cron expressions are widely used in Unix/Linux systems, job schedulers, and cloud platforms to automate repetitive tasks like backups, reports, and data processing.

How do I read a cron expression like */15 * * * *?

This expression means "every 15 minutes." Let's break it down: */15 in the minute field means every 15 minutes starting from 0. The * in hour means every hour, * in day of month means every day, * in month means every month, and * in day of week means every day of the week. So together it triggers at :00, :15, :30, and :45 of every hour, every day.

What do special characters like *, ,, -, and / mean?

* (asterisk) – Matches all possible values (e.g., every minute).
, (comma) – Lists multiple values (e.g., 1,15,30 matches 1, 15, and 30).
- (hyphen) – Defines a range (e.g., 9-17 matches 9 through 17).
/ (slash) – Specifies step increments (e.g., */5 means every 5 units starting from 0).

What does ? mean in a cron expression?

The ? character is used in some cron implementations (like Quartz Scheduler) for the day-of-month or day-of-week fields to indicate "no specific value." It's useful when you want to specify one of these fields but leave the other as "any." For example, 0 0 15 ? * means "midnight on the 15th of every month, regardless of the day of the week." In standard Unix cron, ? is treated the same as *.

How do I schedule a task to run every weekday at 9 AM?

Use the expression 0 9 * * 1-5. This means: minute 0, hour 9, every day of the month, every month, but only Monday through Friday (days 1-5). The day-of-week field uses 0 for Sunday, 1 for Monday, up to 6 for Saturday (7 is also accepted as Sunday).

What is the difference between 0 0 * * * and @daily?

0 0 * * * is the standard cron expression for "daily at midnight." @daily is a shorthand macro that expands to the same schedule. Other macros include @hourly, @weekly, @monthly, @yearly, and @reboot. Note that this tool works with standard 5-field cron expressions; macros like @daily need to be converted to their equivalent cron expression first.

Can cron expressions handle time zones?

Standard cron expressions do not include timezone information—they run based on the server's local timezone. If your server is set to UTC, a cron job scheduled with 0 9 * * * will run at 9:00 AM UTC. Some modern schedulers (like AWS EventBridge or Quartz) support timezone-aware cron expressions. This tester displays times in your browser's local timezone for preview purposes.

How are day-of-month and day-of-week fields evaluated together?

In standard Unix/Linux cron, if both the day-of-month and day-of-week fields contain specific values (not * or ?), the expression triggers when either condition is met (OR logic). For example, 0 0 15 * 1 triggers at midnight on the 15th of every month AND every Monday, not just Mondays that fall on the 15th. Some schedulers like Quartz use AND logic instead when both fields are specified.

Why does my cron expression never trigger?

Common reasons include: invalid field values (e.g., minute 60), impossible date combinations (e.g., February 30th or April 31st), using ? in a field that doesn't support it, or a mismatch between your server's timezone and your expected execution time. Always test your expressions with a tool like this one before deploying to production.

What are cron expression best practices?

1. Avoid scheduling tasks at exactly midnight (0 0 * * *) to prevent thundering herd problems—use a random offset like 7 2 * * *.
2. Spread heavy jobs across different times to balance server load.
3. Document what each cron job does in comments when using crontab.
4. Test expressions before deploying—use this tester to verify the next execution times.
5. Consider maintenance windows and daylight saving time transitions when scheduling critical tasks.