Schedule Trigger Overview

GitHub Actions can run workflows on a schedule using cron syntax, similar to Linux/Unix cron jobs.

Basic Example

on:
  schedule:
    - cron: '0 9 * * *'# Runs every day at 9:00 AM UTC

📅 Cron Syntax Breakdown

Format: 'minute hour day month weekday'

┌───────────── minute (0 - 59)
│ ┌─────────── hour (0 - 23)
│ │ ┌───────── day of month (1 - 31)
│ │ │ ┌─────── month (1 - 12)
│ │ │ │ ┌───── day of week (0 - 6) (Sunday to Saturday)
│ │ │ │ │
* * * * *

Example Decoded:

cron: '0 9 * * *'
#      │ │ │ │ │
#      │ │ │ │ └── Any day of week (*)
#      │ │ │ └──── Any month (*)
#      │ │ └────── Any day of month (*)
#      │ └──────── 9 AM (9)
#      └────────── 0 minutes (0)

🕐 Common Time Examples

Daily Schedules

schedule:
  # Every day at midnight UTC
  - cron: '0 0 * * *'
  
  # Every day at 9 AM UTC
  - cron: '0 9 * * *'
  
  # Every day at 6 PM UTC
  - cron: '0 18 * * *'
  
  # Every day at 2:30 PM UTC
  - cron: '30 14 * * *'

Weekly Schedules

schedule:
  # Every Monday at 9 AM UTC
  - cron: '0 9 * * 1'
  
  # Every Friday at 5 PM UTC
  - cron: '0 17 * * 5'
  
  # Every Sunday at midnight UTC
  - cron: '0 0 * * 0'

Monthly Schedules

schedule:
# First day of every month at 9 AM UTC
- cron: '0 9 1 * *'

# 15th of every month at midnight UTC
- cron: '0 0 15 * *'

Multiple Schedules

schedule:
# Run twice daily
- cron: '0 9 * * *'# 9 AM UTC
- cron: '0 21 * * *'# 9 PM UTC

# Run on weekdays only
- cron: '0 9 * * 1-5'# Monday to Friday at 9 AM UTC

🌍 Time Zone Considerations

⚠️ Important: All Times are UTC