How to Monitor Scheduled GitHub Actions Workflows
Scheduled GitHub Actions are handy for recurring automation, but they are surprisingly unreliable as a guarantee: GitHub disables scheduled workflows after 60 days of repository inactivity, and on:schedule runs can be delayed or dropped entirely during high load. If that workflow does something important, you need independent confirmation it ran.
Add a heartbeat step
Add a final step that pings only when the job has succeeded:
name: nightly-sync
on:
schedule:
- cron: '0 3 * * *'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: ./scripts/sync.sh
- name: Heartbeat
if: success()
run: curl -fsS https://api.cronguard.dev/v1/ping/<your-uuid>Use if: failure() with the /fail endpoint to signal failures distinctly:
- name: Heartbeat (failure)
if: failure()
run: curl -fsS https://api.cronguard.dev/v1/ping/<your-uuid>/failAlerting
Create a CronGuard monitor with the same cron schedule. Miss a run and you’re alerted instantly across multiple channels. Free to start, no agent needed.
Stop losing sleep over silent failures
CronGuard alerts you within minutes when a scheduled job fails to check in. No agent to install. Free to start.
Start Monitoring Free