Dev Encyclopedia
ArticlesTools

Get notified when new content drops

No spam. Just new articles, tools, and updates — straight to your inbox.

Dev Encyclopedia

A reference for builders

Content

  • Articles
  • Tools
  • Contact

Connect

  • support@devencyclopedia.com
  • RSS Feed

© 2026 Dev Encyclopedia

Privacy PolicyTermsDisclaimer
  1. Home
  2. /
  3. Tools
  4. /
  5. Cron Expression Builder
Free · Live · No account

Understand any cron expression instantly.

Type or build a cron expression, see the plain-English translation, and preview the next 5 scheduled run times in your timezone — free, no account, no ads.

Common schedules — paste into the tool

ExpressionPlain English
* * * * *Every minute
*/5 * * * *Every 5 minutes
0 * * * *Every hour (at :00)
0 0 * * *Daily at midnight UTC
0 9 * * *Daily at 9:00 AM UTC
0 9 * * 1-5Weekdays at 9:00 AM UTC
0 0 1 * *First day of every month
0 0 * * 0Every Sunday at midnight

Cron field reference

FieldRangeSpecial values
Minute0–59*, */5, 0,30
Hour0–23*, */2, 9
Day of month1–31*, 1, 15
Month1–12*, 1-6, 12
Day of week0–7 (0 and 7 = Sun)*, 1-5, 0,6

Special syntax: * = any · */n = every n · a-b = range · a,b = list

Platform syntax differences

  • Linux crontab / Cloudflare Workers:Standard 5-field cron. This tool validates this format.
  • GitHub Actions:Same 5 fields but always runs in UTC. Minimum interval is every 5 minutes.
  • AWS EventBridge:Supports a 6-field format with an optional seconds field and year field. Also accepts "rate()" expressions.
  • Kubernetes CronJob:Standard 5-field cron. Runs in the pod's timezone, which defaults to UTC.

Frequently Asked Questions

What order are the 5 fields in a cron expression?
bash
# ┌───────── minute (0–59)
# │ ┌───────── hour (0–23)
# │ │ ┌───────── day of month (1–31)
# │ │ │ ┌───────── month (1–12)
# │ │ │ │ ┌───────── day of week (0–7, 0 and 7 = Sunday)
# │ │ │ │ │
  * * * * *
What does * mean in a cron expression?

* means every valid value for this field. In the minute field, * means every minute (0–59). In the hour field, * means every hour.

SymbolMeaningExample
*Every value* in minute = every minute
*/nEvery n values*/5 in minute = every 5 minutes
a-bRange1-5 in day-of-week = Monday to Friday
a,bList0,6 in day-of-week = Sunday and Saturday
How do I run a job every 5 minutes?
bash
*/5 * * * *   # every 5 minutes
*/15 * * * *  # every 15 minutes
*/30 * * * *  # every 30 minutes

The */ prefix means 'every N'. So */5 in the minute field runs at minutes 0, 5, 10, 15... up to 55.

ℹ Info

GitHub Actions: the minimum schedule interval is every 5 minutes. */5 * * * * is the smallest valid schedule. More frequent schedules are silently ignored.

How do I schedule a job for weekdays only?
bash
0 9 * * 1-5   # 9:00 AM, Mon–Fri
0 0 * * 1-5   # midnight, Mon–Fri
0 9 * * 0,6   # 9:00 AM on weekends only

Put 1-5 in the day-of-week field (the 5th field). Values: 0 = Sun, 1 = Mon, 2 = Tue, 3 = Wed, 4 = Thu, 5 = Fri, 6 = Sat. Both 0 and 7 represent Sunday.

What timezone does a cron job run in?
  • By default, cron runs in the system timezone of the server — usually UTC on most cloud hosts.
  • The Next 5 run times on this page show times in your local browser timezone for easy verification.
  • Always confirm your server's timezone before deploying a time-sensitive job.

⚠ Warning

GitHub Actions always runs in UTC regardless of your repository's timezone settings. If you need local time, calculate the UTC offset manually.

What happens when both day-of-month and day-of-week are set?

When both fields are restricted (neither is *), cron uses OR logic — the job runs if either condition is true.

bash
0 0 1 * 1   # midnight on the 1st of every month
            # OR every Monday — whichever comes first

ℹ Info

AND logic (e.g. 'first Monday of the month') is not possible with standard cron. Use application-level scheduling or a cron library that supports named schedules.

Related reading

Tool

CronPulse — Free Cron Job Monitor

Get an email alert when a scheduled job misses its window. Validate the expression here, then monitor it with CronPulse.

Guide

npm Scripts You're Probably Not Using

pre/post hooks and run-s let you sequence npm tasks like a scheduler — the npm equivalent of a cron pipeline.

At 9:00 AM, Monday through Friday

Minute

0

min 0

0–59

Hour

9

9am

0–23

Day

*

any

1–31

Month

*

any

1–12

Weekday

1-5

Mon–Fri

0–7

Presets

Visual Builder

Next 5 Run Times(your local timezone)

  1. 1Thursday, June 4, 2026 at 09:00 AM UTC
  2. 2Friday, June 5, 2026 at 09:00 AM UTC
  3. 3Monday, June 8, 2026 at 09:00 AM UTC
  4. 4Tuesday, June 9, 2026 at 09:00 AM UTC
  5. 5Wednesday, June 10, 2026 at 09:00 AM UTC

Code Usage

bash
# cron-job.org / crontab entry
0 9 * * 1-5  /path/to/script.sh

# Node.js with node-cron
cron.schedule('0 9 * * 1-5', () => { /* ... */ });