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:

  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)