Skip to main content
Schlage locks enforce time-bound access codes in the lock’s local time. Seam converts the UTC starts_at and ends_at that you send into the lock’s local time. To do this exactly for codes that cross a daylight saving time (DST) change, Seam needs the lock’s IANA time zone, such as America/New_York. Seam infers the time zone for most Schlage locks automatically. This guide explains when it can’t, what happens in that case, and how to set the time zone yourself.
This guide applies to devices with a device_type of schlage_lock.

How Seam Determines a Lock’s Time Zone

Schlage reports each lock’s current UTC offset, such as -05:00, but not its time zone. Seam infers the time zone from the offsets that the lock reports:
  • Two offsets from a DST cycle: After a lock has reported both its standard and its daylight saving offset, the pair identifies the time zone. For example, -05:00 and -04:00 identify America/New_York.
  • An offset used only by time zones without DST: Some offsets identify a time zone on their own. For example, -10:00 identifies Pacific/Honolulu.
Until one of these applies, the lock’s time zone is unknown. A single summer offset isn’t enough. For example, a lock that reports -07:00 in the summer could be in Pacific Time, which observes DST, or in Arizona, which doesn’t. Seam doesn’t guess, because a wrong time zone shifts every code on the lock by an hour. As a result, the time zone is often unknown for:
  • Recently connected locks that haven’t gone through a DST change yet. Seam infers their time zone after the next DST change.
  • Locks in places that don’t observe DST, such as Arizona. These locks report the same offset all year, so Seam may never infer their time zone.

What Happens When the Time Zone Is Unknown

All Schlage features work without a time zone, including time-bound access codes. The only difference is for time-bound codes that cross a DST change. For these codes, Seam applies a 1-hour safety buffer on the lock so that guests can always get in during the time frame you requested. For a spring-forward change, the code ends up to 1 hour later. For a fall-back change, the code starts up to 1 hour earlier. Seam also adds the time_frame_adjusted_for_unknown_time_zone warning to the access code. For details, see Schlage Locks and Daylight Saving Time.

Find Locks Without a Time Zone

A lock’s time zone is in device.location.time_zone. If this property is empty, the time zone is unknown. To find these locks, list your Schlage locks and check each one:
/devices/list returns results in pages. If you have many devices, see Pagination to retrieve all of them.

Set a Lock’s Time Zone

To set the time zone for one or more locks, use /devices/report_provider_metadata. Set schlage_metadata.time_zone for each lock to its IANA time zone. You can include multiple locks in one request:
The Java and Go SDKs don’t include a method for /devices/report_provider_metadata, so the Java and Go examples call the endpoint over HTTP.
Keep the following in mind:
  • Use IANA time zone names, such as America/Chicago or America/Phoenix. Abbreviations such as EST and offsets such as -05:00 aren’t accepted.
  • All devices in a request succeed or fail together. If Seam can’t update one of the devices, for example because its device_id doesn’t match a Schlage lock in your workspace, Seam doesn’t update any of them.
  • Seam doesn’t overwrite a time zone that you set. Seam only infers a time zone for locks that don’t have one.
  • You can change the time zone at any time by calling /devices/report_provider_metadata again.

What Changes After You Set the Time Zone

After you set a lock’s time zone:
  • device.location.time_zone contains the time zone.
  • Seam removes the time_frame_adjusted_for_unknown_time_zone warning from the lock’s access codes.
  • Seam programs time-bound codes with the exact times you requested, on both sides of any DST change.
Setting the time zone doesn’t reprogram codes that are already on the lock. Seam programs time-bound codes onto the lock up to 72 hours before their starts_at, so any code that Seam has already programmed keeps the schedule it was programmed with, including any buffer. To get exact times for codes that cross the next DST change, set the time zone at least 72 hours before those codes start. For more information, see Native Scheduling.

Choose the Correct Time Zone

A wrong time zone is worse than no time zone. If you set a time zone that doesn’t match the lock’s location, Seam programs every time-bound code on the lock at the wrong local time, which can lock guests out.
  • Base the time zone on the property’s address, not on the state or country alone. Several US states, including Florida, Indiana, Kentucky, Tennessee, and Texas, span more than one time zone.
  • Use the time zone for locations that don’t observe DST. For example, use America/Phoenix for most of Arizona, not America/Denver.
  • Find the right IANA name in the list of tz database time zones.

Next Steps