GitHub Actions: scheduled workflow not triggering [2026 fix]

Scheduled workflows fail silently when cron syntax is invalid or `push` event isn't present in workflow file.

GitHub Actions: Scheduled Workflow Not Triggering [2026 Fix]

TL;DR

Cause: Your cron expression is malformed OR your workflow file lacks a push trigger event (required for schedule validation in some GitHub versions). Fix: Validate cron syntax at crontab.guru, ensure on: [push, schedule] is set, and confirm the workflow file is on the default branch.

---

Real Error Messages from Console Output

Error 1: Invalid Cron Syntax (Silent Failure)

``` No workflow runs appear in the "Actions" tab despite waiting 5+ minutes Workflow file shows no validation errors in the editor ```

Error 2: Branch Protection Issue

``` Error: Scheduled workflow cannot execute on protected branch without push event Status: Workflow disabled by GitHub (check Actions > All workflows) ```

Error 3: Cron Field Mismatch

``` Schedule trigger skipped: invalid number of fields in cron expression Expected: minute hour day month day-of-week (5 fields) Received: 4 fields ```

Error 4: YAML Parsing Failure

``` error parsing workflow file .github/workflows/schedule.yml on line 8: mapping values are not allowed here ```

Error 5: Permission Denied (Fork Repositories)

``` Warning: Scheduled workflows are disabled for forked repositories Enable in: Settings > Actions > General > Allow all actions ```

---

Broken Code vs. Exact Fix

❌ BROKEN: Invalid Cron + Missing Push Event

```yaml name: Daily Sync on: schedule: - cron: '0 2 * *' # Missing day-of-week field! jobs: sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: echo "This never runs" ```

✅ FIXED: Valid Cron + Required Push Event

```yaml name: Daily Sync on: push: # Required for schedule validation on default branch branches: - main schedule: - cron: '0 2 * * *' # Minute(0) Hour(2) Day(*) Month(*) DayOfWeek(*) jobs: sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: echo "Runs daily at 2 AM UTC" ```

---

❌ BROKEN: YAML Indentation Error

```yaml on: schedule: - cron: '0 2 * * *' # Wrong indentation level - cron: '0 14 * * *' jobs: ```

✅ FIXED: Correct YAML Structure

```yaml on: schedule: - cron: '0 2 * * *' # Properly indented - cron: '0 14 * * *' jobs: ```

---

Critical Checklist

1. Validate your cron expression: - Use [crontab.guru](https://crontab.guru) to test syntax - Format: minute hour day month day-of-week (5 space-separated fields) - Example: 0 2 * * * = 2:00 AM UTC every day - GitHub only supports 0-59 for minute field (no H hash syntax like Jenkins)

2. Ensure push event exists: - Scheduled workflows may fail silently without a push trigger - Include at minimum: on: [push, schedule] - Verify workflow file is on your default branch (usually main)

3. File location and naming: - Must be in .github/workflows/ directory - Must be .yml or .yaml extension - Check for typos in branch/path references

4. YAML syntax validation: - Use an online YAML linter: [yamllint.com](https://www.yamllint.com) - Ensure consistent 2-space indentation - No trailing spaces or tab characters

5. Check repository permissions: - Go to: Settings > Actions > General - Confirm "Workflow permissions" is set to "Read and write" - For forks: Enable "Allow all actions and reusable workflows"

---

Still Broken? Check These Too

Issue 1: Timezone Mismatch

GitHub Actions runs all scheduled workflows in UTC timezone only. If you need 2 AM EST (UTC-5), set cron to 0 7 * * *. Use an online [time zone converter](https://www.timeanddate.com/worldclock/converter.html) to verify.

Issue 2: Workflow Disabled by GitHub

Navigate to Actions > All workflows and check if your scheduled workflow shows a yellow warning icon. Click it to re-enable. This occurs after 60 days of no repository activity.

Issue 3: Recent Commit Required

Scheduled workflows won't trigger if the workflow file hasn't been committed and pushed to the default branch within the last 5 minutes. Make a test commit: git commit --allow-empty -m "trigger workflow" && git push

---

Related Guides

  • [GitHub Actions: Job timeout and cancellation errors](/?guide=actions-timeout)
  • [Debugging GitHub Actions: Secrets not accessible in workflows](/?guide=actions-secrets)
  • ---

    Official Documentation

    📖 GitHub Docs: [Scheduling workflows](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#scheduled-events)

    ---

    Found a different variation? Drop it in the comments—we update this guide based on reader reports.

    🔥 0d
    LIVE
    PlanetScale rage spiking Vercel pricing complaints Railway gaining fast Supabase happiness rising Resend loved by devs PlanetScale rage spiking Vercel pricing complaints Railway gaining fast Supabase happiness rising
    DEVELOPER PAIN RADAR // Loading...

    Developers complain.
    Opportunities appear.

    We track what developers are struggling with today — and what opportunities that creates.

    guides today
    avg happiness
    🔥 Pain
    📖 Guides
    🔭 Explore
    👤 Mine
    🔥 Pain Radar — rage scores today
    ↗ share
    💡 Opportunity Feed — pain = market gap
    📈 Tool Momentum
    all scores →
    📖 Latest Guide
    all guides →
    📖 All Guides
    📊 Tool Scores
    + Submit
    📰 Hacker News
    ➕ Submit a Tool
    ← back