$ cron expression generator

Build, test & explain crontab schedules · See next 10 run times

> Edit Expression

minutehourday(month)monthday(week)
Every weekday at 9:00 AM

> Quick Presets

> Visual Builder

> Next 10 Run Times

> Cron Syntax Reference

FieldValuesSpecialExamples
Minute0-59* , - /0 */5 0,30 15-45
Hour0-23* , - /9 */2 9-17 0,12
Day of Month1-31* , - /1 15 1,15 */7
Month1-12* , - /1 */3 6-8 JAN
Day of Week0-6 (Sun=0)* , - /1-5 0,6 MON
SymbolMeaningExample
*Every value (wildcard)* * * * * = every minute
,List of values1,3,5 = Mon, Wed, Fri
-Range of values9-17 = 9 AM to 5 PM
/Step / interval*/5 = every 5 units

Common Cron Expressions

ExpressionDescription
* * * * *Every minute
*/5 * * * *Every 5 minutes
0 * * * *Every hour at minute 0
0 0 * * *Every day at midnight
0 9 * * 1-5Every weekday at 9:00 AM
0 0 * * 0Every Sunday at midnight
0 0 1 * *First day of every month
0 0 1 1 *January 1st (yearly)
30 4 * * *Every day at 4:30 AM
0 */6 * * *Every 6 hours
0 9,17 * * *At 9 AM and 5 PM
0 0 15 * *15th of every month

Platform-Specific Cron Formats

Kubernetes CronJob

Kubernetes uses standard 5-field cron expressions in the spec.schedule field:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "0 9 * * 1-5"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: my-job
            image: my-image
          restartPolicy: OnFailure

GitHub Actions

GitHub Actions uses cron in the on.schedule trigger. Times are in UTC:

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

AWS EventBridge (CloudWatch Events)

AWS uses a 6-field format with an extra "year" field and different day-of-week values (SUN=1):

cron(0 9 ? * MON-FRI *)

FAQ

What is a cron expression?
A cron expression is a string of 5 fields (minute, hour, day of month, month, day of week) that defines a schedule. It's used in Unix/Linux crontab, Kubernetes CronJobs, AWS EventBridge, GitHub Actions, and many other systems for scheduling recurring tasks.
What does * mean in cron?
The asterisk (*) is a wildcard meaning "every value" for that field. For example, * in the hour field means "every hour". The expression * * * * * runs every single minute.
How do I run a cron job every 5 minutes?
Use the step syntax: */5 * * * *. The */N notation means "every N units". So */5 in the minute field triggers at minutes 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, and 55.
What timezone does cron use?
By default, cron uses the system timezone. In Kubernetes and GitHub Actions, cron schedules run in UTC. AWS EventBridge also defaults to UTC. Always check your platform's documentation for timezone handling.
Can I schedule a cron job for the last day of every month?
Standard cron doesn't support "last day of month" directly. A common workaround: 0 0 28-31 * * [ $(date -d tomorrow +%%d) -eq 01 ] && your_command. Some extended implementations (Quartz scheduler) support the "L" character for this purpose.