GitHub Actions: scheduled workflow not triggering [2026 fix]

Scheduled workflows need default branch protection rules and valid cron syntax; verify cron expression and branch settings in Actions settings.

GitHub Actions: Scheduled Workflow Not Triggering

TL;DR

Cause: Your cron schedule is disabled by branch protection rules or uses invalid syntax. Fix: Verify cron syntax at crontab.guru, ensure the default branch matches your workflow file, and check that scheduled workflows aren't blocked in repository settings.

---

Exact Error Messages from Console

Here are real console outputs you might see:

``` 1. No workflow runs appear in Actions tab despite scheduled time passing Message: "No runs for this workflow"

2. From GitHub API when querying workflow runs: {"message":"Resource not found","documentation_url":"https://docs.github.com/rest/actions/workflows?apiVersion=2022-11-28"}

3. Repository settings notification: "Scheduled workflows are disabled for this repository due to inactivity"

4. Workflow file parse error (rare): Error: Invalid cron expression: "0 0 * * MON-FRI extra" - contains invalid tokens

5. Branch mismatch detection: Warning: "This workflow will not run. The 'schedule' event is configured but the workflow file doesn't exist on the default branch 'main'" ```

---

Broken Code vs. Exact Fix

Issue #1: Invalid Cron Syntax

BROKEN: ```yaml

.github/workflows/deploy.yml

name: Deploy on: schedule: - cron: '0 0 * * *' # WRONG: contains 5 fields but missing valid syntax - cron: '*/5 * * * * *' # WRONG: has 6 fields (Kubernetes format) - cron: '0 2am * * *' # WRONG: text instead of 24-hour format

jobs: deploy: runs-on: ubuntu-latest steps: - run: echo 'Deploying...' ```

FIXED: ```yaml

.github/workflows/deploy.yml

name: Deploy on: schedule: - cron: '0 2 * * *' # CORRECT: 2 AM UTC daily (minute hour day month weekday) - cron: '0 2 * * MON-FRI' # CORRECT: 2 AM UTC weekdays only - cron: '*/15 * * * *' # CORRECT: every 15 minutes

jobs: deploy: runs-on: ubuntu-latest steps: - run: echo 'Deploying...' ```

Why: GitHub Actions uses POSIX cron format (5 fields). Always validate at [crontab.guru](https://crontab.guru) before committing.

---

Issue #2: Workflow Not on Default Branch

BROKEN: ```yaml

File exists only on: feature-branch/.github/workflows/scheduled-task.yml

But default branch is 'main' → workflow never runs

on: schedule: - cron: '0 9 * * *' ```

FIXED: ```bash

Step 1: Ensure workflow file is on your default branch

git checkout main git pull origin main

Add/update file: .github/workflows/scheduled-task.yml

Step 2: Verify default branch setting

Settings → General → Default branch → confirm it shows 'main'

Step 3: Push and wait 5 minutes for GitHub to detect changes

git add .github/workflows/scheduled-task.yml git commit -m 'Add scheduled workflow to default branch' git push origin main ```

Why: GitHub Actions only reads workflows from your repository's default branch for scheduled events.

---

Issue #3: Repository Inactivity Lock (GitHub Public Repos)

BROKEN: Scheduled workflows disabled after 60 days of no commits.

FIXED: ```bash

Make any commit to re-enable scheduled workflows

echo '# Updated' >> README.md git add README.md git commit -m 'Reactivate scheduled workflows' git push origin main

Alternative: Use GitHub web UI

Settings → Actions → General → Scroll to "Workflow permissions"

Ensure "Read and write permissions" is enabled

```

Why: GitHub disables scheduled workflows on inactive public repositories to save resources.

---

Still Broken? Check These Too

1. Workflow permissions too restrictive: Navigate to Settings → Actions → General → Workflow permissions. Ensure "Read and write permissions" or appropriate scopes are set. [Learn more about permissions](/?guide=github-actions-permissions).

2. GitHub Actions disabled entirely: Settings → Actions → General → Toggle "All repositories" or "Selected repositories" to enabled. Some organizations require approval for scheduled workflows.

3. Timezone confusion: GitHub Actions always uses UTC for cron schedules. If you need a different timezone, use [related guide on timezone handling](/?guide=github-actions-timezone) or add UTC conversion to your cron expression. I'm uncertain whether GitHub will add native timezone support in 2026—check official documentation for updates.

---

Verification Checklist

  • [ ] Cron syntax validated at https://crontab.guru
  • [ ] Workflow file exists in .github/workflows/ on default branch
  • [ ] No typos in schedule: or cron: keys
  • [ ] Repository has commits in last 60 days (public repos)
  • [ ] Go to Actions tab → select your workflow → confirm "scheduled" trigger appears
  • [ ] Wait 10 minutes for first scheduled run to appear
  • ---

    Official Resources

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

    ---

    **Found a different variation? Drop it in the comments—we'll update this guide.

    🔥 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