Re: Where to use EXDATE
Doug Royer <[email protected]> Thu, 24 Mar 2005 23:05:16 -0700
| Newsgroups | gmane.ietf.calendar |
|---|---|
| Organization | IntelliCal.com |
| Message-ID | <[email protected]> |
Carsten Guenther wrote:
>
> Thanks for your answer Doug, but my question was only about the use of
> EXDATE. For simplicity lets say we are only dealing with appointments
> (no attendees). I know that I need to include the second VEVENT for the
> changed occurrence and I know how to deal with SEQUENCE and
> RECURRENCE-ID. My question was if I need to create an EXDATE property in
> the base event for the changed occurrence.
Some of this may be re-hash for you, I don't know ...
There is no such thing as a 'base event'. that was talk on this
mailing list that caused many to create busted implementations.
At any point in time there is one valid UID/SEQUENCE and use DTSTAMP
as a tie breaker, all other UID/SEQUENCE with lower SEQUENCE or DTSTAMP
values are totally obsolete data. There is no 'cary-over' (except
for METHOD:ADD) from previous UID/SEQUENCE/DTSTAMP sets. Toss all old
data and replace it with new data.
As is the idea that you can add instances by sending a new object
containing a RECURRENCE-ID as a substitute for METHOD:ADD. I do not
know how evolution does it, I do know that it is not portable. I do
know that there is no such specification or documentation for doing
it that way. Some point to a sentence or paragraph in 2445 or 2446
and ignore the section title that is describing something else.
The 2nd VEVENT is not for changed instances, its for details
that can not be described in the 1st VEVENT. You can not make one VEVENT
that says for the first three Mondays use LOCATEION:X and for the
next 3 Mondays use LOCATION:Y. So you have to create two VEVENTS
that have the SAME UID one METHOD:PUBLISH the 2nd METHOD:ADD.
ADD adds all instances from the 2nd into the 1st to make the one meeting
set. ADD is also used to add (DTSTAMP/RRULE/RDATE) or subtract
out (EXRULE/EXDATE) one or more instances to an existing VEVENT
or describe unique -other- properties that can not be described
in one VEVENT.
> The reason I am asking is that I am doing some testing with Evolution
> and our server (which currently does not create EXDATEs for changed
> occurrences, only for deleted ones). Evolution obviously expects those
> and will display two entries because of the missing EXDATE: one for the
> original occurrence and one for the changed one. I would like to know
> who is right here.
If the newer VEVENT has a higher SEQUENCE, then the old one is obsolete
and ALL of its OLD instances MUST be tossed (except if the newer is
METHOD:ADD).
The primary reason for EXDATE was to say 'this meeting is every
Monday (except 'this' one).
(A) If you are saying that UID/SEQUENCE:1 says there are appointments
A, B, C, and D. Then you get UID:SEQUENCE:2 that says A, C D. And
evolution is still showing 'B', then evolution is not 2445/24546
compliant. And the organizer should never need to have sent a
CANCEL.
(B) If you are saying that UID:SEQUENCE:1 says there are appointments
at A-8am-Mon, B-8am-Tue, C-8am-Wed, D-8am-Thu.
METHOD:PUBLISH
SEQUENCE:1
RRULE:FREQ=DAILY;COUNT=4
Then you get UID:SEQUENCE:2 that says: A-8am-Mon, B-3PM-Tue,
C-8am-Wed, D-8am-Thu.
METHOD:PUBLISH
SEQUENCE:2
RRULE:FREQ=DAILY;COUNT=4
EXDATE:B-8am-Tue
RDATE:B-3pm-Tue
and evolution is ALSO showing B-8am-Tue, then evolution is not
2445/2446 compliant.
NOTHING from UID:SEQUENCE:1 should be used after METHOD:PUBLISH
UID:SEQUENCE:2 has been received. No matter how they use RRULE or
EXRULE. UID:SEQUENCE:2 does NOT need to specifically CANCEL
the b-8am-Tue meeting. It can just send a new VEVENT with the new
times.
(C) OR they could: send UID:SEQUENCE:1 A-8am-Mon, B-8am-Tue,
C-8am-Wed, D-8am-Thu.
METHOD:PUBLISH
SEQUENCE:1
RRULE:FREQ=DAILY;COUNT=4
Then send METHOD:CANCEL UID:SEQUENCE:2 RECURRENCE-ID:B-8am-Tue.
METHOD:CANCEL
SEQUENCE:2
RECURRENCE-ID:B-8am-Tue
Followed by METHOD:ADD UID:SEQUENCE:3 B-3PM-Tue.
METHOD:ADD
SEQUENCE:3
DTSTART:B-3PM-Tue.
This is one of the reasons that CALSIFY exists, I can provide several
more way that vendors can do exactly the same thing when the USER
using the GUI simply changes B-8am-Tue to B-3PM-Tue.
(D) Some send
METHOD:PUBLISH
SEQUENCE:1
RRULE:FREQ=DAILY;COUNT=4
Then send:
METHOD:PUBLISH
SEQUENCE:2
RRULE:FREQ=DAILY;COUNT=4
EXDATE:B-8am-Tue
Then send or include with SEQUENCE:2:
METHOD:ADD
SEQUENCE:3
DTSTART:B-3PM-Tue
All of the (A), (B), (C), and (D) are valid per 2445/2446.
And I am not even going to list the details of how some
add instance using METHOD:PUBLISH and RECURRENCE-ID as
there is no RFC or draft documentation for that method.
So if I have not yet answered your question :-)
Send a snippet of the METHOD / SEQUENCE and
DTSTAMP / RRULE / EXRULE / whatever that is being
done on each side of the change and maybe I can
hit the mark.
--
Doug Royer | http://INET-Consulting.com
-------------------------------|-----------------------------
We Do Standards - You Need Standards
Doug.vcf
(text/x-vcard, 293 B)
begin:vcard fn:Doug Royer n:Royer;Doug org:INET-Consuiting.com adr:;;2756 N. GreenValley Pkwy #845;Henderson;NV;89014;U.S.A email;internet:[email protected] title:CEO tel;work:208-612-4638 tel;fax:866-494-8574 tel;cell:208-520-4044 x-mozilla-html:TRUE url:http://Royer.com version:2.1 end:vcard
smime.p7s
(application/x-pkcs7-signature, 4.6 KB) - not displayed