Try the Cron Explainer

Cron Explainer β€” Translate Any Cron Expression to Plain English

Learn how cron expression syntax works, what each field means, common schedules explained in plain English, cron pitfalls like timezone issues and overlapping jobs, and how to use a free cron explainer tool.

By sadiqbd Β· June 7, 2026

Share:
Cron Explainer β€” Translate Any Cron Expression to Plain English

Cron is the backbone of scheduled task automation β€” but its syntax has a learning curve

Cron is the Unix scheduler that runs tasks at specified times. It's been running scheduled jobs on servers for over 50 years. Every web server, Linux system, and cloud deployment runs cron jobs β€” scheduled backups, database cleanups, email digests, report generation, certificate renewals. And yet the cron expression format β€” five (or six) space-separated fields β€” remains notoriously difficult to read without practice.

A cron explainer takes a cron expression and tells you, in plain English, exactly when it will run.


The Cron Expression Format

A standard cron expression has five fields:

* * * * *
β”‚ β”‚ β”‚ β”‚ └── Day of week (0–7, where 0 and 7 = Sunday)
β”‚ β”‚ β”‚ └──── Month (1–12)
β”‚ β”‚ └────── Day of month (1–31)
β”‚ └──────── Hour (0–23)
└────────── Minute (0–59)

Some implementations (like AWS CloudWatch Events, Quartz Scheduler, and systemd) add a sixth field for seconds or year.

The * (asterisk): "Every value" β€” * * * * * runs every minute of every day.

Specific values: 30 * * * * β€” at minute 30 of every hour.

Ranges: 9-17 * * * * β€” every minute between 9 AM and 5 PM.

Lists: 0,15,30,45 * * * * β€” at minutes 0, 15, 30, and 45.

Step values: */15 * * * * β€” every 15 minutes. 0-59/10 * * * * β€” every 10 minutes.

Combined example: 0 9-17 * * 1-5 β€” at the top of every hour from 9 AM to 5 PM, Monday through Friday.


How to Use the Cron Explainer on sadiqbd.com

  1. Enter your cron expression β€” the five (or six) space-separated fields
  2. Read the plain-English explanation β€” what it means in human language
  3. See upcoming run times β€” the next several scheduled executions

For building new expressions, the tool may also allow selecting schedule parameters and generating the expression.


Common Cron Schedules Explained

Expression Meaning
* * * * * Every minute
0 * * * * Every hour (at minute 0)
0 0 * * * Every day at midnight
0 6 * * * Every day at 6 AM
0 0 * * 0 Every Sunday at midnight
0 9 * * 1-5 Weekdays at 9 AM
0 0 1 * * First day of every month at midnight
0 0 1 1 * January 1 at midnight (annually)
*/5 * * * * Every 5 minutes
0,30 * * * * Every half hour
0 2 * * * Every day at 2 AM
0 0,12 * * * Midnight and noon every day

Real-World Cron Use Cases

Database backup

Goal: Back up the database every day at 2 AM.

Expression: 0 2 * * *

Plain English: "At 02:00 every day."

Why 2 AM? Low user activity, gives time to complete before business hours.

SSL certificate renewal check

Let's Encrypt certificates expire every 90 days. Certbot recommends running renewal checks twice daily:

Expression: 0 */12 * * *

Plain English: "Every 12 hours (at midnight and noon)."

Certbot's renewal command only actually renews when the certificate is within 30 days of expiry β€” running twice daily ensures timely renewal without doing unnecessary work.

Weekly report generation

Goal: Generate and email a weekly report every Monday at 8 AM.

Expression: 0 8 * * 1

Plain English: "At 08:00 every Monday."

Hourly cache invalidation

Goal: Clear expired cache entries every hour.

Expression: 5 * * * *

Plain English: "At 5 minutes past every hour."

The 5-minute offset (rather than 0 * * * *) avoids running exactly on the hour when many other jobs commonly start β€” reducing server load spikes.

End-of-month processing

Goal: Run month-end financial reconciliation on the last day of each month.

This is tricky with cron because months have different lengths. A common approach: run on the 28th–31st and add a check in the script.

Expression: 0 23 28-31 * * with a script check if [[ $(date +%d) = $(cal | awk 'NF{print $NF}' | tail -1) ]]

Or use 0 23 L * * in Quartz-style cron (which supports L for "last day of month").


Cron Special Strings

Many cron implementations support shortcuts:

String Equivalent Meaning
@yearly 0 0 1 1 * Once a year, January 1
@monthly 0 0 1 * * First day of each month
@weekly 0 0 * * 0 Every Sunday at midnight
@daily 0 0 * * * Every day at midnight
@hourly 0 * * * * Every hour
@reboot β€” Once at system startup

Common Cron Mistakes

Off-by-one on day-of-week. Some systems use 0–6 (Sunday=0), others 1–7 (Sunday=1, with 7 also being Sunday). Check your cron implementation.

Timezone issues. Cron runs in the system timezone β€” which may differ from application timezone. A job set to 0 9 * * * runs at 9 AM server time, not necessarily 9 AM in Bangladesh if the server is in UTC. Use UTC cron times and document them.

Not handling long-running jobs. Cron doesn't wait for the previous instance to finish before starting the next. If a job takes 2 minutes and runs every minute, multiple instances will overlap. Use flock or a process lock to prevent this.

Wrong month syntax. Months in cron are 1–12 (January=1), not 0–11. A common mistake from developers used to JavaScript's Date object.


Frequently Asked Questions

How do I run a cron job every 30 seconds? Standard cron only supports minute-level precision. To run every 30 seconds, run two jobs: * * * * * command and * * * * * sleep 30 && command. For sub-minute precision, use a different scheduler (systemd timers, Kubernetes CronJobs with custom logic, or an application-level scheduler).

What's the difference between cron on Linux and Task Scheduler on Windows? Functionally similar concept (scheduled tasks) but completely different syntax and implementation. Cron is Unix-native; Windows Task Scheduler uses XML configuration. Most server environments (even Windows servers for web deployment) use cron-compatible scheduling.

Is the cron explainer free? Yes β€” completely free, no sign-up required.


Cron expressions become readable with practice, but the explainer accelerates the learning curve and prevents costly mistakes when setting up production schedules β€” a wrong expression that runs every minute instead of every hour can consume significant resources.

Try the Cron Explainer free at sadiqbd.com β€” paste any cron expression and see exactly when it will run in plain English.

Share:
Try the related tool:
Open Cron Explainer

More Cron Explainer articles