[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

  1. Create a scheduled trigger with a cron expression for a specific local time, e.g. 0 9 * * * (intended as 9am local).
  2. On a machine running UTC-5, the trigger fires at 4am local time.
  3. 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

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗