How to Turn Off Unused Scheduled CI Jobs
A nightly cron for a report nobody reads still runs every night, quietly billing minutes forever.
Scheduled workflows outlive the need that created them. A nightly job for a deprecated dashboard keeps firing on the default branch indefinitely. Auditing schedules and disabling the dead ones removes pure recurring waste.
Steps
- List every workflow with an
on.scheduletrigger. - Check last-run usefulness with each owner; confirm nobody reads the output.
- Disable the workflow (or remove the schedule) rather than leaving it firing.
Find and disable schedules
Terminal
# List scheduled workflows
grep -rl "schedule:" .github/workflows
# Disable one whose output is no longer used
gh workflow disable nightly-legacy-report.ymlTradeoffs
- Disable rather than delete first, so you can re-enable if it turns out to matter.
- Some schedules warm caches or catch drift; confirm the job is truly unused before cutting it.
Related guides
How to Move Heavy CI Jobs to Nightly Instead of Per-PushRun expensive suites like full end-to-end or fuzzing on a nightly schedule instead of every push, cutting red…
How to Shut Down Idle CI ResourcesCap job runtime and tear down service containers and preview environments after CI, so no runner, database, o…