Dev Encyclopedia
ArticlesToolsContactAbout

Get notified when new content drops

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

Dev Encyclopedia

A reference for builders

Dev.to
Discord
WhatsApp Channel
daily.dev
Hashnode
X

Content

  • Articles
  • Tools
  • About
  • Contact

Connect

  • support@devencyclopedia.com
  • RSS Feed

Legal

  • Privacy Policy
  • Terms of Service
  • Disclaimer

© 2026 Dev Encyclopedia

Back to top ↑
  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
Zeeshan Tofiq

Zeeshan Tofiq

Full Stack Developer

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).

Tool

Cron to systemd Timer Converter

Validated your expression? Paste the full crontab line here to get a ready-to-save systemd .timer and .service pair.

Zeeshan Tofiq

Zeeshan Tofiq

Full Stack Developer

Full stack developer with over 6 years of experience building production applications. Writes practical guides on JavaScript, TypeScript, React, Node.js, and cloud infrastructure. Focused on helping developers solve real problems with clean, maintainable code.

Enjoyed this article?

Get practical dev guides, tool updates, and new articles delivered straight to your inbox. No spam, unsubscribe anytime.

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. 1Monday, July 20, 2026 at 09:00 AM UTC
  2. 2Tuesday, July 21, 2026 at 09:00 AM UTC
  3. 3Wednesday, July 22, 2026 at 09:00 AM UTC
  4. 4Thursday, July 23, 2026 at 09:00 AM UTC
  5. 5Friday, July 24, 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', () => { /* ... */ });