4.4 Calculating the PidTagScheduleInfoFreeBusyBusy Property

The PidTagScheduleInfoFreeBusyBusy property (section 2.2.1.2.4) is calculated by using the following equations:

  • Start time is the number of minutes between midnight on the first day of the month and the start time of the event in hexadecimal. The number of days before the scheduled date in that particular month × 24 (hours/day) × 60 (minutes/hour) + (hour of start time on a 24-hour clock adjusted for UTC) × 60 (minutes/hour) = Text value of start time in minutes

    Note Each time zone requires a different adjustment for UTC.

  • End time is the number of minutes between midnight on the first day of the month and the end time of the event in hexadecimal.

For example, assume there is only one event with a free/busy status of busy that occurs during the months of February, March, April, and May. It occurs between noon and 1:00 P.M. Pacific Standard Time on February 2. The publishing interval is three months. The time of publishing is 12:00 A.M. on February 25, UTC.

The value is determined by using the following calculations.

Start time

Number of days before the scheduled date in that particular month = 1

Start hour = noon = 12 on a 24-hour clock + 8 for UTC conversion = 20

Note: +8 is the difference between UTC and Pacific Standard Time. The adjustment is different for each time zone.

Start time in minutes = (1 * 60 * 24) + (20 * 60) = 1440 + 1200 = 2640

Hexadecimal start time = 0A50

End time

Number of days before the scheduled date in that particular month = 1

End hour = 1:00 P.M. Pacific Standard Time = 13 on a 24-hour clock + 8 for UTC conversion = 21

Note: +8 is the difference between UTC and Pacific Standard Time. The adjustment is different for each time zone.

End time in minutes = (1 * 60 * 24) + (21 * 60) = 1440 + 1260 = 2700

Hexadecimal end time = 0A8C

Note In some cases, the UTC conversion changes the date of the start time or end time.

The multivalue binary will have one binary value. The binary value will have the following four bytes, encoded in little-endian — the first two bytes for the start time and the second two bytes for the end time: 0x50, 0x0A, 0x8C, 0x50.