[microformats-discuss] Repeating cal events?

Tantek Ç elik tantek at cs.stanford.edu
Mon Aug 1 09:32:05 PDT 2005


On 8/1/05 3:02 AM, "Brian Suda" <brian.suda at gmail.com> wrote:

>> I believe this would be the markup equivalent using hCalendar (note: this is
>> only a fragment of an event):
>> 
>> from
>> <abbr class="dtstart" title="20050623T121000">12:10 pm</abbr> -
>> <abbr class="duration" title="PT40M">12:50 pm</abbr>
>> <abbr class="rrule" title="FREQ=WEEKLY;COUNT=17;INTERVAL=2;BYDAY=TH"> every
>> other Thursday for 34 weeks</abbr>,
> 
> I think that rrule and exrule are still up for debate,

Certainly I'd say we're still figuring out best practices :)

> if we follow
> the same convention for this as other properties with attributes then
> the values should be seperated from the property names (we currently
> don't do this for TEL because there is only one property type 'TYPE'
> but with RRULE there are several). Since these attributes also have
> values, i think that they should be represented seperately nested
> within the property.
> 
> For example:
> <abbr class="dtstart" title="20050623T121000">12:10 pm</abbr> -
> <abbr class="duration" title="PT40M">12:50 pm</abbr>
> <span class="rrule">
> <abbr class="freq" title="WEEKLY"/>
> <abbr class="count" title="17"/>
> <abbr class="interval" title="2"/>
> <abbr class="byday" title="TH"/>
> every other Thursday for 34 weeks</span>,

The problem with that is that much of the data is now invisible, inside
empty <abbr/> elements, which in themselves (empty abbr) are a bit of a
semantic abuse.


> Does anyone else have a thought on how to encode the above?

We can attempt to improve upon your markup:

<abbr class="dtstart" title="20050623T121000">12:10 pm</abbr> -
<abbr class="duration" title="PT40M">12:50 pm</abbr>
<span class="rrule">
<abbr class="freq" title="WEEKLY">every</abbr>
<abbr class="interval" title="2">other</abbr>
<abbr class="byday" title="TH">Thursday</abbr>
<abbr class="count" title="17">for 34 weeks</abbr></span>,

But that has the following flaws:
1. It's not clear to a casual observer that "every" implies WEEKLY.
2. Same with "other" and interval=2
3. Saying that "TH" is an expansion of "Thursday" is beyond a stretch.
4. "17" and 34 do seem related, but not equivalent without interval=2.


> since each attribute is independent of the others (IMHO) they should
> be broken out.

That's a reasonable general assertion.  I'm worried that there won't always
be something in the prose to attach each sub-property to.  In this case,
there is something to attach each sub-property to, but as pointed out, this
results in some semantic abuses.

In my opinion it is more important to avoid the semantic abuses by keeping
the full RRULE value on one element (where it is possible for someone who
understands RRULEs to see the correlation between the RRULE and the prose it
marks up, than it is to break down each sub-property and have either empty
elements with data (that's asking for bad data), or semantic abuse.

Thus I propose that we should break down the data only when it doesn't
compromise (a) the visibility of the data, and (b) proper use of semantic
XHTML.


> X2V currently does NOT support rrule because i think it
> was dropped from the ICAL BASIC spec.

And the reason it is currently being dropped from iCal-BASIC is because the
bigger problem with RRULE is that *clients* (calendar user agents) do not
support it very well.

E.g. iCal.app has NO support for RRULE AFAIK.  I've tested it with several
samples, and it ignores the repeated instances (only shows first instance
from dtstart/duration).  I could not find any way in the UI to create a
repeating event.

Ernie, you originally asked about how to represent repeating events in
hCalendar, have you had any success with doing so in iCal.app?

Complete RRULE and RDATE support per RFC2445 would be a great thing to see
in iCal.app.  And maybe with Mozilla Sunbird, we can get two interoperable
implementations before iCal-BASIC makes it to RFC.

Thanks,

Tantek



More information about the microformats-discuss mailing list