Cron Expression Generator

Build, validate, and understand cron expressions instantly. Type any expression or use the visual builder — see the next run times calculated in real time.

Runs every minute

Visual Builder

Use the controls below to build your schedule

minute hour day-of-month month day-of-week

MIN
0-59
HOUR
0-23
DOM
1-31
MON
1-12
DOW
0-6

Special Characters

*Every value
,List: 1,3,5
-Range: 1-5
/Step: */5

Quick Presets

Next 5 Scheduled Runs

No scheduled runs found within the next year. Check your expression.
Tip: You can type any cron expression directly in the box above — including complex ones like 0 9,17 * * 1-5. The next run times will update instantly.

How to Use the Cron Expression Generator

1. Build or paste

Use the visual dropdowns to build a schedule step by step, or paste any existing cron expression directly into the input box. Both methods update each other in real time.

2. Verify run times

See the next 5 actual run times calculated precisely from your expression — including the correct day of week and month constraints. No more guessing if your job will fire when you expect.

3. Copy and deploy

Copy the expression and drop it into Linux crontab, GitHub Actions, Kubernetes CronJobs, AWS EventBridge, or any other cron-compatible scheduler.

Cron Expression Syntax Reference

A standard cron expression has five space-separated fields. Each field controls a different unit of time. The fields are evaluated left to right and all must match for the job to run.

FieldPositionAllowed ValuesSpecial Characters
Minute1st0–59* , - /
Hour2nd0–23* , - /
Day of Month3rd1–31* , - / ? L W
Month4th1–12 or JAN–DEC* , - /
Day of Week5th0–7 or SUN–SAT (0 and 7 = Sunday)* , - / ? L #

Common Cron Expression Examples

* * * * *Every minute
*/5 * * * *Every 5 minutes
0 * * * *Every hour (on the hour)
0 0 * * *Every day at midnight
0 9 * * 1-5Weekdays at 9 AM
0 9,18 * * *Daily at 9 AM and 6 PM
0 0 * * 0Every Sunday at midnight
0 0 1 * *First day of every month
0 0 1,15 * *1st and 15th of each month
0 0 1 1 *Every January 1st (yearly)
0 */6 * * *Every 6 hours
30 8 * * 1-5Weekdays at 8:30 AM

Using Cron Expressions on Popular Platforms

The standard 5-field cron format works across most scheduling systems. Here is how to use your generated expression on the most common platforms.

Linux / Unix Crontab

Run crontab -e and add a line:

*/5 * * * * /home/user/script.sh

Format: expression command

GitHub Actions

In .github/workflows/my-workflow.yml:

on:
  schedule:
    - cron: '0 9 * * 1-5'

Note: GitHub Actions runs on UTC time.

Kubernetes CronJob

In your CronJob manifest:

apiVersion: batch/v1
kind: CronJob
spec:
  schedule: "0 0 * * *"
AWS EventBridge (CloudWatch)

AWS uses a 6-field format with seconds and a required ? in one of the day fields:

cron(0 9 ? * MON-FRI *)

AWS adds a year field at the end. Use ? instead of * for day-of-month or day-of-week when the other is set.

What is a Cron Job?

A cron job is a time-based task scheduler built into Unix and Linux operating systems. The name comes from Chronos, the Greek god of time. The cron daemon runs in the background and checks a schedule file (called a crontab) every minute, executing any commands whose scheduled time has arrived.

Cron jobs are used for an enormous range of automation tasks: running database backups at midnight, sending email digests every morning, clearing temporary files weekly, rotating log files, syncing data between systems, triggering CI/CD pipelines, and more. Almost any task that needs to run on a recurring schedule is a good candidate for a cron job.

Modern cloud platforms have adopted cron syntax beyond traditional Linux systems. GitHub Actions, AWS EventBridge, Kubernetes CronJobs, and most CI/CD tools all use cron expressions for scheduling. The standard five-field format created in the 1970s has proven so useful that it became the universal language for task scheduling across all of computing.

A cron expression is the schedule definition — the five-field string that tells the scheduler when to run a task. This tool generates and validates those expressions so you can confidently schedule your tasks without memorizing the syntax.

Special Cron Strings — @shortcuts

Most cron implementations support special shorthand strings as alternatives to five-field expressions. These are easier to read and less error-prone for common schedules.

ShorthandEquivalent expressionMeaning
@yearly (or @annually)0 0 1 1 *Run once a year, at midnight on January 1st
@monthly0 0 1 * *Run once a month, at midnight on the 1st
@weekly0 0 * * 0Run once a week, at midnight on Sunday
@daily (or @midnight)0 0 * * *Run once a day, at midnight
@hourly0 * * * *Run once an hour, at the start of the hour
@reboot(special)Run once at system startup — supported in Linux crontab only

Cron Jobs and Timezones

Standard cron runs in the server's local timezone. This is one of the most common sources of cron job bugs — a job scheduled for 9 AM may fire at an unexpected time when the server is in a different timezone than the developer.

Linux crontab
Runs in the server's local timezone by default. You can set a per-job timezone with the CRON_TZ variable: CRON_TZ=America/New_York 0 9 * * * /path/to/script.sh
GitHub Actions
Always runs in UTC. If you need 9 AM Eastern time, schedule for 14:00 UTC (or 13:00 during EDT).
AWS EventBridge
All schedules are in UTC. Use the AWS console to confirm run times in your local timezone.
Kubernetes CronJob
Runs in the timezone of the kube-controller-manager node. Specify .spec.timeZone in Kubernetes 1.27+ for explicit timezone control.

Best practice: Always document which timezone a cron expression is written for. If your team spans multiple timezones, standardise on UTC expressions and convert to local time in comments.

Frequently Asked Questions

Common questions about Cron Expression Generator