Time Zone Fails: When Apps Get It Wrong (And It's a Big Deal)
Software is bad at time zones. Really bad. Here are some real stories of when it all went wrong.
The $1.2 Million Calendar Bug (2019)
A major airline's booking system had a subtle time zone bug: it treated all arrival times as local to the departure city. A flight from New York to London (5 hours time difference) would show the arrival time as "3:00 PM" — but that's New York time. In London, it was 8:00 PM. Passengers showed up at the wrong time. The airline had to rebook thousands of flights. The total cost was estimated at $1.2 million.
iOS Calendar "Forever Event" Bug (2022)
An iOS bug caused recurring calendar events to drift by one hour after a DST transition. You'd create a weekly meeting at 2 PM, and after the spring DST change, it would show at 3 PM. Apple fixed it in a later update, but not before thousands of people missed meetings for a week.
The Bitcoin Block Time Drift
Bitcoin blocks are supposed to be mined every 10 minutes on average. But the network relies on timestamps from individual miners, and those timestamps aren't always accurate. Some miners' systems have incorrect time zones or unsynchronized clocks. This doesn't break Bitcoin, but it means the blockchain's timestamp history has errors of up to a few hours in some blocks.
Google Docs Time Zone Confusion (2020)
During the early pandemic, Google Docs had a bug where documents created in one time zone would show different "last modified" times when viewed from another time zone. This caused chaos for remote teams trying to figure out who had edited what and when. The fix took two weeks.
The Hospital System That Lost a Day (2017)
A hospital in the US had a system that stored patient appointment times in UTC but displayed them without converting. A patient scheduled for "14:00 UTC" would see "14:00" on the screen, but their local time was Eastern (UTC-5). They'd show up 5 hours late. The hospital had to reschedule 200+ appointments before someone caught the bug.
Why This Keeps Happening
Time zones are deceptively complex. The rules change frequently (countries switch zones, DST dates shift). The IANA time zone database (tzdata) is updated regularly, but not all systems apply the updates promptly. And developers often test with their own time zone, missing edge cases for other zones.
The rule I follow: always store in UTC, always display in local time, and always label which is which. If you do those three things, you avoid 90% of time zone bugs.