Cron expression

Every hour

0 * * * *

Runs once an hour, exactly on the hour, 24 times a day.

Runs per month

≈ 720

Next run (UTC)

Thu 15:00

On CronEngine

Runs on the free plan

What each part means

Minute 0 at minute 0
Hour * every hour
Day of month * every day of the month
Month * every month
Day of week * every day of the week

Next runs

  1. 1 Thursday 22 October 2026 15:00 UTC
  2. 2 Thursday 22 October 2026 16:00 UTC
  3. 3 Thursday 22 October 2026 17:00 UTC
  4. 4 Thursday 22 October 2026 18:00 UTC
  5. 5 Thursday 22 October 2026 19:00 UTC

See these in your own timezone, or change the schedule →

Good to know

Typical uses: Hourly reports, cleaning up expired sessions, sending digest notifications.

Copy and paste

crontab -e Crontab
0 * * * * /path/to/script.sh
.github/workflows/scheduled.yml GitHub Actions
on:
  schedule:
    - cron: '0 * * * *'

GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy. How to start it on time.

routes/console.php Laravel
Schedule::command('your:command')->hourly();

Variations

17 * * * * Every hour, at 17 minutes past
0 9-17 * * 1-5 Every hour during office hours on weekdays →
0 */2 * * * Every 2 hours →

Questions

What is the cron expression for every hour?

0 * * * *. Runs once an hour, exactly on the hour, 24 times a day.

Can GitHub Actions run every hour?

Yes, with cron: '0 * * * *'. GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy.