[FEATURE] add optional timezone field (IANA tz, e.g. America/Los_Angeles) to scheduled-trigger cron expressions
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
UTC cron drifts by 1 hour at each DST transition, forcing users to either (a) accept the drift, or (b) manually update their triggers twice a year. Prior art:
- systemd timers: OnCalendar= + TimeZone=
- Kubernetes CronJob: spec.timeZone (stable since v1.27)
- GitHub Actions schedule: cron docs note the UTC limitation as a known sharp edge
- AWS EventBridge Scheduler, GCP Cloud Scheduler, Heroku Scheduler all support tz
Impact
Right now every scheduled Claude Code trigger with a user-facing "run at X local time" semantic is subtly broken twice a year for many users. For low-frequency triggers (daily/weekly) this can be acceptable friction; for hourly or shift-aligned ones it's genuinely wrong.
Proposed Solution
A sibling field — {cron_expression, timezone} — rather than embedding TZ= inside the cron string (cleaner API surface)
Alternative Solutions
A default timezone could be honored, but I mean "America/Los_Angeles" not "Pacific Daylight Time". But it would still be nice to be able to override it.
Priority
Medium - Would be very helpful
Feature Category
CLI commands and flags
Use Case Example
I want a report at 8am. Currently in daylight saving/summer time observing places, this will be off by a hour for several months of the year without a manual reschedule.
Sometimes these tasks MUST run at a certain time.
7 Comments
Optional IANA timezone field for scheduled-trigger cron expressions is a meaningful quality-of-life improvement — users who think in local time should not need to mentally convert to UTC when writing schedules.
The current
0 22 * * *schedule without timezone context is ambiguous: is it UTC midnight, UTC 22:00, or some other interpretation? Users who set schedules expecting local time behavior and then observe UTC execution end up with triggers firing at unexpected times.The proposed extension:
This fires at 22:00 Pacific time (UTC-7 in PDT, UTC-8 in PST), automatically handling daylight saving time transitions.
Implementation considerations:
0 2 * * *inAmerica/Chicagowill fire at 2:00 AM CST/CDT — no extra configuration needed."0 22 * * * (America/Los_Angeles, PDT UTC-7)".This connects to the timezone-awareness issues documented in the broader campaign (temporal context injection at session start, #50499/#49084) — users who set schedules in local time expect local time behavior throughout.
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
This is related to issue #49991 but this is a feature request, whereas the other reports this as a bug
I came across this today. Outlining my use case and expectations,
Setting up a schedule to run every day at 8am should respect my current timezone by default (Europe/London in my case). It should be a field we can switch. cron is convenient, but usually done in BE systems in a UTC environment where DST drift is accepted. Scheduling work is more of a human centric routine management. Like, every day at 7a i want this slack message or summary digest to run, every week on wednesday at 9a I need this follow up action to create a pending action for me... etc.
claude response:
This issue is still very much alive and actively impacting Claude Code users.
IANA timezone support in the RemoteTrigger API is a fundamental UX requirement — users think in "Europe/London", not "UTC+0/+1 with manual seasonal adjustment". Every scheduled routine either accepts ±1 hour DST drift or requires manual correction twice a year.
Please keep this open until genuine IANA timezone support (a
timezonefield that accepts IANA strings likeEurope/London) lands in the scheduled remote agent API.This issue is still very much alive and actively impacting Claude Code users.
IANA timezone support in the RemoteTrigger API is a fundamental UX requirement — users think in "Europe/London", not "UTC+0/+1 with manual seasonal adjustment". Every scheduled routine either accepts ±1 hour DST drift or requires manual correction twice a year.
Please keep this open until genuine IANA timezone support (a
timezonefield that accepts IANA strings likeEurope/London) lands in the scheduled remote agent API.+1 — hit this setting up a twice-daily PR-triage routine (5am/1pm PT) through the cloud routine API.
cron_expressionis UTC-only with no timezone field, so it will silently drift to 4am/12pm PT after the November DST change and needs a manual cron edit twice a year. The proposed{cron_expression, timezone}sibling field is exactly right — k8s CronJobspec.timeZone(stable since 1.27) and systemdOnCalendar+TimeZone=are good precedent. Would remove the recurring manual fixups.