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:

  1. The first day of the week that contains the start date: March 25, 2007

  2. The number of minutes between midnight, March 25, 2007, and midnight, January 1, 1601: 213,654,240

  3. The number of minutes between recurrences: 1 × 10080 = 10080

  4. The value of the FirstDateTime field: 213,654,240 % 10080 = 8640 (0x000021C0)