▶ Cron Expression Builder Live
minute
hour
day-of-month
month
day-of-week
💬 Every minute.
Quick Presets
or build with dropdowns
Next 5 Execution Times (your local timezone)
  • 1.--
  • 2.--
  • 3.--
  • 4.--
  • 5.--
Key Terms Explained
Cron
A time-based job scheduler built into Unix-like operating systems. The name comes from Chronos, the Greek word for time. Cron wakes up once per minute and checks whether any scheduled jobs should run.
Crontab
Short for "cron table." The configuration file that lists all cron jobs for a particular user. You edit it with the command `crontab -e` and view it with `crontab -l`. Each line is one job: a 5-field schedule expression followed by the command to run.
Daemon
A background process that runs continuously without direct user interaction. The cron daemon (often called crond or cron) is what actually reads the crontab and fires jobs at the right time. Daemons start at boot and run silently in the background.
Wildcard (*)
In cron syntax, an asterisk means "every valid value" for that field. A * in the minute field means every minute (0 through 59). A * in the month field means every month (1 through 12). Five asterisks (* * * * *) means the job runs every single minute.
Step Value (/n)
The slash notation lets you specify intervals. */5 in the minute field means "every 5 minutes." */2 in the hour field means "every 2 hours." You can also combine a range with a step: 10-50/10 means "at minutes 10, 20, 30, 40, and 50."
Epoch Time
The number of seconds that have elapsed since January 1, 1970, 00:00:00 UTC (Unix time zero). Cron itself works with human-readable wall-clock time, but many scripts and log files use epoch timestamps to avoid timezone ambiguity.
Shell Script
A text file containing a sequence of shell commands, typically with a .sh extension, executed by a shell interpreter like bash. Cron jobs most commonly call shell scripts to group multiple commands, handle errors, and redirect output to log files.
Range (a-b)
Specifies a contiguous span of values. For example, 1-5 in the day-of-week field means Monday through Friday. Ranges can be combined with commas (1-5,7) and step values (1-5/2 means 1, 3, 5).
List (a,b,c)
A comma-separated list of specific values. 0,15,30,45 in the minute field fires at the top, quarter-past, half-past, and quarter-to of each hour. You can mix specific values and ranges in a single list.

The Complete Guide to Cron Job Scheduling

Whether you are a developer automating server tasks, a data engineer scheduling pipeline runs, or a DevOps engineer managing cloud jobs, understanding cron syntax is a foundational skill. This guide walks through how cron expressions work, how to read and write them confidently, and answers the questions developers search for most often.

How to Use This Tool

There are two ways to interact with the generator above. If you already have a cron expression and want to understand it, paste it directly into the expression input (Section A). The tool immediately translates it into a plain-English sentence and shows the next 5 exact run times in your browser's local timezone.

If you want to build an expression from scratch, use the dropdowns in Section B. Each dropdown covers one field: minute, hour, day of month, month, and day of week. Changing any dropdown updates the expression string at the top in real time. You can also use the quick preset buttons to jump to the most common schedules instantly.

The 5 Fields of a Cron Expression

Every standard cron expression is a string of five values separated by spaces. Reading left to right:

Position Field Valid Range Special Characters
1stMinute0 to 59* , - /
2ndHour0 to 23* , - /
3rdDay of Month1 to 31* , - /
4thMonth1 to 12* , - /
5thDay of Week0 to 7 (0 and 7 = Sunday)* , - /

Special Syntax: Wildcards, Ranges, Lists, and Steps

The real power of cron comes from four special characters that let you express complex schedules in just a few characters. A wildcard (*) means "match every value." A range (a-b) matches every integer from a to b inclusive. A list (a,b,c) matches each of those specific values. A step (/n) skips through values at a fixed interval.

These can be combined freely. 1,15 in the day-of-month field runs on the 1st and 15th. 1-5 in the day-of-week field runs Monday through Friday. */10 in the minute field runs at minutes 0, 10, 20, 30, 40, and 50. 10-50/10 in the minute field runs at minutes 10, 20, 30, 40, and 50 only (same result, but starting at 10 instead of 0).

Common Cron Expression Examples

Expression Plain English
* * * * *Every minute
0 * * * *At the top of every hour
0 0 * * *Every day at midnight
*/5 * * * *Every 5 minutes
0 9 * * 1Every Monday at 9:00 AM
30 14 1 * *At 2:30 PM on the 1st of every month
0 0 * * 0Every Sunday at midnight
0 0 1 1 *Once a year at midnight on January 1st
0 8-18 * * 1-5Every hour between 8 AM and 6 PM, Monday through Friday
*/15 * * * *Every 15 minutes

Cron and Timezones

One important thing to understand: cron itself runs in the system timezone of the server it lives on, not your local timezone. If your server is set to UTC and you write 0 9 * * *, the job fires at 9:00 AM UTC, which may be a completely different time in your local timezone. Always check your server's timezone with the command `timedatectl` (Linux) or `date` before scheduling time-sensitive jobs. Some modern schedulers, like Google Cloud Scheduler and Kubernetes CronJobs, let you specify a timezone explicitly in the configuration.

The next-5-executions panel in this tool uses your browser's local timezone (shown next to each time), so the displayed times will match what you see on your own clock, not necessarily what the server will see.

Frequently Asked Questions

A cron job is a scheduled task on a Unix-based system (Linux, macOS, BSD) that runs automatically at a set time or interval without any human interaction. The name comes from Chronos, the Greek word for time, and the jobs are managed by a background process called a daemon (the cron daemon, or crond). Developers use cron jobs for a huge variety of recurring automation tasks: clearing temporary files, sending scheduled email digests, backing up databases, pulling data from an API, generating reports, running health checks, and rebuilding caches. Any task you would otherwise have to trigger manually on a regular schedule is a good candidate for a cron job.
A standard cron expression has five fields separated by spaces, read left to right: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-7, where both 0 and 7 represent Sunday). An asterisk (*) in any field means "every valid value" for that field. So five asterisks (* * * * *) means: every minute, of every hour, of every day, of every month, on every day of the week. This is equivalent to the job running once per minute, continuously. When you replace an asterisk with a specific value or pattern, you narrow down exactly when the job fires.
Use the step value syntax in the minute field: */5 * * * *. The slash notation means "every N units," so */5 in the minute field means "every 5 minutes starting from minute 0." This fires at :00, :05, :10, :15, :20, :25, :30, :35, :40, :45, :50, and :55 of every hour. You can also use step values in other fields. For example, 0 */2 * * * fires at the top of every other hour (midnight, 2am, 4am, and so on). The step value always starts from the beginning of the range unless you specify an explicit start with a range, such as 15-55/10, which fires at minutes 15, 25, 35, 45, and 55.
Cron originated on Unix systems and is standard on Linux and macOS. However, the concept of scheduled tasks is available on virtually every platform. Windows uses the Task Scheduler (schtasks) for the same purpose, and many programming environments have their own scheduling libraries (such as node-cron for Node.js, APScheduler for Python, or Quartz for Java). Cloud platforms including AWS, Google Cloud, and Azure all support cron-syntax schedules for serverless functions, container jobs, and pipeline triggers. Many databases also support cron-like event schedulers internally. The 5-field cron syntax used in this tool is widely portable: it is understood natively by Linux crontabs, Docker, Kubernetes CronJobs, GitHub Actions, and most major cloud schedulers.
This tool operates entirely in your browser. No cron expressions or schedule data are ever sent to any server. Calculated execution times are based on your device's system clock and local timezone setting. Verify critical schedules in your actual environment before relying on them in production.