GITHUB SCHEDULER

GitHub Scheduler

Create reliable recurring GitHub Actions schedules with cron. Generate workflow YAML, validate your expression, and convert local times to GitHub's UTC schedule.

How GitHub Actions scheduling works

GitHub Actions uses a 5-field POSIX-style cron expression in the on.schedule trigger. Scheduled workflows run from the default branch and use UTC.

name: Scheduled Task

on:
  schedule:
    - cron: '0 9 * * 1-5'
  workflow_dispatch:

jobs:
  scheduled:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: echo "Scheduled task running"

GitHub Scheduler tools

Common GitHub scheduler examples

ScheduleCron
Every 5 minutes*/5 * * * *
Every hour0 * * * *
Every day at midnight UTC0 0 * * *
Weekdays at 9 AM UTC0 9 * * 1-5
Every Monday at 8 AM UTC0 8 * * 1
First day of every month0 0 1 * *

GitHub Actions cron uses UTC

If you want a workflow to run at a local time, convert that time to UTC before writing the schedule. Daylight-saving changes can affect fixed UTC schedules, so review the conversion when your target timezone changes offset.

For example, 9:00 AM IST is 03:30 UTC, so a weekday schedule can be 30 3 * * 1-5.

Why add workflow_dispatch?

Keep workflow_dispatch beside the schedule so you can manually run and debug a workflow without waiting for the next scheduled execution.

More GitHub Actions cron help

Read the full GitHub Actions cron examples guide for workflow templates, UTC examples, troubleshooting and scheduling patterns.