4.1.1.2 Weekly Recurrence BLOB with Exceptions
The following example shows the binary recurrence data for a meeting request.
The meeting request is the same as the request that is used in section 4.1.1.1 (occurs every Monday, Thursday, and Friday from 10:00 A.M. to 10:30 A.M., ends after 12 occurrences), but in this example, the following information has been changed in the exception:
The subject has been changed from "Simple Recurrence" to "Simple Recurrence with exceptions".
The location has been changed from 34/4639 to 34/4141.
The start date and time has been modified from Monday 4/16/2007 10:00 A.M. to Monday 4/16/2007 11:00 A.M.
The end date and time has been modified from Monday 4/16/2007 10:30 A.M. to Monday 4/16/2007 11:30 A.M.
The following is the recurrence BLOB.
-
043004300B2001000000C0210000010000000000000032000000222000000C0000000000000001000000A096BC0C01000000A096BC0C8020BC0C20ADBC0C0630000009300000580200007602000001003499BC0C5299BC0CF898BC0C11002200210053696D706C6520526563757272656E6365207769746820657863657074696F6E730800070033342F34313431000000000400000000000000000000003499BC0C5299BC0CF898BC0C2100530069006D0070006C006500200052006500630075007200720065006E006300650020007700690074006800200065007800630065007000740069006F006E0073000700330034002F0034003100340031000000000000000000
Size: 0x0106 bytes
The content of the modified recurrence BLOB is listed in the following table.
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 0 (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 |
Ends 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 |
01 00 00 00 |
There is one deleted instance. |
DeletedInstanceDate |
ULONG |
4 |
A0 96 BC 0C |
The date of the deleted or modified instance is 4/16/2007 at 12:00:00 A.M. |
ModifiedInstanceCount |
ULONG |
4 |
01 00 00 00 |
There is one modified instance. |
ModifiedInstanceDate |
ULONG |
4 |
A0 96 BC 0C |
The date of the modified instance is 4/16/2007 at 12:00:00 A.M. |
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 3/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 4/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 |
01 00 |
One exception. |
ExceptionInfo structure block |
||||
StartDateTime |
ULONG |
4 |
34 99 BC 0C |
The start date and time of the exception is 4/16/2007 at 11:00:00 A.M. |
EndDateTime |
ULONG |
4 |
52 99 BC 0C |
The end date and time of the exception is 4/16/2007 at 11:30:00 A.M. |
OriginalStartTime |
ULONG |
4 |
F8 98 BC 0C |
The original start date and time of the modified occurrence was 4/16/2007 at 10:00:00 A.M. |
OverrideFlags |
WORD |
2 |
11 00 |
A value of 0x0011 indicates that two override flags are present: ARO_SUBJECT (0x0001) and ARO_LOCATION (0x0010). |
SubjectLength |
WORD |
2 |
22 00 |
The length of the subject including a null terminator is 34 characters. |
SubjectLength2 |
WORD |
2 |
21 00 |
The length of the subject is 33 characters. |
Subject |
BYTE array |
Varies |
53 69 6D 70 6C 65 20 52 65 63 75 72 72 65 6E 63 65 20 77 69 74 68 20 65 78 63 65 70 74 69 6F 6E 73 |
"Simple Recurrence with exceptions" |
LocationLength |
WORD |
2 |
08 00 |
The length of the location string including a null terminator is 8 characters. |
LocationLength2 |
WORD |
2 |
07 00 |
The length of the location string is 7 characters. |
Location |
BYTE array |
Varies |
33 34 2F 34 31 34 31 |
The modified location is "34/4141". |
ReservedBlock1Size |
ULONG |
4 |
00 00 00 00 |
There is no data in this skip block. |
ExtendedException structure block |
||||
ChangeHighlight |
BYTE array |
Varies |
04 00 00 00 00 00 00 00 |
The size of the ChangeHighlight structure is 4. The value of the PidLidChangeHighlight property (section 2.2.6.2) is zero for this exception. |
ReservedBlockEE1Size |
ULONG |
4 |
00 00 00 00 |
There is no data in this skip block. |
StartTime |
ULONG |
4 |
34 99 BC 0C |
The start time of the recurrence is 4/16/2007 at 11:00:00 A.M. |
EndTime |
ULONG |
4 |
52 99 BC 0C |
The end time of the recurrence is 4/16/2007 at 11:30:00 A.M. |
OriginalStartTime |
ULONG |
4 |
F8 98 BC 0C |
The original start date and time of the recurrence was 4/16/2007 at 10:00:00 A.M. |
WideCharSubjectLength |
WORD |
2 |
21 00 |
The length of the Unicode subject string is 33 characters. |
WideCharSubject |
BYTE array |
Varies |
53 00 69 00 6D 00 70 00 6C 00 65 00 20 00 52 00 65 00 63 00 75 00 72 00 72 00 65 00 6E 00 63 00 65 00 20 00 77 00 69 00 74 00 68 00 20 00 65 00 78 00 63 00 65 00 70 00 74 00 69 00 6F 00 6E 00 73 00 |
The modified Unicode subject is "Simple Recurrence with exceptions". |
WideCharLocationLength |
WORD |
2 |
07 00 |
The Unicode location string is 7 characters. |
WideCharLocation |
BYTE array |
Varies |
33 00 34 00 2F 00 34 00 31 00 34 00 31 00 |
The modified Unicode location is: "34/4141". |
ReservedBlockEE2Size |
ULONG |
4 |
00 00 00 00 |
No data in this skip block. |
ReservedBlock2Size |
ULONG |
4 |
00 00 00 00 |
No data in this skip 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)