Codex App automation next run ignores TZID in RRULE BYHOUR

Resolved 💬 0 comments Opened Jun 30, 2026 by mkuiwu Closed Jun 30, 2026

What version of the Codex App are you using (From “About Codex” dialog)?

26.623.70822,build 4559

What subscription do you have?

pro

What platform is your computer?

MACOS

What issue are you seeing?

Environment:

  • Timezone: Asia/Shanghai / UTC+8
  • Local time example: 2026-06-30 19:17 CST +0800
  • Codex App scheduled automations UI

Issue:
Automation RRULE uses DTSTART with TZID=Asia/Shanghai, but the computed "Next run" appears to interpret BYHOUR as UTC instead of Asia/Shanghai.

Example config:
DTSTART;TZID=Asia/Shanghai:20260630T190000
RRULE:FREQ=DAILY;BYHOUR=19;BYMINUTE=0;BYSECOND=0

Expected:
Next run should be 19:00 Beijing time.

Actual:
UI showed next run as tomorrow 03:01 Beijing time, which is exactly 19:00 UTC converted to UTC+8, plus about 1 minute jitter.

More examples:

  • Beijing 19:00 displayed as next day 03:01
  • Beijing 23:30 would effectively run around next day 07:30
  • Beijing 10:00 would effectively run around 18:00

Impact:
Users in non-UTC timezones create automations that look correct in recurrence text but actually run at the wrong local time.

Workaround:
Use UTC-equivalent RRULE values manually:

  • Beijing 19:00 -> DTSTART:...T110000Z / BYHOUR=11
  • Beijing 23:30 -> DTSTART:...T153000Z / BYHOUR=15;BYMINUTE=30
  • Beijing 10:00 -> DTSTART:...T020000Z / BYHOUR=2

What steps can reproduce the bug?

DTSTART;TZID=Asia/Shanghai:20260630T190000
RRULE:FREQ=DAILY;BYHOUR=19;BYMINUTE=0;BYSECOND=0

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗