Business Hours

Business Hours include Regular, Special/Custom, and Holiday Hours. Regular Hours are the standard day to day hours that are always used unless there are Special/Custom or Holiday hours occurring on a specific date. They are typically the normal Monday through Friday hours. Special/Custom and Holiday hours are unique hours that occur on a specific date. On our interfaces, the weekly hours display Regular hours, unless there is a special/custom or holiday occuring within the upcoming week; in that case, the regular hours are replaced by the special/custom or holiday hours.

The BusinessHours section of the XML allows the entry of contiguous and non-contiguous regular hours, special hours for specific holidays, and special hours for other times of the year where hours may change, such as Black Friday. Currently only single days can be submitted, so special hours over a set of days, say the week leading up to Christmas, will need to be entered as individual days. Additionally, hours have to be entered for each location: blanket entries for all locations are not available via the XML.

Non-contiguous hours are known as multiple hours or split hours. They allow the hours for any day to be split into two or more time blocks, allowing for a break between them - for lunch, for example. Multiple hours can be entered with Regular, Special/Custom, and Holiday hours. To enter multiple hours, simply repeat the DetailHours section. Note that there must be a break between split hours of 15 minutes or more, and that the second set must occur after the first set.

The StatusId field is required, and can be used to indicate if the location is open, closed, or open 24 hours: 1=Open, 2=Closed, 3=Open 24 hours


Regular Hours

  • Regular hours: include DaysOfWeekId & StatusId
  • Regular Hours omit Date
  • Regular Hours set isSpecialHour = false

Special Hours

  • Special Hours Include Date & StatusId
  • Special Hours optionally include Name
  • Special Hours omit DaysOfWeekId
  • Special Hours set IsSpecialHour = true

Holiday Hours

  • Holiday Hours: include Date, StatusId & HolidayId
  • Holiday Hours optionally include Name. Name is not required, as there is a Name associated with the HolidayId that will be associated with the hours automatically.
  • Holiday Hours omit DaysOfWeekId
  • Holiday Hours set IsSpecialHour = true

Syntax:

<xs:sequence>
  <xs:element name="BusinessHours" minOccurs="0">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Hours" minOccurs="1" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="DaysOfWeekId" type="xs:int" minOccurs="0" />
              <xs:element name="StatusId" type="xs:int" minOccurs="0" />
              <xs:element name="HolidayId" type="xs:int" minOccurs="0" />
              <xs:element name="Date" type="xs:date" minOccurs="0" />
              <xs:element name="Name" type="xs:string" />
              <xs:element name="IsSpecialHour" type="xs:boolean" minOccurs="0" />
              <xs:element name="DetailHours" type="xs:time" minOccurs="0" />
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="OpeningTime" type="xs:time" minOccurs="0" />
                    <xs:element name="ClosingTime" type="xs:time" minOccurs="0" />
                  </xs:sequence>
                </xs:complexType>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:sequence>

Example:

<BusinessHours>
  <Hours>
    <DaysOfWeekId>1</DaysOfWeekId>
    <StatusId>1</StatusId>
    <IsSpecialHour>false</IsSpecialHour>
    <DetailsHours>
      <OpeningTime>09:00:00</OpeningTime>
      <ClosingTime>17:00:00</ClosingTime>
    </DetailsHours>
  </Hours>
  <Hours>
    <DaysOfWeekId>2</DaysOfWeekId>
    <StatusId>1</StatusId>
    <IsSpecialHour>false</IsSpecialHour>
    <DetailsHours>
      <OpeningTime>00:00:00</OpeningTime>
      <ClosingTime>00:00:00</ClosingTime>
    </DetailsHours>
  </Hours>
  <Hours>
    <DaysOfWeekId>3</DaysOfWeekId>
    <StatusId>1</StatusId>
    <IsSpecialHour>false</IsSpecialHour>
    <DetailsHours>
      <OpeningTime>09:00:00</OpeningTime>
      <ClosingTime>12:00:00</ClosingTime>
    </DetailsHours>
    <DetailsHours>
      <OpeningTime>14:00:00</OpeningTime>
      <ClosingTime>18:00:00</ClosingTime>
    </DetailsHours>
  </Hours>
  <Hours>
    <DaysOfWeekId>3</DaysOfWeekId>
    <StatusId>1</StatusId>
    <Date>2026-01-29</Date>
    <Name>Special Hour</Name>
    <IsSpecialHour>true</IsSpecialHour>
    <DetailsHours>
      <OpeningTime>08:15:00</OpeningTime>
      <ClosingTime>18:00:00</ClosingTime>
    </DetailsHours>
  </Hours>
  <Hours>
    <DaysOfWeekId>7</DaysOfWeekId>
    <StatusId>1</StatusId>
    <HolidayId>498</HolidayId>
    <Date>2026-02-14</Date>
    <IsSpecialHour>true</IsSpecialHour>
    <DetailsHours>
      <OpeningTime>08:15:00</OpeningTime>
      <ClosingTime>18:00:00</ClosingTime>
    </DetailsHours>
  </Hours>
  <Hours>
    <StatusId>2</StatusId>
    <Date>2026-02-07</Date>
    <Name>Closed Special Hours</Name>
    <IsSpecialHour>true</IsSpecialHour>
  </Hours>
</BusinessHours>