3.1.4.4.1 Interpreting xs:dateTime Type Values in MeetingSuggestion Entities

Clients SHOULD examine the values of the StartTime (section 2.2.3.1.29) and EndTime (section 2.2.3.1.17) elements to determine whether they are encoded dates. Encoded dates are used to represent incomplete dates. There are two types of encoded dates: precise dates and relative dates.

Precise dates are dates that are missing one or more of either day, month, or year, such as May 25 or June 2012. Relative dates are dates that defined relative to when a Message object was sent, such as "tomorrow", "next Friday", or "in two weeks".

If the date portion of the value is greater than June 15, 1436, the date is not an encoded date and requires no interpretation. The value in the element is returned to the mail add-in. If the date portion of the value is less than or equal to June 15, 1436, the date is encoded and MUST be interpreted according to the following procedure before returning it to the mail add-in.

  1. The client determines the number of days from January 1, 0001 to the date portion of the value. That number is evaluated as an integer.

  2. The integer value from step 1 is represented in binary format, and all but the 18 least significant bits are ignored to generate an 18-bit integer.

  3. The 3 most significant bits are examined. If they are set to 000, the encoded date is a precise date. The 15 least significant bits are interpreted as specified in section 3.1.4.4.1.1. If they are set to 001, the encoded date is a relative date. The 15 least significant bits are interpreted as specified in section 3.1.4.4.1.2.