Exchange Free Busy (FB) data itself is not simple or easy to read. This will describe what the data looks like in the Exchange store, how it’s calculated and processed through the Outlook client.
FB describes when a user is busy over a range of time, it doesn’t describe each appointment in that time frame. So when you see a user is busy from 1pm to 3pm, you don’t know if that is one appointment or several appointments. Knowing this will help understand how the data is calculated and stored. When I say Busy, this could be “Busy” or “Tentative” or “OOF”, they are all calculated in the same way.
FB data is stored on the Exchange server in the NON_IPM_SUBTREE \ SCHEDULE+FREE BUSY \ <OU>… folder, at this point you will need to select your OU based on your topology. Inside this folder is a message for each user that has FB data and inside this message is the users actual FB data. This is the folder/message that Outlook is looking for when it’s requesting FB data for a user.
How the FB data is stored:
Got your favorite beverage in your most comfortable chair? Good…
FB data is represented by the number of min from the beginning of the month to the beginning of the appointment, and from the beginning of the month to the end of the appointment in GMT stored in the DTStart and DTEnd properties.
Yea right, ok let’s look at an example. I have only one meeting in my calendar on
Oct 14th 1999 from 10am to 11am booked as busy.
From Oct 1 1999 to Oct 31 1999 = 44640 min
Then the appointment start time in min is:
(24hrs)(13days)+10hrs = 322hrs + 7hrsGMT = 329hrs
Now convert to min
(329hrs)(60min) = 19740min
So
Start Time = 19740min
End Time = 19800min (calculated in the same way)
These need to be converting to hex
Start Time = 4d1c
End Time = 4d58
Now the month is calculated by:
Value = (year)(16)+month
= (1999)(16)+10
= 31994
So here is what our appointment will look like in the Exchange FB folder
Month = 31994
Start time = 4d1c
End time = 4d58
There are several properties in the Exchange public store where all this data is stored and all can be viewed using MDBVU32, here they are.
0x684f = merged month
0x6850 = merged day
0x6851 = tentative month
0x6852 = tentative day
0x6853 = busy month
0x6854 = busy day
0x6855 = OOF month
0x6856 = OOF day
For the ONLY busy appointment in our calendar, the properties will now be saved as:
0x684f 31994
0x6850 1C 4D 58 4D
0x6853 31994
0x6854 1C 4D 58 4D
The start and end times (i.e. 0x6850) are displayed sequentially on one line in pairs low byte first for each FB type. FB records are clustered by type. That is all the FB records for the same type are collected, and sorted by start time. If an adjacent appointments overlap, they are merged into one FB record.
If you had these appointments in your calendar:
1. 10am 11am Busy
2. 10:30am Noon Busy
3. 2pm 4pm Tentative
4. 3pm 5pm Busy
Records 1,2 and 4 are collected and sorted by start time before being merged. After being merged there will be two Start/End pairs 10am – Noon and 3pm – 5pm for Busy and one pair for Tentative.
If you had these appointments in your calendar:
1. 10am 11am Busy
2. 11am 1pm Busy
3. 1pm 2pm Busy
There would be one Start/End pair 10am – 2pm for Busy as in our example.
Due to the complex nature of the process, anytime there is a change in Outlook FB data, it is up to the client to calculate and post the FB message. When Outlook updates the FB data, it deletes all the data in the folder and reposts all new data instead of trying to append.
OWA follows the same process, except the Exchange server must process and post the data on behalf of the user.
Outlook allows you to post a range of FB data, you can post 2 months, the default or 12 months, or whatever, of FB data. If Outlook has posted 9 months of data, and a change is made with OWA that requires an update to the FB data, only 2 months of data will be posted. There is no individual mailbox setting in OWA that allows users to specify the amount of data to post, this is done across all mailboxes by the Exchange server.
The FB folders can be viewed through Exchange System Manager (ESM) or OWA
From Exchange 200x
ESM, Folders, Public Folders right-click, view system folders, Schedule + Free Busy, <your OU>, click the content tab
From OWA:
http://<server name>/public/non_ipm_subtree/
You will see the FB messages but not the content from OWA. If you wish to look at the content, use MDBVU32.
Updated Jul 01, 2019
Version 2.0The_Exchange_Team
Microsoft
Joined April 19, 2019
Exchange Team Blog
You Had Me at EHLO.