schedule (cron) en GitHub Actions: UTC, no cada minuto
Resumen
on.schedule usa cron de 5 campos en UTC. GitHub puede saltar runs y desactiva el schedule tras ~60 días sin commits. Un agente que pone * * * * * quema minutos. Distinct de workflow_dispatch. Docs GitHub scheduled events.

Qué resuelve
Esta pieza se queda en la decisión práctica: qué instalar, qué riesgo agrega y cómo aplicarlo sin romper operación.
on.schedule no es el botón Run. Es un cron UTC. 0 9 * * * son las 09:00 UTC, no las 9 de Guatemala (−6).
GitHub documenta que los schedules pueden retrasarse y que un repo inactivo deja de dispararlos. No es un SLA.
No sustituye workflow_dispatch (a demanda). El curso instalar un agente no cubre cron. gh pr no programa jobs.
Receta
on:
schedule:
- cron: "0 */6 * * *"
workflow_dispatch: {}
Pon también workflow_dispatch para probar sin esperar 6 h.
Mínimo razonable: cada hora o más. */5 * * * * en un job de 8 min se pisa. Combina con concurrency si hace falta.

Qué no hacer
* * * * *. GitHub lo limita; igual es abuso.- Cron “a las 21 GT” escrito como
0 21 * * *(eso es 21 UTC). - Un schedule que deploys a prod sin Environment.
Si el workflow está en una rama que no es default, el schedule no corre (solo default branch).
Receta AGENTS.md
schedule cron is UTC. Never * * * * *.
Always add workflow_dispatch next to schedule for manual test.
Default-branch only. Do not schedule production deploys without Environment.

FAQ
¿60 días? GitHub desactiva schedules en repos sin actividad. Un push reactiva.
¿Varios crons? Lista bajo schedule:. No copies el workflow.
¿TZ en el job? TZ=America/Guatemala date en el step, el trigger sigue UTC.
Verificado 2026-09-03 contra GitHub Docs events schedule (cron UTC, default branch, delays).
Lecturas relacionadas
Sigue explorando Coding Agents y otras piezas para builders.

git status para coding agents: porcelain, XY, no el long

Reusable workflows: workflow_call, no copies el YAML entre repos

git log para coding agents: A..B, A...B y no volcar historia
