Server‑side vs Client‑side DST offset resolution for ambiguous times in Google Calendar API
0 reputation · 06 Aug 2026, 14:01 UTC
Ambiguous local times in Calendar events
When an event is scheduled at a local time that falls into a daylight‑saving fallback transition (e.g., 1:30 AM on the first Sunday in November in America/New_York), the Calendar API accepts a dateTime string together with a timeZone ID. The server stores the instant in UTC and preserves the original time‑zone metadata, but the API does not specify which offset is applied if the local time is ambiguous. The Time Zone API can return dstOffset and rawOffset for a UTC timestamp, yet it does not indicate which offset applies to a local time that overlaps.
Client‑side conversion uncertainty
Client libraries (e.g., JavaScript Intl.DateTimeFormat or Java java.time) rely on the host OS’s time‑zone database. If the server’s database is newer than the client’s, converting the stored UTC back to the original local time can yield a different offset, leading to a one‑hour shift. Additionally, all‑day events are stored as UTC midnight, which can change the local date when daylight saving changes occur.
Unresolved decision points
1. Should the server store an explicit flag indicating which offset was chosen for ambiguous times?
2. What is the recommended client‑side strategy for resolving the correct offset when converting back to local time?
3. How should all‑day events be handled to avoid off‑by‑one‑day bugs across DST transitions?