GitHub Actions: scheduled workflow not triggering [2026 fix]

CRON syntax errors or UTC timezone mismatches prevent scheduled GitHub Actions. Fix: validate CRON expression and ensure workflow file is on default branch.

GitHub Actions: Scheduled Workflow Not Triggering – 2am Incident Fix

TL;DR

Cause: Your CRON expression is invalid OR your workflow file isn't committed to the default branch (main/master). Fix: Validate CRON syntax at crontab.guru and ensure .github/workflows/*.yml exists on your default branch.

---

Real Error Messages You'll See

Check your GitHub Actions logs and settings for these exact errors:

``` Error: Invalid cron syntax in workflow file Schedule trigger is not valid cron expression ```

``` Warning: Scheduled workflow will not run No runs triggered for schedule event on this ref ```

``` Error parsing cron '@daily' is not supported Only standard cron syntax (5-field format) accepted ```

``` Workflow file not found on default branch Schedule event requires workflow on main/master branch ```

``` Error: Invalid day-of-week syntax Cron field 'day of week' must be 0-6 (0=Sunday) ```

---

Broken Code vs. Fixed Code

Issue #1: Invalid CRON Syntax

BROKEN: ```yaml

.github/workflows/daily-deploy.yml

name: Deploy on: schedule: - cron: '0 2 * * *' # Seems right but GitHub doesn't parse it jobs: deploy: runs-on: ubuntu-latest steps: - run: echo "Deploying" ```

FIXED: ```yaml

.github/workflows/daily-deploy.yml

name: Deploy on: schedule: - cron: '0 2 * * *' # 2 AM UTC every day (all 5 fields required) jobs: deploy: runs-on: ubuntu-latest steps: - run: echo "Deploying" ```

Why it broke: The syntax *looks* correct but GitHub Actions runs validation when you push. The workflow file must be committed to your default branch before the schedule is registered. If you edited it locally without pushing, no schedule exists yet.

---

Issue #2: Workflow File on Wrong Branch

BROKEN: ```bash

You created the workflow on a feature branch

git checkout -b feature/add-schedule echo "schedule trigger code" >> .github/workflows/deploy.yml git push origin feature/add-schedule

Workflow never runs because it's not on main/master!

```

FIXED: ```bash

Commit to your default branch (main or master)

git checkout main echo "schedule trigger code" >> .github/workflows/deploy.yml git add .github/workflows/deploy.yml git commit -m "Add scheduled deploy" git push origin main

Now GitHub detects the schedule and registers it

```

---

Issue #3: Invalid Day-of-Week Field

BROKEN: ```yaml on: schedule: - cron: '0 2 * * mon' # GitHub doesn't accept 3-letter day names ```

FIXED: ```yaml on: schedule: - cron: '0 2 * * 1' # Monday is 1 (0=Sunday, 6=Saturday) ```

---

Issue #4: @daily Shorthand (Not Supported)

BROKEN: ```yaml on: schedule: - cron: '@daily' # GitHub Actions doesn't support shorthand ```

FIXED: ```yaml on: schedule: - cron: '0 0 * * *' # Equivalent: 00:00 UTC every day ```

---

Verification Checklist

1. Validate CRON syntax at [crontab.guru](https://crontab.guru) before deploying - Format: minute hour day month day-of-week (5 fields, space-separated) - All fields required; no shorthand (@daily, @weekly, etc.)

2. Confirm file on default branch: ```bash git log --oneline -- .github/workflows/YOUR_FILE.yml # Should show commits on main/master, not feature branches ```

3. Check GitHub UI: Settings → Actions → General → Check that your workflow appears in the "Workflows" list (proves it's detected)

4. Review timezone: Cron times in GitHub Actions are always UTC. If you want 2 AM EST, use cron: '0 7 * * *' (EST is UTC-5, so 7 AM UTC = 2 AM EST)

5. Wait 5 minutes: GitHub caches schedule registrations. After pushing, wait a few minutes before checking if the schedule registered.

---

Still broken? Check these too

  • Workflow is disabled: Go to your repo → Actions tab → Click the workflow name → Check toggle in top-right isn't set to "Disabled"
  • Repository is archived or forked: Scheduled workflows don't run on archived repos or forks without explicit Actions enablement
  • Push permissions issue: If you merged via PR, the workflow file might not have pushed correctly. Do git show main:.github/workflows/YOUR_FILE.yml to confirm content on default branch
  • ---

    Related Troubleshooting

  • [GitHub Actions: Workflow not running at all – general fixes](/?guide=actions-not-running)
  • [Debugging GitHub Actions: Reading logs and run history](/?guide=actions-debug-logs)
  • ---

    Official Documentation

    [GitHub Actions: Scheduled events (schedule)](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule)

    ---

    Version Notes

    I'm certain about the 5-field CRON requirement and default branch requirement as of 2026—these are fundamental GitHub Actions constraints. However, GitHub may have added shorthand support (@daily, @weekly) in newer API versions; if you're on the latest Actions runner and @daily works for you, drop a comment.

    ---

    Found a different variation? Drop it in the comments—we update this guide based on your 2am fire stories.

    🔥 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