starts_at and ends_at to Seam in UTC, and Seam converts them to the lock’s local time when it programs the code onto the lock.
When a code’s time frame crosses a daylight saving time (DST) change, its start and end fall on different UTC offsets. For example, a code that starts on October 30 and ends on November 3 in New York starts at UTC−4 and ends at UTC−5. To convert both times correctly, Seam needs the lock’s time zone.
How Seam Handles DST Changes
How Seam programs a code that crosses a DST change depends on whether it knows the lock’s time zone. The time zone is indevice.location.time_zone.
Time Zone Known
Seam convertsstarts_at and ends_at separately, each with the offset in effect at that moment. The code starts and ends exactly when you requested, on both sides of the DST change. You don’t need to do anything.
Time Zone Unknown
Seam can’t tell whether the lock observes DST, so it applies a 1-hour safety buffer to the side of the time frame affected by the change. The buffer makes sure guests can always get in during the time frame you requested:
As a result, the code may be usable up to 1 hour outside the time frame you requested. The access code’s
starts_at and ends_at still show the times you requested.
When Seam programs a buffered code onto the lock, it adds the time_frame_adjusted_for_unknown_time_zone warning to the access code. The warning’s metadata includes the time zone Seam used to detect the DST change (probe_zone) and the time of the change (transition_at). Treat this warning as informational: the code works, with the buffer described above.
Seam also applies the buffer to a code that it programs onto the lock before a DST change when the code starts after that change. Seam programs time-bound codes up to 72 hours before starts_at, so this affects codes that start shortly after a DST change. Codes that neither cross a DST change nor are programmed across one use the exact times you requested.