Home โบ Cron errors โบ GitHub Actions
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
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
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
- Subtract 5 hours 30 minutes from the IST time.
- 09:00 IST becomes 03:30 UTC: 30 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 * * *:
| System | Expression |
|---|---|
| Quartz | 0 30 3 * * ? |
| Spring | 0 30 3 * * * |
| Crontab | 30 3 * * * |
| Kubernetes | 30 3 * * * |
| AWS EventBridge | 30 3 * * ? * |
| Jenkins | 30 3 * * * |
| node-cron | 30 3 * * * |
| Apache Airflow | 30 3 * * * |
| Azure Functions | 0 30 3 * * * |
| Google Cloud Scheduler | 30 3 * * * |
Try it yourself
The tester below starts with the fixed expression. Change it and watch the schedule update.
Your week at a glance
Upcoming runs
| # | Local | UTC | From 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.