UKOLN AHDS Implementation Experiences With vCard And vCalendar Microformats

1. Background

This case study describes the experiences gained in seeking to make initial use of microformats in UKOLN. The case study gives an introduction to microformats and, in particular, the vCard and vCalendar microformats. The case study then explains the reasons for making use of microformats and the approaches taken in an initial experiment. The case study describes experiences gained in using applications which make use of microformats. The case study concludes with a summary of the lessons learnt and recommendations to others.

2. About Microformats

Microformats are defined on the Microformats Web site [1]:

... designed for humans first and machines second, microformats are a set of simple, open data formats built upon existing and widely adopted standards. Instead of throwing away what works today, microformats intend to solve simpler problems first by adapting to current behaviors and usage patterns (e.g. XHTML, blogging).

Put simply, microformats typically make use of the <span> and <div:gt; HTML tags with agreed <class> attribute names. The <span> and <div> tags allow existing HTML pages to be used with microformats without changing the appearance. The use of agreed <class> attribute names such as <class="vevent"> allows applications to process structured data, such as processing event data (name location and date of the event) by enabling the data to be added to calendaring software.


hCards are defined on the Microformats Web site [2]:

... a simple, open, distributed contact information format for people, companies and organizations, which is suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML.

A simple example of a vCard is shown below:

Brian Kelly
Web site: Brian Kelly
Phone: 01225 383943.

As can be seen, this is displayed as an conventional HTML content. However the HTML markup used in this case is shown below (with the microformat markup highlighted):

<div class="vcard">
<p><strong><span class="fn">Brian <span class="surname">Kelly</span></span></strong><br />
Web site: <a class="url fn" href="">Brian Kelly</a><br />
Email: <a class="email" href=""></a><br />
Phone: <span class="tel">01225 383943<span>.</p>


hCalendar is defined on the Microformats Web site [3]:

... a simple, open, distributed calendaring and events format, based on the iCalendar standard, suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML.

A simple example of a vCalendar is shown below:

Web 2.0: Addressing Institutional Barriers
Many institutions have an interest in exploiting Web 2.0 technologies in order to provide richer networked services in areas such as teaching and learning, research or administration. However the enthusiasm which delegates may have after hearing about innovations taking place elsewhere often wains on returning to work and encountering a variety of barriers to the use of such technologies.
Building 8W Room 2.23
Wednesday 14th June 16.15-17.45

The HTML markup used in this case is:

<div class="vcalendar">
<div class="vevent">
<dd><span class="summary">Web 2.0: Addressing Institutional Barriers</span></dd>
<dd><span class="description">Many institutions have an interest in
exploiting Web 2.0 technologies in order to provide richer networked services 
in areas such as teaching and learning, research or administration.  However the 
enthusiasm which delegates may have after hearing about innovations taking place 
elsewhere often wains on returning to work and encountering a variety of barriers 
to the use of such technologies.</span></dd> 
<dd class="location">Building 8W Room 2.23</dd>
<dd><span class="dtstart" title="20060614T161500">Wednesday 14<sup>th</sup> 
June 16.15</span>-<span class="dtend" title="20060614T174500">17.45</span></dd>

In this case the key vCalendar markup attributes are vcalendar and vcalendar (which define the scope of the calendar details); summary (which gives a summary of the event); location (which gives the location of the event); location (which gives the location of the event); and dtstart and dtend (which give the start and end time of the event).

3. Processing vCard and vCalendar Microformats

It can be seen that the vCard and vCalendar Microformats can provide a simple mechanism for markup up the semantics of people and event details. HTML authors will also appreciate that such markup can be used without change the appearance or existing HTML pages.

In order to exploit such semantic markup there is a need to make use of applications which can process the microformats. In the case of vCard and vCalendar Microformats a number of tools are available which will allow the structured data to be added to calendaring tools and related applications. These tools include Tails [4], a Firefox extension which allows vCard and vCalendar data to be added to desktop software such as Microsoft Outlook; Google hCalendar [5], a Greaseymonkey script, which allows vCalendar data to be added to a Google calendar and Brian Suda's hCard XSLT service [6], which provides a Web-based service for converting script vCard and vCalendar data. (Note that a lists of vCard and vCalendar tools are provided on the Web site [7] [8]).

An example of use of the Tails Firefox plugin is shown in Figure 1.

Figure 1: The Tails Firefox plugin
Figure 1: The Tails Firefox plugin

This example is taken from viewing the IWMW 2006 Committe page at the URL <>.

4. Evaluation of vCard and vCalendar Microformats

UKOLN has been evaluating the potential of microformats since attending a session on them [9] and speaking to a number of Microformat developers at the WWW 2006 conference in Edinburgh in May 2006.

The evaluation was carried out for the following reasons:

The initial evaluation was carried out in the following areas:

The IWMW 2006 pages were selected for the following reasons:

5. Experiences

During the evaluation we became available of a number of issues which either caused us some confusion or we felt would be likely to cause confusion to others. These are summarised below.

Markup Errors
Errors made in the microformats markup could prove difficult to track. Although a page was HTML-compliant it was observed that applications such as Trails were no processing the data correctly. A process of trial and error was required in order to fix the errors.
Confusions Over Times - BST (DST)
Following use of vCalendar markup to specify the date and time of an event it was notice that the time was one hour out when uploaded to local (Microsoft Outlook) and a remote (Google) calendars. Subsequent research revealed that the time made use of UTC time, and this would be an hour out when British Summer Time (BST) (known more widely as Daylight Saving Time, DST) was operational. Possibly due to the fact that the advent of BST is a political decision (and, for example, the date was postponed in Australia in recent years in order to avoid taking place midway through the Commonwealth Games) applications do not appear to make use of servers which state if BST/DST is in operation. Although this is not a limitation of microformats per se use of the microformat applications which use vCalendar data may appear to be an hour incorrect at certain times of the year.
Handling Dates Without Times
When specifying dates which have no times, applications appear to give a default time of midnight to midnight (or 1 am to 1 am for reasons described above). There does not appear to be a mechanism for giving a date but leaving the time fields empty.
Processing Multiple Occurrences
When testing Brian Suda's XSLT Web-based service it was noticed that if multiple vCard elements were defined the service only processed the first occurrence (although the Tails software displayed all occurrences and allowed the end user to select items of interest). Subsequent research revealed that a particular (undocumented) syntax was needed to provide a unique reference to a specific vCard instance. The expected behaviour of the script with multiple occurrences of vCard data was also not documented.
Processing Multiple Microformats
In one instance a page containing vCalendar microformats also contained links to another service which processed the <span> tag (in this case a service which processed <span class="rss:item"> tags to produce an RSS file. It was observed that the service failed to work correctly when the vCalendar microformats had been added. In this case the problem is thought to be a bug in the original script which generate RSS. This again is not a problem with microformats, but an example of how existing poorly-implemented applications may stop working correctly after microformats have been added to a page.

6. Recommendations

Microformats are a relatively new Web development. However there has been significant interest in exploiting the potential of microformats, which is illustrated by there use on the World Cup 2006 Web site [16] and their adoption by Yahoo! [17].

There would appear to be benefits to others in making use of microformats. However, due to their relative immaturity, organisations seeking to make use of microformats would be advised to prepare plans for a deployment strategy, in order to minimise future maintenance efforts if changes are required to microformat specifications of tools in light of experiences of their usage.

Recommendations are given below for potential users of microformat and for the microformat development community.

6.1 Users Of Microformats

The following recommendations are provided for potential users of microformat.

Have a deployment strategy
It is important to make plans for a microformat deployment strategy, which caters for potential changes in the microformat specifications or in microformat tools in light of experiences. Examples of a deployment strategy which seeks to minimise risks and future maintenance loads could include:
  • Generation of microformats from server-side scripts. This is the approach which has been taken by the University of Bath in producing vCards in its PeopleFinder service [18] and vCalendar markup in its What's On service [19].
  • Small-scale usage. This was the approach taken on the IWMW 2006 Web site.
  • Short term usage. This approach has been taken for the list of forthcoming UK Web Focus events. In this case, changes in the vCalendar syntax will cause minimal problems as (a) only a small number of forthcoming events will be affected and (b) users are unlikely to wish to add the event details of past events to their calendar.
Read specifications and follow discussions
From the experiences gained in use of HTML during the 'browser wars' the importance of writing to standards should be well understood. It is therefore important to read and understand appropriate microformat specifications. In addition, if the specifications are unclear or ambiguous, or particular uses are recommended it is desirable to engage with the microformats development community. Participation in the microformats-discuss list [20] would therefore prove valuable.
Test your microformats
In addition to ensuring that microformats are used in accordance with the specification and evolving best practices, testing of the microformats is recommended with at least two applications.
Engage with microformats development community
Engage with microformats development community can help the wider community. For example, the vCard or vCalendar Wiki could be used to provide links to your implementation of microformats.

6.2 Microformat Developers

In addition to the recommendations provided to creators of microformats, the following recommendations are providers for developers of microformat specifications and accompanying materials and for developers of microformat tools.

Test Cases
It would be useful if a range of test cases were provided which, in particular made use of data which tested a wide variety of uses. This might include, in the case of vCalendar, entries occurring during Daylight Saving Time / British Summer Time; on leap years; when no times are specified; etc. It should be noted that test cases are currently being developed [21]. However at present this information is aimed at programmers rather than users.
Highlight limitations
It would be useful if limitations in existing widely deployed tools could be documented (e.g. limitations in processing of vCard and vCalendar microformats in tools such as Microsoft Outlook). It should be noted that a Wiki has been set up which provides details of limitations of existing tools [22] [23]. However at present this information is aimed at programmers rather than users.
Documentation of limitations of tools
Tool developers should ensure that limitations in their tools are clearly documented.

Implementation of these recommendations would assist authors of microformats by ensuring that they can distinguish between limitations of the tools and errors (or, indeed, design decisions) of the specifications.

7. Plans For Future Work

Based on our experiences our plans for use of vCalendar microformat our as follows:


  1. About Microformats,,
  2. hCards,,
  3. hCalendar,,
  4. Tails, Don't forget to plant it
  5. Google hCalendar, Make Data Make Sense,
  6. X2V,,
  7. hCalendar: Implementations: Conversion and Import,
  8. hCard: Implementations: ,,
  9. Microformats, converting XHTML to vCards and vCalendars, WWW 2006 Conference,
  10. Institutional Web Management Workshop 2006, UKOLN
  11. IWMW 2006: Microformats, UKOLN,
  12. IWMW 2006: Web 2.0: Addressing Institutional Barriers, UKOLN,
  13. IWMW 2006: Committee Members, UKOLN,
  14. UK Web Focus: Forthcoming Events, UKOLN
  15. Exposing yourself on the Web with Microformats!, UKOLN,
  16. World Cup '06 Kickoff,
  17. We Now Support Microformats, Yahoo! Local and Maps Blog, 21 June 2006,
  18. Person Finder: Phil Wilson, University of Bath,
  19. What's On, University of Bath,
  20. microformats-discuss List,,
  21. changelog for tests,,
  22. vCard implementations,,
  23. iCalendar implementations,,