BackendBench
Coffee

Home โ€บ Cron errors โ€บ GitHub Actions

GitHub Actions ยท silent bug

GitHub Actions runs in UTC, not IST

Why this happens

GitHub Actions schedules are always UTC. 0 9 * * * runs at 09:00 UTC, which is 14:30 IST.

Wrong and right

wrong
0 9 * * *

Runs on: Fri 01 Jan, 09:00, Sat 02 Jan, 09:00, Sun 03 Jan, 09:00, Mon 04 Jan, 09:00, Tue 05 Jan, 09:00, Wed 06 Jan, 09:00, Thu 07 Jan, 09:00

fixed
30 3 * * *

At 03:30 UTC. First runs after 1 Jan 2027 (UTC): Fri 01 Jan, 03:30, Sat 02 Jan, 03:30, Sun 03 Jan, 03:30, Mon 04 Jan, 03:30, Tue 05 Jan, 03:30

How to fix it

  1. Subtract 5 hours 30 minutes from the IST time.
  2. 09:00 IST becomes 03:30 UTC: 30 3 * * *.
  3. Avoid :00 if timing is flexible; GitHub is busiest at the top of the hour.

The GitHub Actions format at a glance

Fields in order: minute (0-59), hour (0-23), day-of-month (1-31), month (1-12), day-of-week (0-6, 0 = Sunday).

GitHub Actions schedules are always UTC. Convert your local time to UTC before writing the expression.

The fixed schedule in other systems

If you are moving this schedule to another scheduler, these are the equivalents of 30 3 * * *:

SystemExpression
Quartz0 30 3 * * ?
Spring0 30 3 * * *
Crontab30 3 * * *
Kubernetes30 3 * * *
AWS EventBridge30 3 * * ? *
Jenkins30 3 * * *
node-cron30 3 * * *
Apache Airflow30 3 * * *
Azure Functions0 30 3 * * *
Google Cloud Scheduler30 3 * * *

Try it yourself

The tester below starts with the fixed expression. Change it and watch the schedule update.

Your week at a glance
fewer more runs

Upcoming runs

#LocalUTCFrom now

Copy-ready code

Frequently asked questions

Can I set a time zone in the workflow?

Not for the schedule trigger. Convert to UTC yourself.

More GitHub Actions fixes

See the full GitHub Actions cron builder or convert between formats.

More tools you might need