TuttiTools

Cron Expression Describer

Parse and describe cron expressions in a human-readable format

minute
hour
day(month)
month
day(week)
Description
At 09:00, on Monday through Friday

Quick Examples

What is a Cron Expression?

Cron is a time-based scheduling system used in Unix-like operating systems. A cron expression is a compact string that defines when a scheduled task should run — for example, every day at midnight, every 15 minutes, or on the first Monday of each month.

Cron expressions are used in server automation, CI/CD pipelines, cloud functions, database backups, and many scheduled task systems. The syntax uses five (or six) space-separated fields representing minute, hour, day of month, month, and day of week. While powerful, the format can be hard to read and easy to misconfigure.

What Does This Tool Do?

This tool parses a cron expression and describes what it means in plain language. Enter an expression and instantly see a human-readable explanation of when it will trigger — no guessing, no searching through documentation.

How to Use This Tool

  1. Type or paste a cron expression into the input field.
  2. The plain-language description appears immediately.
  3. The next few scheduled run times may also be shown.

Cron Expression Format

┌─────────── minute (0–59)
│ ┌───────── hour (0–23)
│ │ ┌─────── day of month (1–31)
│ │ │ ┌───── month (1–12)
│ │ │ │ ┌─── day of week (0–6, Sunday=0)
│ │ │ │ │
* * * * *

Special characters: * (any), , (list), - (range), / (step).

Common Use Cases

Ready-to-Use Cron Recipes

ExpressionMeaning
0 0 * * *Every day at midnight
0 9 * * 1-5Weekdays at 9:00
*/15 * * * *Every 15 minutes
0 */6 * * *Every 6 hours, on the hour
30 3 * * 0Sundays at 3:30
0 0 1 * *First day of every month at midnight
0 0 1 1 *Once a year — January 1st at midnight
0 8-18 * * 1-5Every hour from 8:00 to 18:00, weekdays
0 0 * * 6,0Weekends at midnight
5 4 * * monMondays at 4:05 (names work too)

Common shorthand macros supported by most cron implementations: @hourly, @daily, @weekly, @monthly, @yearly, and @reboot (run once at startup).

The Day-of-Month vs Day-of-Week Trap

The most misunderstood cron behavior: when both the day-of-month and day-of-week fields are restricted, the job runs when either matches — not both. So 0 0 13 * 5 doesn’t mean “Friday the 13th”; it means “every 13th of the month and every Friday.” To run only on Friday the 13th, you need a day-of-week check inside the job itself. This OR-semantics quirk has surprised sysadmins for decades.

Timezone Matters

Cron expressions have no timezone of their own — they fire according to the clock of the system running the scheduler. A 0 9 * * * job on a UTC server runs at 06:00 in São Paulo. Cloud schedulers differ: AWS EventBridge uses UTC by default, GitHub Actions uses UTC always, and Kubernetes CronJobs use the cluster’s timezone unless timeZone is set. When a job “runs at the wrong time,” the timezone is almost always the culprit — also check for daylight-saving transitions, where a 02:30 job may be skipped or run twice.

Frequently Asked Questions

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

Standard Unix cron uses 5 fields (no seconds). Some systems like AWS EventBridge and many job schedulers add a 6th field for seconds or year. This tool handles standard 5-field expressions.

What does */15 mean?

The / character means “every N units.” So */15 in the minute field means “every 15 minutes,” and */2 in the hour field means “every 2 hours.”

Is my data private?

Yes. All parsing runs locally in your browser.

Can cron run a job every 30 seconds?

Not directly — standard cron’s smallest unit is one minute. Common workarounds: schedule the job every minute and have it run twice with a sleep 30 between, or use a scheduler with seconds support (Quartz, systemd timers, or a 6-field cron variant).

Why didn't my job run at the expected time?

The usual suspects, in order: the scheduler’s timezone differs from yours (see above), the machine was off or asleep at the scheduled time (standard cron doesn’t run missed jobs), the expression means something different than intended (paste it here to verify), or the job ran but failed silently — check the logs before blaming the schedule.

Related Tools