[BUG] Scheduled triggers execute in UTC, not local timezone — not documented
Resolved 💬 5 comments Opened Apr 17, 2026 by adelaidasofia Closed Apr 18, 2026
Summary
Cron expressions in Claude Code scheduled triggers are evaluated in UTC, not the user's local timezone. This is not documented anywhere — the trigger creation UI/API doesn't specify a timezone, and the natural assumption is local time.
Steps to reproduce
- Create a scheduled trigger with a cron expression for a specific local time, e.g.
0 9 * * *(intended as 9am local). - On a machine running UTC-5, the trigger fires at 4am local time.
- To fire at 9am local, you must offset:
0 14 * * *.
Expected behavior
One of:
- Cron expressions use the host system's local timezone (preferred), OR
- Docs explicitly state "all cron expressions are UTC" with an offset example
Why this matters
A trigger configured to "run a morning standup at 9am" instead fires at 4am. The failure is silent — the trigger fires, just at the wrong time — so it's hard to diagnose.
Environment
- macOS Darwin 25.4.0
- Timezone: America/Bogota (UTC-5)
- Confirmed via direct testing across multiple trigger schedules
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗