Cron Reference

Cron Each Hour

Cron expression 0 * * * * means At minute 0.

Cron each hour schedule for 2026. Use 0 * * * * to run at the top of every hour, plus implementation notes for Linux, GitHub Actions, and Kubernetes.

Cron Expression

0 * * * *
0Minute
*Hour
*Day
*Month
*Weekday

Common use cases

  • Hourly analytics aggregation and reporting
  • Top-of-hour queue processing and cleanup
  • Refreshing external API caches on a fixed cadence
  • Running hourly status checks for operations dashboards

How to use this cron schedule

The cron expression for each hour is `0 * * * *`, which triggers at minute zero of every hour. This pattern is often preferred over high-frequency schedules because it is predictable, easy to communicate, and friendly to infrastructure limits. If your system only needs periodic updates, hourly jobs reduce unnecessary load while still providing timely data. In 2026, this remains one of the most common production schedules for summaries, reconciliations, and incremental processing pipelines.

When deploying hourly jobs, verify that the runtime is safely below sixty minutes. If execution overlaps with the next trigger, you can create duplicate processing or lock contention. Add idempotency keys, checkpointing, or leader-election guards depending on your environment. For cloud schedulers and GitHub Actions, also confirm timezone behavior so the top-of-hour run lines up with stakeholder expectations. A mismatch between UTC and local time is still a frequent source of confusing "late" or "early" job alerts.

A practical approach is to begin with one lightweight hourly command, monitor for a week, then attach heavier downstream tasks after stability is proven. Keep logs structured and emit start and completion markers for every run to simplify debugging. If you need weekend or business-hour restrictions later, fork to a dedicated expression rather than adding brittle conditional logic inside the job itself. That keeps cron behavior transparent and easier to audit during incident reviews.

Want to customize this schedule?

Open it in the visual builder to tweak the expression interactively.

Open in Builder

Need to monitor this cron job?

Cronhub tracks your scheduled jobs and alerts you if they fail or run late.

Monitor with Cronhub

Platform usage examples

Linux / Unix — crontab
# Edit your crontab
crontab -e

# Add this line to run each hour
0 * * * * /usr/bin/php /var/www/html/script.php

# Or run a shell script
0 * * * * /home/user/scripts/job.sh >> /var/log/job.log 2>&1
GitHub Actions
# .github/workflows/scheduled.yml
name: Scheduled Job

on:
  schedule:
    - cron: '0 * * * *'

jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run job
        run: echo "Running each hour"
Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-scheduled-job
spec:
  schedule: "0 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: job
            image: my-image:latest
          restartPolicy: OnFailure

Related developer tools

More free tools for engineering workflows that pair with scheduled jobs:

Frequently asked questions

What is the cron expression for each hour?

The cron expression is 0 * * * *. Cron each hour schedule for 2026. Use 0 * * * * to run at the top of every hour, plus implementation notes for Linux, GitHub Actions, and Kubernetes.

How do I schedule a cron job to run each hour in Linux?

Open your crontab with "crontab -e" and add a new line: 0 * * * * /path/to/your/script.sh — this schedules your script to run each hour. Save and exit; the cron daemon picks up the change immediately.

What does the cron expression "0 * * * *" mean?

Cron each hour schedule for 2026. Use 0 * * * * to run at the top of every hour, plus implementation notes for Linux, GitHub Actions, and Kubernetes.

Can I use "0 * * * *" in GitHub Actions?

Yes. In your workflow YAML, set the schedule trigger: on: schedule: - cron: '0 * * * *'. GitHub Actions uses standard 5-field Unix cron syntax, so this expression works as-is.

Related cron schedules

More Free Developer Tools