I'm parsing the recurrence blob of recurring calendar appointments in order to determine deleted occurrences, following this answer. The MS documentation has some examples, but these do not document every detail:
- Daily with exceptions
- Weekly without exceptions
- Weekly with exceptions
- n-Monthly with exceptions
- Yearly with exceptions
The blobs start with this data:
Field | Type |
---|---|
ReaderVersion | WORD |
WriterVersion | WORD |
RecurFrequency | WORD |
PatternType | WORD |
CalendarType | WORD |
FirstDateTime | ULONG |
Period | ULONG |
SlidingFlag | ULONG |
PatternTypeSpecific | BYTE array |
EndType | ULONG |
OccurrenceCount | ULONG |
FirstDOW | ULONG |
DeletedInstanceCount | ULONG |
DeletedInstanceDate | ULONG |
... |
I need to retrieve the (one or more) DeletedInstanceDate(s). Complications are:
- From the daily example,
PatternTypeSpecific
seems to be omitted for daily recurrences. Is this assumption correct? The bytes that I see when parsing seem to indicate 'yes'. PatternTypeSpecific
is documented as a BYTE array of varying length. I need to know the length, but can't find it.
Is PatternTypeSpecific
an AppointmentRecurrencePattern
structure as documented here, or is it something else? How can I know its size?