[uf-discuss] hCalendar-Recurring Events Help

Toby A Inkster mail at tobyinkster.co.uk
Sun Dec 7 04:29:13 PST 2008

iCalendar does include support for recurring events such as this.  
hCalendar is, according to its spec, "a 1:1 representation of [...]  
iCalendar". Thus is can be assumed that it does include support for  
recurring events, even if the spec is silent on exactly how to mark  
them up.

Because of the fact that hCalendar is so vague about how a number of  
iCalendar properties should be expressed in HTML, I've put together a  
completely unofficial, but hopefully helpful draft called "hCalendar  
1.1", which you can find here:


Now, in iCalendar, the way to express a recurrence of the first and  
third Friday of every month would be:


The hCalendar draft allows two basic ways of marking this up. The  
first is a clumsy, all-in-one way, but is probably the best supported:

<abbr title="FREQ=MONTHLY;INTERVAL=1;BYDAY=1FR,3FR" class="rrule">the  
first and third Friday of every month</abbr>.

A slightly nicer way, though one which you'll find less parser  
support for would be:

<p class="rrule">
   On the <abbr class="byday" title="1FR">first</a>
   and <abbr class="byday" title="3FR">third friday</a>
   <abbr class="interval" title="1">of every</abbr>
   <abbr class="freq" title="monthly">month</abbr>.

Both of these markup styles are supported by Cognition <http:// 
buzzword.org.uk/cognition/>. Perhaps other parser maintainers could  
reply to this thread to say whether they support either/both.

Note that with RRULE you do still need to include a DTSTART (use this  
to indicate the start date and time of the first event in the  
sequence) and I'd recommend also including either a DURATION (i.e.  
the duration of each event) or a DTEND (i.e. the end time of the  
first event - not the date when you want the recurrence rule to finish).

RRULE is a singular property - that is, you can only have one  
recurrence rule per event, but these rules can get pretty  
complicated, so do manage to cover the vast majority of cases. Also  
of interest are RDATE, which allows you to list explicit dates when  
an event is repeated, and EXDATE and EXRULE which are their  
counterparts for excluding particular dates.

Hope that helps.

Toby A Inkster
<mailto:mail at tobyinkster.co.uk>

More information about the microformats-discuss mailing list