Free Tool

Cron Expression Generator & Tester

Build, test, and decode cron expressions. Plain-English description, next 8 runs with timestamps. Supports aliases (@daily, @hourly, etc.).

0 9 * * 1-5

At 09:00 AM, Monday through Friday

0-59

0-23

1-31

1-12

0-6

Common Presets

Next 8 runs (your local timezone)

Thu, May 21, 2026, 09:00 AM

in 3h

Fri, May 22, 2026, 09:00 AM

in 27h

Mon, May 25, 2026, 09:00 AM

in 4d

Tue, May 26, 2026, 09:00 AM

in 5d

Wed, May 27, 2026, 09:00 AM

in 6d

Thu, May 28, 2026, 09:00 AM

in 7d

Fri, May 29, 2026, 09:00 AM

in 8d

Mon, Jun 1, 2026, 09:00 AM

in 11d

What is a cron expression?

A cron expression is a five-field string that schedules when a recurring task should run. It's the scheduling language used by the Unix cron daemon, GitHub Actions workflows, Kubernetes CronJobs, AWS EventBridge, Google Cloud Scheduler, Vercel Cron, and most modern task schedulers. Cron expressions are compact, readable once you learn them, and the universal vocabulary for time-based automation. This free generator lets you build cron expressions with a visual editor, paste any existing expression to see its plain-English description and next 8 run times, and use named aliases like @daily and @hourly.

Cron expression syntax

PositionFieldValuesSpecial characters
1Minute0-59* , - /
2Hour0-23* , - /
3Day of month1-31* , - /
4Month1-12 or JAN-DEC* , - /
5Day of week0-6 (Sun=0) or SUN-SAT* , - /

Special characters explained

CharacterMeaningExample
*Every / any value* * * * * = every minute
,List separator1,3,5 * * * * = at minutes 1, 3, 5
-Range0 9-17 * * * = on the hour, 9am to 5pm
/Step values*/5 * * * * = every 5 minutes

Cron aliases (named shortcuts)

AliasEquivalentDescription
@yearly / @annually0 0 1 1 *Once a year, midnight Jan 1
@monthly0 0 1 * *Once a month, midnight on the 1st
@weekly0 0 * * 0Once a week, midnight on Sunday
@daily / @midnight0 0 * * *Once a day, at midnight
@hourly0 * * * *Once an hour, on the hour

Frequently Asked Questions

What is a cron job?

A cron job is a scheduled task that runs automatically at specified intervals on Unix-like systems. The timing is controlled by a cron expression. The Unix cron daemon reads the user's crontab file (crontab -e) and executes each command when its expression matches the current time. Modern cloud schedulers (GitHub Actions, AWS EventBridge, Vercel Cron) reuse the same expression syntax.

What does */5 mean?

The / character means "every Nth interval." So */5 in the minute field means "every 5 minutes" (at 0, 5, 10, 15, 20, 25, ..., 55). In the hour field,*/2 means every 2 hours. You can combine: */15 9-17 * * 1-5 = every 15 minutes between 9am and 5pm on weekdays.

What's the difference between 5-field and 6-field cron?

Standard Unix cron uses 5 fields (minute, hour, day, month, weekday). Quartz Scheduler (Java) and AWS CloudWatch Events add a 6th field for seconds at the start, and a 7th for year at the end. This tool generates standard 5-field expressions compatible with crontab, GitHub Actions, Kubernetes CronJobs, Vercel Cron, and most cloud schedulers. If your platform uses 6-field cron, prepend a 0for the seconds field.

How do day-of-month and day-of-week interact?

When both fields are restricted (not *), most cron implementations use OR semantics — the job runs when either matches. For example, 0 12 13 * 5 runs at noon on the 13th of the month or any Friday. Some implementations (like Quartz) use AND semantics. When in doubt, leave one of the two as *.

What time zone does cron use?

Traditional Unix cron uses the system's local time zone. GitHub Actions cron uses UTC. AWS EventBridge defaults to UTC. Always check your scheduler's docs — running at "9am" means different wall-clock times depending on the underlying timezone. The "Next runs" preview above uses your browser's local timezone.

Can I have a job run every 30 seconds?

Not with standard 5-field cron — its smallest resolution is 1 minute. For sub-minute scheduling, use a 6-field Quartz expression (with seconds), a wrapper script that runs every minute and triggers two tasks 30s apart, or a different scheduler entirely (e.g., a job queue with delay support like BullMQ or Sidekiq).

How do I test a cron expression without waiting?

Use the "Test / Validate" tab above — paste any expression and you'll see the next 8 run times with both absolute timestamps and relative descriptions ("in 5m", "in 3h"). If the expression is invalid, you'll get a clear error explaining what's wrong.

Need scheduled content publishing?

Quillly lets you schedule blog posts to publish on your timeline. Try it free.