Skip to content
Cron Expression Generator

Cron expression for every hour

The cron expression to run a job every hour is:

0 * * * *

At 0 minutes past the hour.

Runs at the top of every hour, 24 times a day; the @hourly macro is identical. Because a huge number of systems run hourly jobs at minute 0, picking an odd minute such as 17 * * * * spreads load on shared databases and third-party APIs.

Test and customize this schedule

Format
Valid

5 fields (minute hour day month weekday), or 6 with seconds first. Names like MON-FRI, macros like @daily and full crontab lines work. Press / to focus.

English

At 0 minutes past the hour.

العربية

عند الدقيقة 0 من كل ساعة.

    Quick presets

    Visual cron generator

    Pick options for each field — the expression above updates instantly.

    Next 5 executions

    Local time:

      Cheat sheet

      *
      Any value
      ,
      List — 1,15,30
      -
      Range — 1-5
      /
      Step — */10
      ?
      No specific value (day fields)
      @daily
      Macro for 0 0 * * *

      Field-by-field breakdown

      FieldValueMeaning
      Minute00
      Hour*Every hour
      Day of month*Every day of the month
      Month*Every month
      Day of week*Every day of the week

      Copy-paste examples

      Linux crontab

      # crontab -e
      0 * * * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1

      Kubernetes CronJob

      apiVersion: batch/v1
      kind: CronJob
      metadata:
        name: my-job
      spec:
        schedule: "0 * * * *"
        concurrencyPolicy: Forbid
        jobTemplate:
          spec:
            template:
              spec:
                restartPolicy: OnFailure
                containers:
                  - name: my-job
                    image: busybox:1.36
                    command: ["sh", "-c", "date; echo Hello from cron"]

      GitHub Actions

      on:
        schedule:
          - cron: '0 * * * *'   # always UTC

      GitHub Actions evaluates schedules in UTC, does not accept macros such as @daily, and will not run workflows more often than every 5 minutes; runs can also be delayed during periods of high load.

      Common variations

      Click an expression to load it into the tool above.

      Cron expressionSchedule
      At 30 minutes past the hour.
      At 0 minutes past the hour, between 9:00 AM and 5:59 PM, Monday through Friday.
      At 0 minutes past the hour.
      At 0 minutes past the hour, Monday through Friday.

      Frequently asked questions

      What does 0 * * * * mean in cron?

      At 0 minutes past the hour. The five fields are minute 0, hour *, day of month *, month * and day of week *.

      How do I run a cron job every hour in Linux?

      Run crontab -e, add the line 0 * * * * /path/to/command, then save and exit. Use absolute paths, redirect output to a log file, and confirm it runs with grep CRON /var/log/syslog.

      When will 0 * * * * run next?

      It depends on the current time and the time zone of the machine running cron. The calculator on this page shows the next 5 run times in your local time zone; on a server, cron uses the system time zone, which is often UTC.

      Related cron schedules

      Browse all cron expression examples →