Subject: Re: RFC2445/RFC2446: SEQUENCE property

From: "Michael Fair" <[email-masked]>
Date: Wed, 10 Dec 2003 10:31:22 -0800

> >Can recurrence instances of a vevent component have a
> >larger(or different) SEQUENCE when the main vevent
> >component (that describes the recurrence set) has a
> >smaller SEQUENCE?

Yes, they absolutely can.

> If you have:
>
>     VEVENT:  UID:1, SEQUENCE:6 (NO RECURRENCE-ID)
>
> Then you get a:
>
>     VEVENT: UID:1, SEQUENCE:7 (With a RECURENCE-ID)
>
>     then you are being told that the new SEQUENCE number is 7
>     and that exactly one instance has been updated with the details
>     in the new object. Now the main vevent is also at 7.

No, this is not true.

The main vevent is still at 6.
UID:1/SEQ:6 is the set identifier and descriptor.

Any Recurrence-ID generated from the set described by UID:1/SEQ:6 is
an instance of UID:1.  Any Recurrence-ID not described in that vevent
is not an instance of UID:1.  Rescheduling any of the instances described
by UID:1/SEQ:6 has no impact on the set described by UID:1/SEQ:6.

Put another way:
The UID:1/SEQ:6 set of Recurrence-IDs are the RECURRENCE-IDs that _must_
be used when addressing individual instances.  Any instance
update/reschedule
(aka with Recurrence-ID), _never_ impacts the SEQUENCE of the base vevent,
it is not considered a rescheduling of the entire series.  It is just an
update to one of the instances described by the set from UID:1/SEQ:6.

> >or
> >Is SEQUENCE property for a vevent component
> >different than the SEQUENCE property of an individual
> >vevent recurrence instance? If they are different, how are
> >they related?
> >
> >For example an instance update might change only the
> >SEQUENCE of the instance, whereas the main vevent
> >does not change.

At no point in time will an instance sequence ever be less than
the main vevent.

If you receive a REQUEST message with UID:1 and no RECURRENCE-ID it
has the effect of throwing away ALL prior instances and recreating
every instance based on the new description.  The SEQUENCE for all
instances is the same as the message when the process is complete.

If you receive an ADD message with UID:1 this will add all instances
described by the message.  AT the end of the process it will update
the SEQUENCE for all prior instances because this is considered a
rescheduling of the entire series.  The main vevent will be updated
and all instances will be updated to the SEQUENCE from the message.
(In this case, the SEQUENCE chosen will be one higher than the
largest instance SEQUENCE of the entire series (so 8 in the above snippet).
If you received a SEQUENCE that was more than one higher than the
largest instance SEQUENCE then you should request a refresh.  The
same is not true for a REQUEST message.)

There, from my understanding, are questions about what impact cancelling
an instance has on the entire series.

-- Michael --