Cron expression

Every 2 hours

0 */2 * * *

Runs on the hour every two hours: 00:00, 02:00, 04:00 and so on until 22:00.

Runs per month

≈ 360

Next run (UTC)

Thu 16:00

On CronEngine

Runs on the free plan

What each part means

Minute 0 at minute 0
Hour */2 every 2 hours
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 16:00 UTC
  2. 2 Thursday 22 October 2026 18:00 UTC
  3. 3 Thursday 22 October 2026 20:00 UTC
  4. 4 Thursday 22 October 2026 22:00 UTC
  5. 5 Friday 23 October 2026 00:00 UTC

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

Good to know

Typical uses: Importing product feeds, refreshing sitemaps, syncing calendars.

Copy and paste

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

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')->everyTwoHours();

Variations

0 1-23/2 * * * Every 2 hours, on the odd hours
0 */3 * * * Every 3 hours →

Questions

What is the cron expression for every 2 hours?

0 */2 * * *. Runs on the hour every two hours: 00:00, 02:00, 04:00 and so on until 22:00.

Can GitHub Actions run every 2 hours?

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