4.1.1.1 Weekly Recurrence BLOB Without Exceptions
The following example shows the binary recurrence data for an appointment that has the following characteristics:
Beginning on Monday, March 26, 2007, occurs every Monday, Thursday, and Friday from 10:00 A.M. to 10:30 A.M.
The recurrence ends after 12 occurrences.
The following is the recurrence BLOB.
-
043004300B2001000000C0210000010000000000000032000000222000000C0000000000000000000000000000008020BC0C20ADBC0C0630000009300000580200007602000000000000000000000000
The following table lists the content of the recurrence BLOB.
Field name |
Type |
Size |
Example |
Description |
---|---|---|---|---|
ReaderVersion |
WORD ([MS-DTYP]) |
2 |
04 30 |
This field indicates version 0x3004. |
WriterVersion |
WORD |
2 |
04 30 |
This field indicates version 0x3004. |
RecurFrequency |
WORD |
2 |
0b 20 |
The pattern of the recurrence is weekly. |
PatternType |
WORD |
2 |
01 00 |
The pattern type is Week (0x0001). |
CalendarType |
WORD |
2 |
00 00 |
The calendar type is Gregorian (0x0000). |
FirstDateTime |
ULONG ([MS-DTYP]) |
4 |
c0 21 00 00 |
The number of minutes offset from the reference date, January 1, 1601, is 8640 (0x000021C0), which corresponds to the first ever week of January 7, 1601. See the calculation steps following this table. |
Period |
ULONG |
4 |
01 00 00 00 |
The recurrence occurs every week (0x0001). |
SlidingFlag |
ULONG |
4 |
00 00 00 00 |
This field is only used for scheduling tasks. Otherwise, the value can only be zero). |
PatternTypeSpecific |
BYTE array |
Varies |
32 00 00 00 |
The recurring appointment occurs on Monday, Thursday, and Friday. The value is determined by adding together the binary value of the decimal day mask (Sunday = 2^0 = 1, Monday = 2^1 = 2, Tuesday = 2^2 = 4, and so on). Monday (0x00000002) + Thursday (0x0000010) + Friday (0x00000020) = 0x00000032 |
EndType |
ULONG |
4 |
22 20 00 00 |
End after n occurrences. (0x00002022) |
OccurrenceCount |
ULONG |
4 |
0C 00 00 00 |
The recurrence ends after 12 occurrences. 12 decimal value = 0x0C hexadecimal value. |
FirstDOW |
ULONG |
4 |
00 00 00 00 |
The first day of the week on the calendar is Sunday (the default value). |
DeletedInstanceCount |
ULONG |
4 |
00 00 00 00 |
There are no deleted instances. |
ModifiedInstanceCount |
ULONG |
4 |
00 00 00 00 |
There are no modified instances. |
StartDate |
ULONG |
4 |
80 20 BC 0C |
The start date of the recurrence given in minutes since midnight January 1, 1601, is 213,655,680 (0x0CBC2080), which corresponds to March 26, 2007, 12:00:00 A.M. |
EndDate |
ULONG |
4 |
20 AD BC 0C |
The end date of the recurrence given in minutes since midnight January 1, 1601, corresponds to April 20, 2007, 12:00:00 A.M. |
ReaderVersion2 |
ULONG |
4 |
06 30 00 00 |
This field indicates version 0x00003006. |
WriterVersion2 |
ULONG |
4 |
09 30 00 00 |
This field indicates version 0x00003009. |
StartTimeOffset |
ULONG |
4 |
58 02 00 00 |
The hexadecimal start time of the recurrence is 0x00000258, which corresponds to 600 in decimal; 600 minutes is 10 hours, which is 10:00 A.M. |
EndTimeOffset |
ULONG |
4 |
76 02 00 00 |
The hexadecimal end time of the recurrence is 0x000000276, which corresponds to 630 minutes, which is 10:30 A.M. |
ExceptionCount |
WORD |
2 |
00 00 |
There are no exceptions in this recurrence BLOB. |
ReservedBlock1Size |
ULONG |
4 |
00 00 00 00 |
There is no data in the reserved block. |
ReservedBlock2Size |
ULONG |
4 |
00 00 00 00 |
There is no data in the reserved block. |
The steps for calculating the value of the FirstDateTime field for a weekly recurrence, as specified in section 2.2.1.44.1.1, are applied to this example as follows:
The first day of the week that contains the start date: March 25, 2007
The number of minutes between midnight, March 25, 2007, and midnight, January 1, 1601: 213,654,240
The number of minutes between recurrences: 1 × 10080 = 10080
The value of the FirstDateTime field: 213,654,240 % 10080 = 8640 (0x000021C0)