hCalendar (short for HTML iCalendar) is a "microformat standard for displaying a semantic "(X)HTML representation of "iCalendar-format "calendar information about an event, on "web pages, using HTML classes and "rel attributes.
It allows parsing tools (for example other websites, or browser add-ons like "Firefox's "Operator extension) to extract the details of the event, and display them using some other website, index or search them, or to load them into a calendar or diary program, for instance. Multiple instances can be displayed as timelines.
Consider this semi-fictional example:
The English Wikipedia was launched on 15 January 2001 with a party from 2-4pm at Jimmy Wales' house (more information).
The HTML mark-up might be:
<p> The English Wikipedia was launched on 15 January 2001 with a party from 2-4pm at Jimmy Wales' house (<a href="http://en.wikipedia.org/wiki/History_of_Wikipedia">more information</a>) </p>
<p class="vevent"> The <span class="summary">English Wikipedia was launched</span> on 15 January 2001 with a party from <abbr class="dtstart" title="2001-01-15T14:00:00+06:00">2</abbr>- <abbr class="dtend" title="2001-01-15T16:00:00+06:00">4</abbr>pm at <span class="location">Jimmy Wales' house</span> (<a class="url" href="http://en.wikipedia.org/wiki/History_of_Wikipedia">more information</a>) </p>
Note the use of the
abbr element to contain the machine readable, "ISO8601, date-time format for the start and end times.
Concerns have been expressed that, where it occurs, the use of the
abbr element (using the so-called abbr-design-pattern) in the above manner causes accessibility problems, not least for users of screen readers and aural browsers. Work is underway to find an alternative method of presenting ISO8601 date-time information.
The "Geo microformat is a part of the hCalendar specification, and is often used to include the coordinates of the event's location within an hCalendar.
For a full list of attributes, see the hCalendar cheat-sheet.
Notable organisations and other websites using hCalendar include: