Data

UTC and time zones

Storing every time against one universal clock and converting only for display, so bookings, reminders and invoices land on the right day everywhere.

Updated October 2026 · with examples from our own builds

What does UTC and time zones mean in practice?

UTC is the shared reference clock. Systems that store all times in UTC, and convert to each person's or venue's own time zone only for display, avoid a whole class of bugs: classes on the wrong day, reminders at 3 a.m., financial years that roll over at the wrong moment.

The problem tends to appear when a product crosses a border, or when two parts of the system were built with different assumptions. The symptoms look random, such as one booking off by a day, and are hard to trace after the fact.

Two habits prevent most of it: never hard-code a default time zone, and give every venue or person their own named zone, such as Asia/Kolkata or Asia/Dubai.

UTC and time zones at a glance

Store in
UTC
Display in
The person's or venue's own named time zone
Never
Assume one country's time zone in code

Where has UTC and time zones come up in our builds?

Workout sessions once used UTC while individual classes used local time, so classes could land on the wrong day. Every date-sensitive path, from logs and bookings to check-ins and schedules, now uses UTC days.
Trainr
A pass removed the Asia/Kolkata default from clinics and providers; every venue now needs its own IANA time zone, and a checker fails on a quoted time zone anywhere outside the seed files.
EverybodysPet (built, not deployed)
The financial year behind the GST invoice series is computed in UTC, so the April rollover is deterministic.
Storafleet

Common questions about UTC and time zones

Which time zone should my database use?

UTC, for every stored timestamp. Convert to local time only when showing it to a person, using their own or the venue's named time zone.

Why are some bookings showing up on the wrong day?

Usually because two parts of the system handle dates differently, one in UTC and one in local time. Trainr fixed exactly this by moving every date-sensitive path to UTC days.

Related terms

Sources

Planning a product and not sure where UTC and time zones fits? Ask us, or browse all 116 terms in the glossary.