hcalendar-example1-steps
From Microformats
hCalendar Example 1 Steps
This is a step by step explanation of the first example in the hCalendar specification.
Example
Here is a sample event in an iCalendar:
BEGIN:VCALENDAR PRODID:-//XYZproduct//EN VERSION:2.0 BEGIN:VEVENT URL:http://www.web2con.com/ DTSTART:20071017 DTEND:20071020 SUMMARY:Web 2.0 Conference LOCATION:Argent Hotel\, San Francisco\, CA END:VEVENT END:VCALENDAR
and an equivalent event in hCalendar format with various elements optimized appropriately. See hcalendar-example1-steps for the derivation.
<div class="vevent"> <a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a> <span class="summary">Web 2.0 Conference</span>: <span class="dtstart">20071017</span>- <span class="dtend">20071019</span>, at the <span class="location">Argent Hotel, San Francisco, CA</span> </div>
which could be displayed as:
http://www.web2con.com/ Web 2.0 Conference: 20071017- 20071019, at the Argent Hotel, San Francisco, CA
Note that this is a live hCalendar microformat, which will be found on this page by parsers.
Note 1: The product information is not necessary since hCalendar is an interchange format. When transforming hCalendar back into iCalendar, the transforming engine should add its own product ID.
Note 2: A surrounding element is optional, and can be left out as such. It is optional since the context of a vcalendar is implied when a vevent is encountered. The implied context/scope is that of the document. Authors may explicitly use elements with class="vcalendar" to wrap sets of vevents that all belong to the same calendar, e.g. when publishing multiple calendars on the same page.
Note 3: The version information is unnecessary in hCalendar markup directly since the version will be defined by the profile of hCalendar that is used/referred to in the 'profile' attribute of the <head> element.
Note 4: ISO8601 dates are however not very human friendly. Not only that, in the case of the end datetime (DTEND), the date must be specified as a whole day after the last day since DTEND is exclusive (http://lists.osafoundation.org/pipermail/ietf-calsify/2005-September/000769.html)! In addition, the year is often understood implicitly by humans from the context. Thus this example could be improved by using <abbr> to make the date information more human readable and friendly, e.g.
<span class="vevent"> <a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a> <span class="summary">Web 2.0 Conference</span>: <abbr class="dtstart" title="20071017">October 17</abbr>- <abbr class="dtend" title="20071020">19</abbr>, at the <span class="location">Argent Hotel, San Francisco, CA</span> </span>
which could be displayed as:
http://www.web2con.com/ Web 2.0 Conference: October 17- 19, at the Argent Hotel, San Francisco, CA
Related pages
- hCalendar - specification
- hCalendar intro - plain English introduction
- hCalendar authoring - learn how to add hCalendar markup to your existing events.
- hCalendar creator (http://microformats.org/code/hcalendar/creator) (hCalendar creator feedback) - create your own hCalendar events.
- hCalendar cheatsheet - hCalendar properties
- hCalendar examples in the wild - an on-going list of websites which use hCalendars.
- hCalendar implementations - websites or tools which either generate or parse hCalendars
- hCalendar FAQ - If you have any questions about hCalendar, check here.
- hCalendar parsing - normative details of how to parse hCalendar.
- hCalendar profile - the XMDP profile for hCalendar
- hCalendar tests - a wiki page with actual embedded hCalendar events to try parsing.
- hCalendar "to do" - jobs to do
- hCalendar advocacy - encourage others to use hCalendar.
- iCalendar implementations
This specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. These thoughts, issues, and questions are kept in separate pages.
- hCalendar Brainstorming - brainstorms and other explorations relating to hCalendar
- hCalendar issues - issues with the specification
