4.1.1.5 Yearly Recurrence BLOB with Exceptions

The following example shows the binary recurrence data for an appointment that has the following characteristics:

  • Occurs every April 19, effective 4/19/2011, from 8:00 A.M. to 8:30 A.M.

  • Move the instance on 4/19/2012 to 4/21/2012.

The following is the recurrence BLOB for this recurrence.

 043004300D200200000040FA01000C0000000000000013000000232000000A000000000000000100000060CCE40C01000000A0D7E40CA0C1DC0CDF80E95A0630000009300000E0010000FE010000010080D9E40C9ED9E40C40CEE40C00000000000004000000000000000000000000000000

Size: 0x0072 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

0D 20

The pattern of the recurrence is yearly.

PatternType

WORD

2

02 00

The pattern type is Month (0x0002).

CalendarType

WORD

2

00 00

The calendar type is Gregorian.

FirstDateTime

ULONG ([MS-DTYP])

4

40 FA 01 00

The number of minutes offset from the reference date, January 1, 1601, is 129,600 (0x0001FA40), which corresponds to the first day of the first ever month of April, 1601. See the calculation steps following this table.

Period

ULONG

4

0C 00 00 00

The recurrence occurs every 12 months.

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

13 00 00 00

The recurrence falls on the 19th of the month.

EndType

ULONG

4

23 20 00 00

Never ends. (0x00002023)

OccurrenceCount

ULONG

4

0A 00 00 00

Not used.

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

60 CC E4 0C

The date of the deleted instance is 4/19/2012.

ModifiedInstanceCount

ULONG

4

01 00 00 00

There is one modified instance.

ModifiedInstanceDate

ULONG

4

A0 D7 E4 0C

The date of the modified instance is 4/21/2012.

StartDate

ULONG

4

A0 C1 DC 0C

The start date of the recurrence is 4/19/2011.

EndDate

ULONG

4

DF 80 E9 5A

The end date of the recurrence is never. (12/31/4500)

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

E0 01 00 00

The appointment's start time is 480 minutes past midnight, or 8:00 A.M.

EndTimeOffset

ULONG

4

FE 01 00 00

The appointment's end time is 510 minutes past midnight, or 8:30 A.M.

ExceptionCount

WORD

2

01 00

One exception.

ExceptionInfo structure block for exception 1:

StartDateTime

ULONG

4

80 D9 E4 0C

The start date and time of the exception is 4/21/2012, 8:00 A.M.

EndDateTime

ULONG

4

9E D9 E4 0C

The end date and time of the exception is 4/21/2012, 8:30 A.M.

OriginalStartTime

ULONG

4

40 CE E4 0C

The original start date and time of the occurrence was 4/19/2012, 8:00 A.M.

OverrideFlags

WORD

2

00 00

None.

ReservedBlock1Size

ULONG

4

00 00 00 00

There is no data in this skip block.

ExtendedException structure block for exception 1:

ChangeHighlight

Byte array

Varies

04 00 00 00

00 00 00 00

The size of the ChangeHighlight field 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.

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 yearly recurrence, as specified in section 2.2.1.44.1.1, are applied to this example as follows:

  1. The first day of the month that contains the start date: April 1, 2011

  2. The number of calendar months between midnight, April 1, 2011, and midnight, January 1, 1601: 4923

  3. The offset of months within the year 1601: 4923 % 12 = 3

  4. The number corresponding to the first recurrence month within the year 1601: 3 + 1 = 4

  5. The number of minutes between midnight, April 1, 1601, and midnight, January 1, 1601: 129,600 (0x0001FA40).