Skip to content
Preptima
mediumScenarioDesignMidSenior

Users in three countries book appointments, and one of those countries has just changed when its clocks move. What do you store, and what do you refuse to store?

For a future appointment, store the local wall-clock time plus an IANA time zone ID such as Europe/Lisbon, and treat any UTC instant as a cache you recompute when time zone rules change. Refuse fixed offsets, abbreviations like IST, and server-local times. Past events are stored as UTC instants.

5 min readUpdated 2026-10-09

Answer

Short answer

Store intent, not arithmetic. A future appointment is a promise about a wall clock in a place, so you store the local date and time plus an IANA time zone ID (Europe/Lisbon, America/Mexico_City) and compute the UTC instant from them. That instant is a cache: when a country changes its daylight saving time rules, you recompute it. You refuse to store fixed offsets like +01:00, ambiguous abbreviations like IST, and anything in the server's local time zone.

Was this answer helpful?

Likely follow-ups

  • A weekly 09:00 appointment is booked for a year. How do you store the series so every occurrence stays at 09:00 local through two clock changes?
  • Your servers picked up a tzdata release last night. Which reminder jobs do you have to reschedule, and how do you find them?
  • A customer books 01:30 on the night the clocks go back. What does your API return, and what does the confirmation email say?
  • The appointment is a video call between Toronto and Berlin. Which zone do you store, and what does each participant see when only one side changes its rules?

Related questions

Masterclass guide