<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PigsOTWing</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PigsOTWing"/>
	<link rel="alternate" type="text/html" href="http://microformats.org/wiki/Special:Contributions/PigsOTWing"/>
	<updated>2026-04-20T22:11:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5190</id>
		<title>hreview-issues</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5190"/>
		<updated>2006-02-26T20:34:54Z</updated>

		<summary type="html">&lt;p&gt;PigsOTWing: /* default range */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hReview issues =&lt;br /&gt;
&lt;br /&gt;
These are externally raised issues about [[hreview|hReview]] with broadly varying degrees of merit.  Thus some issues are REJECTED for a number of obvious reasons (but still documented here in case they are re-raised), and others contain longer discussions.  Some issues may be ACCEPTED and perhaps cause changes or improved explanations in the spec.  Submitted issues may (and probably will) be edited and rewritten for better terseness, clarity, calmness, rationality, and as neutral a point of view as possible. Write your issues well. — [http://tantek.com/log/ Tantek]&lt;br /&gt;
&lt;br /&gt;
See related [[hcalendar-issues]] and [[hcard-issues]].&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
&lt;br /&gt;
Please use this format (copy and paste this to the end of the list to add your issues):&lt;br /&gt;
* YYYY-MM-DD raised by [http://yourhomepage.example.com YOURNAME].&lt;br /&gt;
*# ''Issue 1: Here is the first issue I have.''&lt;br /&gt;
*# ''Issue 2: Here is the second issue I have.''&lt;br /&gt;
&lt;br /&gt;
== rel=&amp;amp;quot;self&amp;amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
2005-01-04 by [[User:DavidJanes|David Janes]]:&lt;br /&gt;
&lt;br /&gt;
Atom defines rel=&amp;amp;quot;self&amp;amp;quot; [http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html#rfc.section.4.2.7 here]&lt;br /&gt;
&lt;br /&gt;
: The value &amp;amp;quot;self&amp;amp;quot; signifies that the IRI in the value of the href attribute identifies a resource equivalent to the containing element.&lt;br /&gt;
&lt;br /&gt;
HTML rel=&amp;amp;quot;boomark&amp;amp;quot; [http://www.w3.org/TR/REC-html40/types.html#type-links here]&lt;br /&gt;
&lt;br /&gt;
: Refers to a bookmark. A bookmark is a link to a key entry point within an extended document. The title attribute may be used, for example, to label the bookmark. Note that several bookmarks may be defined in each document.&lt;br /&gt;
&lt;br /&gt;
Since we're using &amp;amp;quot;bookmark&amp;amp;quot; to mean the entry point to the hReview, isn't the &amp;amp;quot;self&amp;amp;quot; redundant or overly subtle?&lt;br /&gt;
&lt;br /&gt;
== default lower bound ==&lt;br /&gt;
&lt;br /&gt;
* YYYY-MM-DD????? raised by [[User:ScottReynen|Scott Reynen]]&lt;br /&gt;
*# ''Why is the default lower bound 1 when the [[reviews-formats|real world examples]] almost all have a lower bound of 0?''&lt;br /&gt;
*#* REJECTED INVALID ASSUMPTION.  Most [[review-examples|real-world examples]] have a lower bound of 1, not 0.&lt;br /&gt;
&lt;br /&gt;
== default range ==&lt;br /&gt;
* 2006-02-23 raised by Andy Mabbett&lt;br /&gt;
*# ''Not all marks give ratings &amp;quot;out of five&amp;quot;. The value should be a percentage. Zero should be allowed.''&lt;br /&gt;
*#* REJECTED IGNORES RESEARCH.  Most [[review-examples|real-world examples]] have a range of 1.0-5.0 not a percentage. You may set the &amp;quot;best&amp;quot; bound to 100 explicitly, and the &amp;quot;worst&amp;quot; bound to 0 explicitly per the spec if necessary.&lt;br /&gt;
*#* &amp;quot;most&amp;quot; != &amp;quot;all&amp;quot;; indeed, the page you cite has examples of &amp;quot;1-10&amp;quot; and &amp;quot;0-100%&amp;quot;. I never claimed that many examples use percentages, but I'm sure a mathematician would explain that values in the range &amp;quot;1-5&amp;quot; may be expressed as percentages. Still, I'm sure you know best.&lt;br /&gt;
&lt;br /&gt;
== Specification Clarifications ==&lt;br /&gt;
&lt;br /&gt;
* 2006-02-01 raised by [http://tantek.com Tantek].&lt;br /&gt;
*# ''The spec needs to clarify that there is only one &amp;quot;item&amp;quot; per &amp;quot;hreview&amp;quot;.''&lt;br /&gt;
*#* ACCEPTED.  Resolved in hReview 0.3.&lt;/div&gt;</summary>
		<author><name>PigsOTWing</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5153</id>
		<title>hreview-issues</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5153"/>
		<updated>2006-02-23T22:22:21Z</updated>

		<summary type="html">&lt;p&gt;PigsOTWing: /* Ratings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hReview issues =&lt;br /&gt;
&lt;br /&gt;
These are externally raised issues about [[hreview|hreview]] with broadly varying degrees of merit.  Thus some issues are REJECTED for a number of obvious reasons (but still documented here in case they are re-raised), and others contain longer discussions.  Some issues may be ACCEPTED and perhaps cause changes or improved explanations in the spec.  Submitted issues may (and probably will) be edited and rewritten for better terseness, clarity, calmness, rationality, and as neutral a point of view as possible. Write your issues well. — [http://tantek.com/log/ Tantek]&lt;br /&gt;
&lt;br /&gt;
See related [[hcalendar-issues]] and [[hcard-issues]].&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
&lt;br /&gt;
Please use this format (copy and paste this to the end of the list to add your issues):&lt;br /&gt;
* YYYY-MM-DD raised by [http://yourhomepage.example.com YOURNAME].&lt;br /&gt;
*# ''Issue 1: Here is the first issue I have.''&lt;br /&gt;
*# ''Issue 2: Here is the second issue I have.''&lt;br /&gt;
&lt;br /&gt;
== rel=&amp;amp;quot;self&amp;amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
2005-01-04 by [[User:DavidJanes|David Janes]]:&lt;br /&gt;
&lt;br /&gt;
Atom defines rel=&amp;amp;quot;self&amp;amp;quot; [http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html#rfc.section.4.2.7 here]&lt;br /&gt;
&lt;br /&gt;
: The value &amp;amp;quot;self&amp;amp;quot; signifies that the IRI in the value of the href attribute identifies a resource equivalent to the containing element.&lt;br /&gt;
&lt;br /&gt;
HTML rel=&amp;amp;quot;boomark&amp;amp;quot; [http://www.w3.org/TR/REC-html40/types.html#type-links here]&lt;br /&gt;
&lt;br /&gt;
: Refers to a bookmark. A bookmark is a link to a key entry point within an extended document. The title attribute may be used, for example, to label the bookmark. Note that several bookmarks may be defined in each document.&lt;br /&gt;
&lt;br /&gt;
Since we're using &amp;amp;quot;bookmark&amp;amp;quot; to mean the entry point to the hReview, isn't the &amp;amp;quot;self&amp;amp;quot; redundant or overly subtle?&lt;br /&gt;
&lt;br /&gt;
== default lower bound ==&lt;br /&gt;
&lt;br /&gt;
* YYYY-MM-DD????? raised by [[User:ScottReynen|Scott Reynen]]&lt;br /&gt;
*# ''Why is the default lower bound 1 when the [[reviews-formats|real world examples]] almost all have a lower bound of 0?''&lt;br /&gt;
*#* REJECTED INVALID ASSUMPTION.  Most [[review-examples|real-world examples]] have a lower bound of 1, not 0.&lt;br /&gt;
&lt;br /&gt;
== Specification Clarifications ==&lt;br /&gt;
&lt;br /&gt;
* 2006-02-01 raised by [http://tantek.com Tantek].&lt;br /&gt;
*# ''The spec needs to clarify that there is only one &amp;quot;item&amp;quot; per &amp;quot;hreview&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
==Ratings==&lt;br /&gt;
2006-02-23 raised by Andy Mabbett&lt;br /&gt;
&lt;br /&gt;
Not all marks give ratings &amp;quot;out of five&amp;quot;. The value should be a percentage. Zero should be allowed.&lt;/div&gt;</summary>
		<author><name>PigsOTWing</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5142</id>
		<title>hreview-issues</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5142"/>
		<updated>2006-02-23T22:22:11Z</updated>

		<summary type="html">&lt;p&gt;PigsOTWing: /* Ratings */ attrbution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hReview issues =&lt;br /&gt;
&lt;br /&gt;
These are externally raised issues about [[hreview|hreview]] with broadly varying degrees of merit.  Thus some issues are REJECTED for a number of obvious reasons (but still documented here in case they are re-raised), and others contain longer discussions.  Some issues may be ACCEPTED and perhaps cause changes or improved explanations in the spec.  Submitted issues may (and probably will) be edited and rewritten for better terseness, clarity, calmness, rationality, and as neutral a point of view as possible. Write your issues well. — [http://tantek.com/log/ Tantek]&lt;br /&gt;
&lt;br /&gt;
See related [[hcalendar-issues]] and [[hcard-issues]].&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
&lt;br /&gt;
Please use this format (copy and paste this to the end of the list to add your issues):&lt;br /&gt;
* YYYY-MM-DD raised by [http://yourhomepage.example.com YOURNAME].&lt;br /&gt;
*# ''Issue 1: Here is the first issue I have.''&lt;br /&gt;
*# ''Issue 2: Here is the second issue I have.''&lt;br /&gt;
&lt;br /&gt;
== rel=&amp;amp;quot;self&amp;amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
2005-01-04 by [[User:DavidJanes|David Janes]]:&lt;br /&gt;
&lt;br /&gt;
Atom defines rel=&amp;amp;quot;self&amp;amp;quot; [http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html#rfc.section.4.2.7 here]&lt;br /&gt;
&lt;br /&gt;
: The value &amp;amp;quot;self&amp;amp;quot; signifies that the IRI in the value of the href attribute identifies a resource equivalent to the containing element.&lt;br /&gt;
&lt;br /&gt;
HTML rel=&amp;amp;quot;boomark&amp;amp;quot; [http://www.w3.org/TR/REC-html40/types.html#type-links here]&lt;br /&gt;
&lt;br /&gt;
: Refers to a bookmark. A bookmark is a link to a key entry point within an extended document. The title attribute may be used, for example, to label the bookmark. Note that several bookmarks may be defined in each document.&lt;br /&gt;
&lt;br /&gt;
Since we're using &amp;amp;quot;bookmark&amp;amp;quot; to mean the entry point to the hReview, isn't the &amp;amp;quot;self&amp;amp;quot; redundant or overly subtle?&lt;br /&gt;
&lt;br /&gt;
== default lower bound ==&lt;br /&gt;
&lt;br /&gt;
* YYYY-MM-DD????? raised by [[User:ScottReynen|Scott Reynen]]&lt;br /&gt;
*# ''Why is the default lower bound 1 when the [[reviews-formats|real world examples]] almost all have a lower bound of 0?''&lt;br /&gt;
*#* REJECTED INVALID ASSUMPTION.  Most [[review-examples|real-world examples]] have a lower bound of 1, not 0.&lt;br /&gt;
&lt;br /&gt;
== Specification Clarifications ==&lt;br /&gt;
&lt;br /&gt;
* 2006-02-01 raised by [http://tantek.com Tantek].&lt;br /&gt;
*# ''The spec needs to clarify that there is only one &amp;quot;item&amp;quot; per &amp;quot;hreview&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
==Ratings==&lt;br /&gt;
2006-02-23 raised by Andy Mabbett&lt;br /&gt;
Not all marks give ratings &amp;quot;out of five&amp;quot;. The value should be a percentage. Zero should be allowed.&lt;/div&gt;</summary>
		<author><name>PigsOTWing</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5141</id>
		<title>hreview-issues</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5141"/>
		<updated>2006-02-23T22:21:42Z</updated>

		<summary type="html">&lt;p&gt;PigsOTWing: /* Ratings */ Zero should be allowed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hReview issues =&lt;br /&gt;
&lt;br /&gt;
These are externally raised issues about [[hreview|hreview]] with broadly varying degrees of merit.  Thus some issues are REJECTED for a number of obvious reasons (but still documented here in case they are re-raised), and others contain longer discussions.  Some issues may be ACCEPTED and perhaps cause changes or improved explanations in the spec.  Submitted issues may (and probably will) be edited and rewritten for better terseness, clarity, calmness, rationality, and as neutral a point of view as possible. Write your issues well. — [http://tantek.com/log/ Tantek]&lt;br /&gt;
&lt;br /&gt;
See related [[hcalendar-issues]] and [[hcard-issues]].&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
&lt;br /&gt;
Please use this format (copy and paste this to the end of the list to add your issues):&lt;br /&gt;
* YYYY-MM-DD raised by [http://yourhomepage.example.com YOURNAME].&lt;br /&gt;
*# ''Issue 1: Here is the first issue I have.''&lt;br /&gt;
*# ''Issue 2: Here is the second issue I have.''&lt;br /&gt;
&lt;br /&gt;
== rel=&amp;amp;quot;self&amp;amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
2005-01-04 by [[User:DavidJanes|David Janes]]:&lt;br /&gt;
&lt;br /&gt;
Atom defines rel=&amp;amp;quot;self&amp;amp;quot; [http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html#rfc.section.4.2.7 here]&lt;br /&gt;
&lt;br /&gt;
: The value &amp;amp;quot;self&amp;amp;quot; signifies that the IRI in the value of the href attribute identifies a resource equivalent to the containing element.&lt;br /&gt;
&lt;br /&gt;
HTML rel=&amp;amp;quot;boomark&amp;amp;quot; [http://www.w3.org/TR/REC-html40/types.html#type-links here]&lt;br /&gt;
&lt;br /&gt;
: Refers to a bookmark. A bookmark is a link to a key entry point within an extended document. The title attribute may be used, for example, to label the bookmark. Note that several bookmarks may be defined in each document.&lt;br /&gt;
&lt;br /&gt;
Since we're using &amp;amp;quot;bookmark&amp;amp;quot; to mean the entry point to the hReview, isn't the &amp;amp;quot;self&amp;amp;quot; redundant or overly subtle?&lt;br /&gt;
&lt;br /&gt;
== default lower bound ==&lt;br /&gt;
&lt;br /&gt;
* YYYY-MM-DD????? raised by [[User:ScottReynen|Scott Reynen]]&lt;br /&gt;
*# ''Why is the default lower bound 1 when the [[reviews-formats|real world examples]] almost all have a lower bound of 0?''&lt;br /&gt;
*#* REJECTED INVALID ASSUMPTION.  Most [[review-examples|real-world examples]] have a lower bound of 1, not 0.&lt;br /&gt;
&lt;br /&gt;
== Specification Clarifications ==&lt;br /&gt;
&lt;br /&gt;
* 2006-02-01 raised by [http://tantek.com Tantek].&lt;br /&gt;
*# ''The spec needs to clarify that there is only one &amp;quot;item&amp;quot; per &amp;quot;hreview&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
==Ratings==&lt;br /&gt;
Not all marks give ratings &amp;quot;out of five&amp;quot;. The value should be a percentage. Zero should be allowed.&lt;/div&gt;</summary>
		<author><name>PigsOTWing</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5140</id>
		<title>hreview-issues</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=hreview-issues&amp;diff=5140"/>
		<updated>2006-02-23T22:18:45Z</updated>

		<summary type="html">&lt;p&gt;PigsOTWing: Ratings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hReview issues =&lt;br /&gt;
&lt;br /&gt;
These are externally raised issues about [[hreview|hreview]] with broadly varying degrees of merit.  Thus some issues are REJECTED for a number of obvious reasons (but still documented here in case they are re-raised), and others contain longer discussions.  Some issues may be ACCEPTED and perhaps cause changes or improved explanations in the spec.  Submitted issues may (and probably will) be edited and rewritten for better terseness, clarity, calmness, rationality, and as neutral a point of view as possible. Write your issues well. — [http://tantek.com/log/ Tantek]&lt;br /&gt;
&lt;br /&gt;
See related [[hcalendar-issues]] and [[hcard-issues]].&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
&lt;br /&gt;
Please use this format (copy and paste this to the end of the list to add your issues):&lt;br /&gt;
* YYYY-MM-DD raised by [http://yourhomepage.example.com YOURNAME].&lt;br /&gt;
*# ''Issue 1: Here is the first issue I have.''&lt;br /&gt;
*# ''Issue 2: Here is the second issue I have.''&lt;br /&gt;
&lt;br /&gt;
== rel=&amp;amp;quot;self&amp;amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
2005-01-04 by [[User:DavidJanes|David Janes]]:&lt;br /&gt;
&lt;br /&gt;
Atom defines rel=&amp;amp;quot;self&amp;amp;quot; [http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html#rfc.section.4.2.7 here]&lt;br /&gt;
&lt;br /&gt;
: The value &amp;amp;quot;self&amp;amp;quot; signifies that the IRI in the value of the href attribute identifies a resource equivalent to the containing element.&lt;br /&gt;
&lt;br /&gt;
HTML rel=&amp;amp;quot;boomark&amp;amp;quot; [http://www.w3.org/TR/REC-html40/types.html#type-links here]&lt;br /&gt;
&lt;br /&gt;
: Refers to a bookmark. A bookmark is a link to a key entry point within an extended document. The title attribute may be used, for example, to label the bookmark. Note that several bookmarks may be defined in each document.&lt;br /&gt;
&lt;br /&gt;
Since we're using &amp;amp;quot;bookmark&amp;amp;quot; to mean the entry point to the hReview, isn't the &amp;amp;quot;self&amp;amp;quot; redundant or overly subtle?&lt;br /&gt;
&lt;br /&gt;
== default lower bound ==&lt;br /&gt;
&lt;br /&gt;
* YYYY-MM-DD????? raised by [[User:ScottReynen|Scott Reynen]]&lt;br /&gt;
*# ''Why is the default lower bound 1 when the [[reviews-formats|real world examples]] almost all have a lower bound of 0?''&lt;br /&gt;
*#* REJECTED INVALID ASSUMPTION.  Most [[review-examples|real-world examples]] have a lower bound of 1, not 0.&lt;br /&gt;
&lt;br /&gt;
== Specification Clarifications ==&lt;br /&gt;
&lt;br /&gt;
* 2006-02-01 raised by [http://tantek.com Tantek].&lt;br /&gt;
*# ''The spec needs to clarify that there is only one &amp;quot;item&amp;quot; per &amp;quot;hreview&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
==Ratings==&lt;br /&gt;
Not all marks give ratings &amp;quot;out of five&amp;quot;. The value should be a percentage.&lt;/div&gt;</summary>
		<author><name>PigsOTWing</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=hreview&amp;diff=5145</id>
		<title>hreview</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=hreview&amp;diff=5145"/>
		<updated>2006-02-23T22:17:12Z</updated>

		<summary type="html">&lt;p&gt;PigsOTWing: clarifications&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; hReview 0.3 &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[hreview|hReview]] is a simple, open, distributed format, suitable for embedding reviews (of products, servcies, entertainments, etc.) in (X)HTML, Atom, RSS, and arbitrary XML. hReview is one of several [[microformats]] open standards.  &lt;br /&gt;
&lt;br /&gt;
Want to get started with writing an [[hreview|hReview]]?  Use the [http://microformats.org/code/hreview/creator hReview creator] to write a review and publish it.&lt;br /&gt;
&lt;br /&gt;
== Microformats Draft Specification 2006-02-22 ==&lt;br /&gt;
&lt;br /&gt;
; Editor: [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc.]&lt;br /&gt;
; Authors: [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc.]&lt;br /&gt;
: [http://360.yahoo.com/alidiabali Ali Diab],[http://yahoo.com Yahoo! Inc.]&lt;br /&gt;
: [http://spaces.msn.com/members/ianmcallister/ Ian McAllister], [http://microsoft.com/ Microsoft Corporation]&lt;br /&gt;
: [http://journals.aol.com/panzerjohn/abstractioneer John Panzer], [http://www.aol.com America Online, Inc.]&lt;br /&gt;
: [http://ifindkarma.com/blog Adam Rifkin], [http://labs.commerce.net/ CommerceNet Labs]&lt;br /&gt;
: [http://sippey.typepad.com/ Michael Sippey], [http://sixapart.com Six Apart, Ltd.]&lt;br /&gt;
&lt;br /&gt;
Microformats [http://microformats.org/wiki/hreview#Copyright copyright] and [http://microformats.org/wiki/hreview#Patents patents] statements apply.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Numerous web sites publish reviews using a broad variety of schema for all sorts of things from products (movies, music, books), to businesses (restaurants, hotels, stores), to events (concerts, theatre), to people (artists, leaders, celebrities), to places (landmarks, parks), to online resources (web pages, files), to reviews of reviews themselves.&lt;br /&gt;
&lt;br /&gt;
In order to enable and encourage the sharing, distribution, syndication, and aggregation, of reviews, the authors propose the hReview microformat, an open standard for distributed reviews.  The authors have researched both numerous [[review-examples]] in the wild and earlier attempts at [[review-formats]], and have designed hReview around a simple minimal schema for reviews.  Feedback is encouraged on the [[hreview-feedback|hReview feedback]] page.&lt;br /&gt;
&lt;br /&gt;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to everyone who responded to the open call for implementor participation for hReview.  The authors in particular wish to thank the following individuals for their constructive input and feedback: [http://www.richardault.com/ Richard Ault], [http://dannyayers.com Danny Ayers], [http://www.vertexdev.com/~jeff/ Jeffrey Barr],[http://adriancuthbert.blogspot.com/ Adrian Cuthbert],[http://jason.defillippo.com/ Jason DeFillippo], [http://www.hybernaut.com/bdv Brian Del Vecchio], Scott Derringer, [http://budgibson.com/home/ Bud Gibson], [http://joi.ito.com/ Joi Ito], [http://www.kanai.net/weblog/ Gen Kanai],[http://niallkennedy.com/ Niall Kennedy], [http://labs.commerce.net/wiki/index.php/Rohit_Khare Rohit Khare], [http://theryanking.com/ Ryan King], [http://www.jluster.org/ Jonas Luster], [http://epeus.blogspot.com/ Kevin Marks], Mark Nottingham, [http://www.powazek.com/ Derek Powazek], [http://www.judysbook.com/ Jeff Rodenburg], [http://sifry.com/alerts/ David Sifry], [http://jystewart.net/ James Stewart], [http://kung-foo.tv/ Adriaan Tijsseling], [http://www.flashenabled.com/ Phillip Torrone], Thai Tran, [http://w6daily.winn.com/ Phillip Winn], [http://yohei-y.blogspot.com YAMAMOTO Yohei].&lt;br /&gt;
&lt;br /&gt;
=== Scope ===&lt;br /&gt;
Reviews consistently share several common fields.  Where possible hReview has been based on this minimal common subset.&lt;br /&gt;
&lt;br /&gt;
==== Out of scope ====&lt;br /&gt;
Fields that are type-specific have been omitted from hReview.  It is important that hReview be kept simple and minimal from the start.  Additional features can be added as deemed necessary by practical implementation experience.&lt;br /&gt;
&lt;br /&gt;
The concept of a &amp;quot;universal object identifier&amp;quot;, that is, how to identify the same object/item/product across different shopping sites, though something very useful to have, is outside the scope of this format.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{semantic-xhtml-design-principles}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
=== In General ===&lt;br /&gt;
The hReview format is based on a set of fields common to numerous review sites and formats in use today on the web.  Where possible field names have been chosen based on those defined by the related [[hcard|hCard]] and [[hcalendar|hCalendar]] standards.&lt;br /&gt;
&lt;br /&gt;
=== Schema ===&lt;br /&gt;
The hReview schema consists of the following:&lt;br /&gt;
&lt;br /&gt;
* hReview ('''&amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;''')&lt;br /&gt;
** '''&amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;'''. optional. text.&lt;br /&gt;
** '''&amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;'''. optional. text.&lt;br /&gt;
** item '''&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;'''. optional. product | business | event | person | place | website | url.&lt;br /&gt;
** '''&amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;''' info. required. ('''&amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt;''' || '''&amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;''' || '''&amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;''' ) | '''[[hcard|hCard]]''' (for person or business) | '''[[hcalendar|hCalendar]]''' (for event)&lt;br /&gt;
** '''&amp;lt;code&amp;gt;reviewer&amp;lt;/code&amp;gt;'''. optional. '''[[hcard|hCard]]'''.&lt;br /&gt;
** '''&amp;lt;code&amp;gt;dtreviewed&amp;lt;/code&amp;gt;'''. required. ISO8601 absolute date time.&lt;br /&gt;
** '''&amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;'''. optional. fixed point integer [1.0-5.0], with optional alternate '''&amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;''' (default:1.0) and/or '''&amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;''' (default:5.0), also fixed point integers, and explicit '''&amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;'''.&lt;br /&gt;
** '''&amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;'''. optional. text with optional valid XHTML markup.&lt;br /&gt;
** tags. optional. keywords or phrases, using '''[[rel-tag]]''', each with optional rating.&lt;br /&gt;
** permalink. optional, using '''[[rel-bookmark]]''' and '''[[rel-self]]'''.&lt;br /&gt;
** license. optional, using '''[[rel-license]]'''.&lt;br /&gt;
&lt;br /&gt;
=== Field details ===&lt;br /&gt;
The fields of the hReview schema represent the following:&lt;br /&gt;
&lt;br /&gt;
'''version''':: This optional field permits hReview publishers to specify a particular version of hReview that their content uses.  By omitting this field, the publisher is stating that implementations may interpret the hReviews according to any version of the hReview specification v0.2 or later.  In practice the authors of this specification are comitted to maintaining backward compatibility with content produced using earlier versions of the specification.  This field is syntax compatible with, and thus reuses the semantics of &amp;quot;VERSION&amp;quot; as defined in vCard RFC2426 section &amp;quot;3.6.9 VERSION Type Definition&amp;quot;.  The value of this field for this specification is &amp;quot;0.2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''summary''':: This optional field serves as a title for the review itself.&lt;br /&gt;
&lt;br /&gt;
'''item type''':: This optional field &amp;quot;type&amp;quot; provides the type of the item being reviewed, one of the following: product, business, event, person, place, website, url.  If omitted, then in some cases the item type may be inferred.  If the item is also an [[hcard|hCard]], then the item type is a &amp;quot;business&amp;quot; or a &amp;quot;person&amp;quot; based upon which of those the hCard represents.  If the item is also an [[hcalendar|hCalendar]] event, then the item type is an &amp;quot;event&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''item info''':: This required field MUST have at a minimum the name (&amp;quot;fn&amp;quot; - the formatted text corresponding to the name) of the item , SHOULD provide at least one URI (&amp;quot;url&amp;quot;) for the item, and MAY provide at least one URL to a photo or depiction (&amp;quot;photo&amp;quot;) of the item.  For items of type person or business, the item info (fn, url, photo) MUST be encapsulated in an [[hcard|hCard]].  For items of type event, the item info SHOULD be encapsulated in an [[hcalendar|hCalendar]] &amp;quot;vevent&amp;quot;.  Unique item IDs (e.g. ISBNs, UPCs) MAY be represented as a URN (&amp;quot;url&amp;quot;) for the item.&lt;br /&gt;
&lt;br /&gt;
'''reviewer''':: The optional field specifies the person who authored the review.  If the reviewer is specified, an hCard representing the reviewer MUST be provided.  For anonymous reviews, use &amp;quot;anonymous&amp;quot; (without quotes) for the full name of the reviewer.  If no &amp;quot;reviewer&amp;quot; is found inside the hReview, parsers should look outside the hReview, in the context of the page, for the &amp;quot;reviewer&amp;quot;. If there is no &amp;quot;reviewer&amp;quot; outside either, then parsers should use the author defined by the containing document language, e.g. for (X)HTML documents, the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;address&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; contact info for the page (which is ideally marked up as an [[hcard|hCard]] as well), for Atom 1.0 the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;entry&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;author&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; if present and if not the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;feed&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;author&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, for RSS the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;author&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; inside the containing &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;item&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
'''dtreviewed''':: This required field MUST provide an ISO8601 absolute date time of when the review was written or otherwise authored.  This field SHOULD use UTC, but MAY use the time zone offset syntax.&lt;br /&gt;
&lt;br /&gt;
'''rating''':: The rating is a fixed point integer (one decimal point of precision) from 1.0 to 5.0 inclusive indicating a rating for the item, higher indicating a better rating by default. Optionally a different integral &amp;quot;worst&amp;quot; value and/or &amp;quot;best&amp;quot; value MAY be specified (e.g. 6 from 0-10).  The &amp;quot;best&amp;quot; value may be numerically smaller than the &amp;quot;worst&amp;quot; value.&lt;br /&gt;
&lt;br /&gt;
'''description''':: This optional field contains the full text representing the written opinion of the reviewer.  The field MAY include valid XHTML markup (e.g. paragraphs).  User agents SHOULD preserve any markup.  Multiple descriptions or section descriptions (e.g. pros and cons, plusses and minusses) SHOULD be included in the description field.&lt;br /&gt;
&lt;br /&gt;
'''tags''':: Tags are represented using a list of keywords or phrases (using the [[rel-tag]] microformat for each individual keyword or phrase tag) that the reviewer associates with the item.  The reviewer MAY optionally provide a tag-specific rating inside each [[rel-tag]], e.g. ambience:5. Tag-specific ratings by default use the same range as an overall rating for the item if present, and MAY also have a custom worst...best range specified.  Authors MAY also invert this structure for the same semantic if it is more convenient for their markup, that is, place the [[rel-tag]] inside a rating to indicate a rated tag.  Note: rated tags should ideally use a tag space that explains what the ratings for that tag mean. E.g. Food:18/30 should link to a tags space for Food that explains what an 18 out of 30 means for the Food tag.&lt;br /&gt;
&lt;br /&gt;
'''permalink''':: This optional field is a URL for the hReview.  In addition to using the &amp;lt;code&amp;gt;&amp;lt;a href&amp;gt;&amp;lt;/code&amp;gt; tag for this field, the attribute &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; MUST be used to indicate that the hyperlink is a permalink for the review itself.  If the hyperlink already contains a &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute, then the values &amp;lt;code&amp;gt;self&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bookmark&amp;lt;/code&amp;gt; MUST be included among the space-separated set of values in the attribute.  Indexers MAY treat the permalink of a review as a unique ID in order to identify and collate the same review from multiple sources (such as indexing a page multiple times).  The permalink MAY also be used to indicate or imply the origin of the review.  Authors MAY use the classname of &amp;quot;permalink&amp;quot; on the element representing the permalink, but are not required to do so.&lt;br /&gt;
&lt;br /&gt;
The following field names have been reused from the [[hcard|hCard]] and [[hcalendar|hCalendar]] microformats: &amp;lt;code&amp;gt;version, summary, fn, url, email, photo, description, categories&amp;lt;/code&amp;gt;.  In addition, items and reviewers described by hCards MAY contain any hCard field.  The rel value &amp;quot;self&amp;quot; has been reused from the [http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html Atom 1.0 specification].&lt;br /&gt;
&lt;br /&gt;
'''license''':: This optional field links to the license under which the contents of the hReview itself is licensed, using the '''[[rel-license]]''' microformat.&lt;br /&gt;
&lt;br /&gt;
=== More Semantic Equivalents ===&lt;br /&gt;
&lt;br /&gt;
For some properties there is a more semantic equivalent, and therefore they get special treatment, e.g.: &lt;br /&gt;
&lt;br /&gt;
* For any &amp;quot;url&amp;quot;, use &amp;lt;code&amp;gt;&amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; inside the element with the class name 'hreview' in hReview. &lt;br /&gt;
* Similarly, any &amp;quot;email&amp;quot;, use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;a class=&amp;quot;email&amp;quot; href=&amp;quot;mailto:...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
* And for &amp;quot;photo&amp;quot;, use &amp;lt;code&amp;gt;&amp;lt;img class=&amp;quot;photo&amp;quot; src=&amp;quot;...&amp;quot; alt=&amp;quot;Photo of ...&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Ratings are often presented either as a set of images or characters, e.g. &amp;quot;***&amp;quot;.  For these, the &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; element is particularly useful, as such characters are an abbreviation for the precise rating, e.g. &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;rating&amp;quot; title=&amp;quot;3&amp;quot;&amp;amp;gt;***&amp;amp;lt;/abbr&amp;amp;gt;&amp;lt;/code&amp;gt;.  This is further explored in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Language ====&lt;br /&gt;
* To explicitly convey the natural language that an hReview is written in, use the standard (X)HTML 'lang' attribute on the element with class=&amp;quot;hreview&amp;quot;, e.g. &amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;hreview&amp;quot; lang=&amp;quot;en&amp;quot;&amp;amp;gt; ... &amp;amp;lt;/div&amp;amp;gt;&amp;lt;/code&amp;gt; If portions of an hReview (e.g. the item name) are in a different language, use the 'lang' attribute on those portions.&lt;br /&gt;
* hReview processors which need to handle the language of reviews MUST process the standard (X)HTML 'lang' attribute as specified.&lt;br /&gt;
&lt;br /&gt;
=== Human vs. Machine Readable ===&lt;br /&gt;
If an &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;gt;&amp;lt;/code&amp;gt; element is used for a property, then its '&amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;' attribute is used for the value of the property, instead of the contents of the element, which can then be used to provide a user-friendly alternate presentation of the value. &lt;br /&gt;
&lt;br /&gt;
Similarly, if an &amp;lt;code&amp;gt;&amp;lt;img /&amp;gt;&amp;lt;/code&amp;gt; element is used for one or more properties, it MUST be treated as follows: &lt;br /&gt;
&lt;br /&gt;
# For the &amp;quot;photo&amp;quot; property and any other property that takes a URL as its value, the &amp;lt;code&amp;gt;src=&amp;quot;...&amp;quot;&amp;lt;/code&amp;gt; attribute provides the property value. &lt;br /&gt;
# For other properties, the &amp;lt;code&amp;gt;&amp;lt;img /&amp;gt;&amp;lt;/code&amp;gt; element's '&amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;' attribute is the value of the property.&lt;br /&gt;
&lt;br /&gt;
=== Object Includes ===&lt;br /&gt;
&lt;br /&gt;
hReview 0.3 includes support for the object [[include-pattern]].&lt;br /&gt;
&lt;br /&gt;
Often a single page lists an item, and then several reviews for that item.  In order to avoid having to repeat the item info for each review of the item, the first review should be marked up as an hReview, with a unique &amp;quot;id&amp;quot; attribute on the item info, and then following reviews should use the object [[include-pattern]] to include the item info from the first review.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
This section is informative.&lt;br /&gt;
&lt;br /&gt;
* By marking up a review with the hReview microformat, the expectation is communicated that the review MAY be indexed.  This has no impact on the copyright of the review itself which the publisher may explicitly specify using [[rel-license]] as specified above.&lt;br /&gt;
* The enumerated list of item types is under development and may be extended.&lt;br /&gt;
* Each type may have custom hReview fields that follow the common set.&lt;br /&gt;
* Additional details about a particular item should be specified with the rest of the item's info at the URL provided for the item.&lt;br /&gt;
* Most rating systems use the range 1.0 to 5.0, and most of those represent the rating as a number (and possibly half) of stars.  Sites may use whatever graphic they wish to represent the rating.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
Here are a few examples of reviews from current web sites, and how they could be easily enhanced to support the hReview structured review microformat.  &lt;br /&gt;
&lt;br /&gt;
Want to get started with writing an [[hreview|hReview]]?  Use the [http://microformats.org/code/hreview/creator hReview creator] to write a review and publish it on your blog.&lt;br /&gt;
&lt;br /&gt;
=== Restaurant reviews ===&lt;br /&gt;
&lt;br /&gt;
Here is an example of a simple online restaurant review:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;5 stars out of 5 stars&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;h4&amp;gt;Crepes on Cole is awesome&amp;lt;/h4&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;Reviewer: &amp;lt;span&amp;gt;Tantek&amp;lt;/span&amp;gt; - April 18, 2005&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
  Crepes on Cole is one of the best little creperies in San Francisco. &lt;br /&gt;
  Excellent food and service. Plenty of tables in a variety of sizes &lt;br /&gt;
  for parties large and small.  Window seating makes for excellent &lt;br /&gt;
  people watching to/from the N-Judah which stops right outside.  &lt;br /&gt;
  I've had many fun social gatherings here, as well as gotten &lt;br /&gt;
  plenty of work done thanks to neighborhood WiFi.&lt;br /&gt;
 &amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Visit date: &amp;lt;span&amp;gt;April 2005&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Food eaten: &amp;lt;span&amp;gt;Florentine crepe&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adding hReview to this review is quite simple:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; out of 5 stars&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;h4 class=&amp;quot;summary&amp;quot;&amp;gt;Crepes on Cole is awesome&amp;lt;/h4&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;reviewer vcard&amp;quot;&amp;gt;Reviewer: &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;Tantek&amp;lt;/span&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtreviewed&amp;quot; title=&amp;quot;20050418T2300-0700&amp;quot;&amp;gt;April 18, 2005&amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;description item vcard&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;fn org&amp;quot;&amp;gt;Crepes on Cole&amp;lt;/span&amp;gt; is one of the best little &lt;br /&gt;
  creperies in &amp;lt;span class=&amp;quot;adr&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;locality&amp;quot;&amp;gt;San Francisco&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
  Excellent food and service. Plenty of tables in a variety of sizes &lt;br /&gt;
  for parties large and small.  Window seating makes for excellent &lt;br /&gt;
  people watching to/from the N-Judah which stops right outside.  &lt;br /&gt;
  I've had many fun social gatherings here, as well as gotten &lt;br /&gt;
  plenty of work done thanks to neighborhood WiFi.&lt;br /&gt;
 &amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Visit date: &amp;lt;span&amp;gt;April 2005&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Food eaten: &amp;lt;span&amp;gt;Florentine crepe&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that some of the properties of this sample review are not captured by hReview (visit date, food eaten).  This is deliberate per the scope of keeping hReview minimal and simple.&lt;br /&gt;
&lt;br /&gt;
This sample hReview could be rendered like this:&lt;br /&gt;
&lt;br /&gt;
5 stars out of 5 stars&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Crepes on Cole is awesome'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Reviewer: Tantek - April 18, 2005&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Crepes on Cole is one of the best little creperies in San Francisco. Excellent food and service. Plenty of tables in a variety of sizes for parties large and small.  Window seating makes for excellent people watching to/from the N-Judah which stops right outside. I've had many fun social gatherings here, as well as gotten plenty of work done thanks to neighborhood wifi.&lt;br /&gt;
&lt;br /&gt;
Visit date: April 2005&amp;lt;br /&amp;gt;&lt;br /&gt;
Food eaten: Florentine crepe&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Multidimensional Restaurant Review ====&lt;br /&gt;
Some restaurant reviews indicate ratings for different aspects of the restaurant.  Such details are represented in hReview using tagged ratings.  In addition, note the inline tags inside the description of this review.&lt;br /&gt;
&lt;br /&gt;
Here is one such review in text format:&lt;br /&gt;
&lt;br /&gt;
 Cafe Borrone&lt;br /&gt;
 &lt;br /&gt;
 1010 El Camino Real, Menlo Park, CA 94025, +1-650-327-0830;&lt;br /&gt;
 cafeborrone.com&lt;br /&gt;
 &lt;br /&gt;
 Food: 18/30; Ambience: 19/30; Service: 15/30; Price: $$...&lt;br /&gt;
 &lt;br /&gt;
 This cafe is a welcoming oasis on the Peninsula.  It even has a fountain&lt;br /&gt;
 outside which cloaks the nearby sounds of El Camino traffic.  Next door to a  &lt;br /&gt;
 superb indy bookstore, Cafe Borrone is an ideal spot to grab a coffee or a &lt;br /&gt;
 snack to accompany a newly purchased book or imported periodical.  Soups and &lt;br /&gt;
 sandwich specials rotate daily.  The corn chowder with croutons and big &lt;br /&gt;
 chunks of cheese goes especially well with a freshly toasted mini-baguette.  &lt;br /&gt;
 Evenings are often crowded and may require sharing a table with a perfect &lt;br /&gt;
 stranger.  Espresso afficionados will appreciate the Illy coffee.  Noise &lt;br /&gt;
 levels can vary from peaceful in the late mornings to nearly overwhelming on &lt;br /&gt;
 jazz band nights.&lt;br /&gt;
&lt;br /&gt;
As an hReview:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;item vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;fn org summary&amp;quot;&amp;gt;Cafe Borrone&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;adr&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;street-address&amp;quot;&amp;gt;1010 El Camino Real&amp;lt;/span&amp;gt;,&lt;br /&gt;
   &amp;lt;span class=&amp;quot;locality&amp;quot;&amp;gt;Menlo Park&amp;lt;/span&amp;gt;,&lt;br /&gt;
   &amp;lt;span class=&amp;quot;region&amp;quot;&amp;gt;CA&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;postal-code&amp;quot;&amp;gt;94025&amp;lt;/span&amp;gt;,&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;tel&amp;quot;&amp;gt;+1-650-327-0830&amp;lt;/span&amp;gt;;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://cafeborrone.com&amp;quot;&amp;gt;cafeborrone.com&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li class=&amp;quot;rating&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;http://en.wikipedia.org/wiki/Food&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;&lt;br /&gt;
   Food: &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;18&amp;lt;/span&amp;gt;/&amp;lt;span class=&amp;quot;best&amp;quot;&amp;gt;30&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li class=&amp;quot;rating&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;http://flickr.com/photos/tags/Ambience&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;&lt;br /&gt;
   Ambience: &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;19&amp;lt;/span&amp;gt;/&amp;lt;span class=&amp;quot;best&amp;quot;&amp;gt;30&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li class=&amp;quot;rating&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;http://en.wikipedia.org/wiki/Service&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;&lt;br /&gt;
   Service: &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;15&amp;lt;/span&amp;gt;/&amp;lt;span class=&amp;quot;best&amp;quot;&amp;gt;30&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li class=&amp;quot;rating&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;http://en.wikipedia.org/wiki/Price&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;&lt;br /&gt;
   Price: &amp;lt;abbr class=&amp;quot;value&amp;quot; title=&amp;quot;2&amp;quot;&amp;gt;$$&amp;lt;/abbr&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
  This &amp;lt;abbr class=&amp;quot;type&amp;quot; title=&amp;quot;business&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://en.wikipedia.org/wiki/cafe&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;cafe&amp;lt;/a&amp;gt;&amp;lt;/abbr&amp;gt; &lt;br /&gt;
  is a welcoming oasis on the Peninsula.  &lt;br /&gt;
  It even has a fountain outside which nearly eliminates &lt;br /&gt;
  the sounds of El Camino traffic.  Next door to a superb indy bookstore, &lt;br /&gt;
  Cafe Borrone is an ideal spot to grab a &lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://en.wikipedia.org/wiki/coffee&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;coffee&amp;lt;/a&amp;gt; &lt;br /&gt;
  or a meal to accompany a newly purchased book or imported periodical.  &lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://technorati.com/tag/soup&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;Soups&amp;lt;/a&amp;gt; and &lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://technorati.com/tag/sandwich&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;sandwich&amp;lt;/a&amp;gt; &lt;br /&gt;
  specials rotate daily.  The corn chowder with croutons and big chunks of cheese &lt;br /&gt;
  goes especially well with a freshly toasted mini-baguette.  Evenings are &lt;br /&gt;
  often crowded and may require sharing a table with a perfect stranger. &lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://flickr.com/photos/tags/espresso&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;Espresso&amp;lt;/a&amp;gt; &lt;br /&gt;
  afficionados will appreciate the &lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://en.wikipedia.org/wiki/Illy&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;Illy&amp;lt;/a&amp;gt; coffee.  &lt;br /&gt;
  Noise levels can vary from peaceful in the late mornings to nearly overwhelming on &lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://en.wikipedia.org/wiki/jazz&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;jazz&amp;lt;/a&amp;gt; band nights.&lt;br /&gt;
 &amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 Review (&amp;lt;a href=&amp;quot;http://microformats.org/wiki/hreview&amp;quot;&amp;gt; &lt;br /&gt;
  hReview v&amp;lt;span class=&amp;quot;version&amp;quot;&amp;gt;0.3&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;)&lt;br /&gt;
 by &amp;lt;span class=&amp;quot;reviewer vcard&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;anonymous&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;, &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtreviewed&amp;quot; title=&amp;quot;20050428T2130-0700&amp;quot;&amp;gt;April 28th, 2005&amp;lt;/abbr&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With an accompanying CSS style sheet like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
a.url { display:block }&lt;br /&gt;
ul.categories { margin:1em 0; padding:0 }&lt;br /&gt;
.categories li { display:inline }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This hReview could be presented similar to the original text:&lt;br /&gt;
&lt;br /&gt;
Cafe Borrone&amp;lt;br /&amp;gt;&lt;br /&gt;
1010 El Camino Real, Menlo Park, CA 94025, +1-650-327-0830;&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://cafeborrone.com/ cafeborrone.com]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://en.wikipedia.org/wiki/Food Food: 18/30];&lt;br /&gt;
[http://flickr.com/photos/tags/Ambience Ambience: 19/30];&lt;br /&gt;
[http://en.wikipedia.org/wiki/Service Service: 15/30];&lt;br /&gt;
[http://en.wikipedia.org/wiki/Price Price: $$...]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [http://en.wikipedia.org/wiki/cafe cafe] is a welcoming oasis on the Peninsula.  It even has a fountain outside which cloaks the nearby sounds of El Camino traffic.  Next door to a superb indy bookstore, Cafe Borrone is an ideal spot to grab a [http://en.wikipedia.org/wiki/coffee coffee] or a snack to accompany a newly purchased book or imported periodical.  [http://technorati.com/tag/soup Soups] and [http://technorati.com/tag/sandwich sandwich] specials rotate daily.  The corn chowder with croutons and big chunks of cheese goes especially well with a freshly toasted mini-baguette.  Evenings are often crowded and may require sharing a table with a perfect stranger.  [http://flickr.com/photos/tags/espresso Espresso] afficionados will appreciate the [http://en.wikipedia.org/wiki/Illy Illy] coffee.  Noise levels can vary from peaceful in the late mornings to nearly overwhelming on [http://en.wikipedia.org/wiki/jazz jazz] band nights.&lt;br /&gt;
&lt;br /&gt;
Review ([http://microformats.org/wiki/hreview hReview v0.3]) by anonymous, April 28th, 2005.&lt;br /&gt;
&lt;br /&gt;
=== Product review ===&lt;br /&gt;
Here is an example of a product review:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
 &amp;lt;a href=&amp;quot;http://www.amazon.com/exec/obidos/ASIN/B000089CJI/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;http://images.amazon.com/images/P/B000089CJI.01._SCTHUMBZZZ_.jpg&amp;quot; &lt;br /&gt;
              alt=&amp;quot;Album cover photo: The Postal Service: Give Up.&amp;quot; /&amp;gt;&lt;br /&gt;
 The Postal Service: Give Up&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
   &amp;quot;The people thought they were just being rewarded for treating others &lt;br /&gt;
    as they like to be treated, for obeying stop signs and curing diseases, &lt;br /&gt;
    for mailing letters with the address of the sender... Don't wake me, &lt;br /&gt;
    I plan on sleeping in...&amp;quot;&lt;br /&gt;
   &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
   &amp;quot;Nothing Better&amp;quot; is a great track on this album, too... &lt;br /&gt;
 &amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 (*****)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adding hReview to this review is also quite simple, but in this case requires a few more elements for the rating and reviewer which are required by hReview:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;item url&amp;quot; href=&amp;quot;http://www.amazon.com/exec/obidos/ASIN/B000089CJI/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;http://images.amazon.com/images/P/B000089CJI.01._SCTHUMBZZZ_.jpg&amp;quot; &lt;br /&gt;
       alt=&amp;quot;Album cover photo: The Postal Service: Give Up. &amp;quot; &lt;br /&gt;
       class=&amp;quot;photo&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;The Postal Service: Give Up&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
    &amp;quot;The people thought they were just being rewarded for treating others &lt;br /&gt;
     as they like to be treated, for obeying stop signs and curing diseases, &lt;br /&gt;
     for mailing letters with the address of the sender... Don't wake me, &lt;br /&gt;
     I plan on sleeping in...&amp;quot;&lt;br /&gt;
   &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
   &amp;quot;Nothing Better&amp;quot; is a great track on this album, too... &lt;br /&gt;
 &amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 (&amp;lt;abbr class=&amp;quot;rating&amp;quot; title=&amp;quot;5&amp;quot;&amp;gt;*****&amp;lt;/abbr&amp;gt;)&lt;br /&gt;
 &amp;lt;p class=&amp;quot;reviewer vcard&amp;quot;&amp;gt;Review by &lt;br /&gt;
  &amp;lt;a class=&amp;quot;url fn&amp;quot; href=&amp;quot;http://ifindkarma.com/blog/&amp;quot;&amp;gt;Adam Rifkin&amp;lt;/a&amp;gt;, &lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;dtreviewed&amp;quot; title=&amp;quot;200502&amp;quot;&amp;gt;February 2005&amp;lt;/abbr&amp;gt;&lt;br /&gt;
 &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this hReview might be presented like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Album cover photo: ]&lt;br /&gt;
[The Postal Service:]&lt;br /&gt;
[      Give Up      ]&lt;br /&gt;
&lt;br /&gt;
The Postal Service: Give Up&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The people thought they were just being rewarded for treating others as they like to be treated, for obeying stop signs and curing diseases, for mailing letters with the address of the sender... Don't wake me, I plan on sleeping in...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Nothing Better&amp;quot; is a great track on this album, too...&lt;br /&gt;
&lt;br /&gt;
(*****)&lt;br /&gt;
&lt;br /&gt;
Review by Adam Rifkin, February 2005.&lt;br /&gt;
&lt;br /&gt;
=== Movie Review ===&lt;br /&gt;
Finally, here is an example of a movie review.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;anonymous, April 18th, 2005&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;a lang=&amp;quot;zh&amp;quot; href=&amp;quot;http://www.imdb.com/title/tt0299977/&amp;quot;&amp;gt;&lt;br /&gt;
  Ying Xiong (&amp;lt;span lang=&amp;quot;en&amp;quot;&amp;gt;HERO&amp;lt;/span&amp;gt;)&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;div&amp;gt;Rating: 4 out of 5&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
  This movie has great visuals and music.&lt;br /&gt;
 &amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With hReview:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;reviewer vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;anonymous&amp;lt;/span&amp;gt;, &lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;dtreviewed&amp;quot; title=&amp;quot;20050418&amp;quot;&amp;gt;April 18th, 2005&amp;lt;/abbr&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a lang=&amp;quot;zh&amp;quot; class=&amp;quot;url fn&amp;quot; href=&amp;quot;http://www.imdb.com/title/tt0299977/&amp;quot;&amp;gt;&lt;br /&gt;
  Ying Xiong (&amp;lt;span lang=&amp;quot;en&amp;quot;&amp;gt;HERO&amp;lt;/span&amp;gt;)&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;div&amp;gt;Rating: &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt; out of 5&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
  This movie has great music and visuals.&lt;br /&gt;
 &amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which could be presented like this:&lt;br /&gt;
&lt;br /&gt;
anonymous, April 18th, 2005&amp;lt;br /&amp;gt;&lt;br /&gt;
Ying Xiong (HERO)&amp;lt;br /&amp;gt;&lt;br /&gt;
Rating: 4 out of 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This movie has great music and visuals.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
The following sites have published hReviews, and thus are a great place to start for anyone looking for examples &amp;quot;in the wild&amp;quot; to try parsing, indexing, organizing etc.  If you publish hReviews on your own page, feel free to add it to the top of this list.  Once the list grows too big, we'll make a separate wiki page.&lt;br /&gt;
&lt;br /&gt;
Want to get started with writing an [[hreview|hReview]]?  Use the [http://microformats.org/code/hreview/creator hReview creator] to write a review and publish it on your blog.&lt;br /&gt;
&lt;br /&gt;
*[http://jg.typepad.com/ciel/ Joan] has published [http://jg.typepad.com/ciel/2006/02/daniel_bouluds_.html an hReview of Garçon]&lt;br /&gt;
*[http://zipingo.typepad.com/ Zipingo Team Blog], a collaborative blog by the Zipingo Product Development Team at Intuit, used the hReview format to tag [http://zipingo.typepad.com/my_weblog/2005/12/finding_an_elec.html the backstory] of a review on a San Mateo electrician, written by one of the Zipingo team members ZipingoJim. Jim's post also links to his review on [http://www.zipingo.com Zipingo], a consumer opinion site.&lt;br /&gt;
* [http://mincedmedia.blogspot.com/ Minced Media], a media blog by author/writer [http://www.kimbayne.com Kim M. Bayne], used the hReview format to tag her rant about [http://mincedmedia.blogspot.com/2005/09/old-yeller.html customer service]. Future reviews of business and media will contain hReview.&lt;br /&gt;
* [http://ukfilmreview.blogspot.com/ UK Film Review] a new blog using hReview format to review Films and DVD releases in the UK&lt;br /&gt;
* [http://www.debaser.it/ DeBaser.it] publishes music reviews (in Italian) supporting hReview.&lt;br /&gt;
* [http://blog.ftwr.co.uk/ Peter Westwood] posted an [http://blog.ftwr.co.uk/archives/2006/01/05/the-fox-inn/ hReview of The Fox Inn]&lt;br /&gt;
* [http://www.livejournal.com/users/danieljohn/ Daniel John] provides a [http://www.livejournal.com/users/danieljohn/58674.html scathing hReview of CIBC].&lt;br /&gt;
* [http://uk.movies.yahoo.com/movie-reviews/ Yahoo UK Movie Reviews] now supports hReview on all (&amp;gt;2000) reviews, e.g. [http://uk.movies.yahoo.com/h/Harry-Potter-and-the-Goblet-of-Fire/review-41195.html Harry Potter and the Goblet of Fire Review]&lt;br /&gt;
* [http://adam.typepad.com/impossiblethings/ Adam Hertz] wrote an [http://adam.typepad.com/impossiblethings/2005/11/soluna.html hReview of Soluna]&lt;br /&gt;
* [http://www.mattmcalister.com/blog/ Matt McAllister] wrote an [http://www.mattmcalister.com/blog/_archives/2005/11/16/1408893.html hReview of the TV show: &amp;quot;The Office&amp;quot;]&lt;br /&gt;
* [http://www.bmannconsulting.com/blog/bmann/ Boris Mann] wrote an [http://www.bmannconsulting.com/blog/bmann/doubletake-best-panorama-stitch-tool-for-mac-os-x hReview of DoubleTake, a panorama stitch tool for Mac OS X]&lt;br /&gt;
* [http://blog.ftwr.co.uk/ Peter Westwood] has written an [http://blog.ftwr.co.uk/archives/2005/10/03/blubeckers-hampton-court/ hReview of Blubeckers Hampton Court] and an [http://blog.ftwr.co.uk/archives/2006/01/05/the-fox-inn/ hReview of The Fox Inn Bucks Green, West Sussex]&lt;br /&gt;
* [http://dougal.gunters.org/blog/ Dougal] has published an [http://dougal.gunters.org/blog/2005/08/03/french-vanilla-latte hReview of Wolfgang Puck’s Gourmet French Vanilla Latte].&lt;br /&gt;
* [http://www.dinnerbuzz.com/ Dinnerbuzz] is a great site for posting tagged reviews of restaurants, and they publish and summarize all their reviews in hReview!&lt;br /&gt;
* [http://soldierant.net/ Bryce Glass] posted an [http://soldierant.net/archives/2005/06/product_review.html hReview of the Uniden ELBT 595 Bluetooth Cordless Phone].&lt;br /&gt;
* dda posted an [http://sungnyemun.org/wordpress/?p=20 hReview of hReview] :) &lt;br /&gt;
* An [http://tbp.xomerang.com/?p=3 hReview of Caffè Camardo coffee].&lt;br /&gt;
* [http://loadaveragezero.com/hnav/contact.php Douglas Clifton] posted [http://loadaveragezero.com/#May-12-2005 comments] regarding adapting his list of ~800 [http://loadaveragezero.com/app/drx Developer Resources] as a format for evaluating hReview.&lt;br /&gt;
* [http://www.oliverbrown.me.uk/ Oliver Brown] [http://www.oliverbrown.me.uk/2005/05/09/sitereviewsorg-supports-hreview-i-think/ has announced] that his [http://en-us.sitereviews.org/ SiteReviews.org] (which reviews websites) publishes its reviews using hReview, e.g. here is the [http://en-us.sitereviews.org/review-photomatt.net review on SiteReviews.org for photomatt.net].&lt;br /&gt;
* [http://www.myelin.co.nz/post/ Phillip Pearson] is publishing hReviews in the [http://coffee.gen.nz/rss/reviews RSS feed of cafe reviews] on his [http://coffee.gen.nz/ kiwi coffee review site], which of course has the reviews in HTML with embedded hReview markup as well.&lt;br /&gt;
* [http://station11.net/ticker/ Kjell] is publishing his link blog as a [http://station11.net/ticker/ list of hReviews].&lt;br /&gt;
* [http://epeus.blogspot.com/ Kevin Marks] has [http://epeus.blogspot.com/2005_04_01_epeus_archive.html#111484565269684374 published two hReviews] and used unicode &amp;quot;star&amp;quot; characters for his ratings!&lt;br /&gt;
* JamesStewart is publishing hReviews in the location pages at his [http://grwifi.net Grand Rapids WiFi site].&lt;br /&gt;
* [http://soldierant.net/ Soldier Ant] has [http://soldierant.net/archives/2005/06/product_review.html reviewed a cordless phone].&lt;br /&gt;
* [http://www.happenchance.co.uk/ Paul Livingstone] uses hreview to voice his opinion on [http://www.happenchance.co.uk/archives/2005/07/war_of_the_worl.php books], [http://www.happenchance.co.uk/archives/2005/03/im_going_to_fin.php movies] and [http://www.happenchance.co.uk/archives/2005/05/eels_carling_ac.php music].&lt;br /&gt;
* [http://www.stuffandnonsense.co.uk/ Andy Clarke] uses hReview for his [http://www.stuffandnonsense.co.uk/general/recommended-reading.html recommended reading list]&lt;br /&gt;
* [http://www.tjameswhite.com/blog Tim White] has begun implementing hReviews at [http://reviews.gale.com at work].&lt;br /&gt;
* [http://nachlin.com/ Jim Nachlin] has added hReview publishing to the CMS he uses to publish  [http://daysofleisure.com/writing his blog].&lt;br /&gt;
* [http://whumpdotcom.livejournal.com/236856.html Bill Humphries] has reviewed the book &amp;quot;A Brother's Price&amp;quot; on his LiveJournal.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which either generate or parse hReviews. If you have an hReview implementation, feel free to add it to the top of this list.  Once the list grows too big, we'll make a separate wiki page.&lt;br /&gt;
&lt;br /&gt;
* [http://www.reevoo.com/blogs/bengriffiths/ Revieworld CTO Ben Griffiths] has announced that they have built support into [http://www.reevoo.com/ Reevoo] to [http://www.reevoo.com/blogs/bengriffiths/2006/02/01/join-the-reevolution/ aggregate reviews of products that are published on blogs using hReview]&lt;br /&gt;
* [http://brain.lionsden.com/ Leo Cerebellum Annotare] notes that [http://brain.lionsden.com/?p=229 ReviewZilla Alpha 2 includes MicroFormat hReview markup]&lt;br /&gt;
* [http://blog.codeeg.com/ Calvin Yu] has written a  [http://blog.codeeg.com/2006/01/28/using-microformats-to-plot-my-favorite-places/ web service that will allow you plot and describe places on a Yahoo Map easily] using [[hreview|hReview]] and [[geo]].&lt;br /&gt;
* [http://blog.codeeg.com/tails-firefox-extension/ Tails is a Firefox Extension] that will display the presence of microformats ([[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], [[xfolk|xFolk]]) on a webpage.&lt;br /&gt;
* [http://kritx.com Kritx] is a site that indexes hReviews and other reviews on the Web.&lt;br /&gt;
* [http://www.goodpic.com/mt/aws/index_us.html Goodpic] has written:&lt;br /&gt;
** [http://www.goodpic.com/mt/aws/index_us.html hReview creator for Amazon.com products]&lt;br /&gt;
** [http://www.goodpic.com/mt/aws/index_uk.html hReview creator for Amazon.co.uk products]&lt;br /&gt;
** [http://www.goodpic.com/mt/aws/index_uk.html hReview creator for Amazon.co.jp products]&lt;br /&gt;
** be sure to choose the &amp;quot;hRview&amp;quot; tab from among the choices on the page that says &amp;quot;You can choose from more than 30 designs, please click the tab to select categories.&amp;quot;&lt;br /&gt;
* See the microformats.org [http://microformats.org/code/hreview/creator hReview creator]&lt;br /&gt;
* [http://www.eigaseikatu.com/ Eigaseikatu], one of the largest movie community sites in Japan, provides [http://www.eigaseikatu.com/hreview/ hReview creator] for movie review.&lt;br /&gt;
* [http://sungnyemun.org/wordpress/?p=22 hReview plugin for WordPress]&lt;br /&gt;
* [http://theryanking.com/ Ryan King] has an [http://theryanking.com/microformats/hreview-creator.html hReview Creator].&lt;br /&gt;
* [http://rvu.ning.com/ Rvu] is a [http://ning.com Ning] app that lets you write reviews of reviews and publishes them in hReview&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Normative References ===&lt;br /&gt;
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]&lt;br /&gt;
* [http://gmpg.org/xmdp/ XMDP]&lt;br /&gt;
* [[hcard|hCard]]&lt;br /&gt;
* [[hcalendar|hCalendar]]&lt;br /&gt;
* [[rel-tag]]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2119.txt RFC2119]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3986.txt RFC3986]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc4287.txt RFC4287] (Atom 1.0)&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://www.w3.org/TR/REC-CSS1 CSS1]&lt;br /&gt;
* ISO.8601.1988&lt;br /&gt;
** International Organization for Standardization, &amp;quot;Data elements and interchange formats - Information interchange - Representation of dates and times&amp;quot;, ISO Standard 8601, June 1988.&lt;br /&gt;
* [http://www.w3.org/TR/1998/NOTE-datetime-19980827 W3C NOTE-datetime-19980827]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3667.txt RFC3667]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3668.txt RFC3668]&lt;br /&gt;
* [http://www.w3.org/Consortium/Patent-Policy-20040205/ W3C Patent Policy]&lt;br /&gt;
* Other reviews efforts. See [[reviews-formats]].&lt;br /&gt;
* Contributed from http://developers.technorati.com/wiki/hReview.&lt;br /&gt;
&lt;br /&gt;
==== Similar Work ====&lt;br /&gt;
* [[hlisting-proposal|hListing]]&lt;br /&gt;
* [[xoxo|XOXO]]&lt;br /&gt;
&lt;br /&gt;
=== Copyright ===&lt;br /&gt;
{{MicroformatCopyrightStatement2005}}&lt;br /&gt;
&lt;br /&gt;
=== Patents ===&lt;br /&gt;
{{MicroFormatPatentStatement}}&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
This specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. &lt;br /&gt;
&lt;br /&gt;
=== Changes from v0.2 ===&lt;br /&gt;
The following changes have been made in hReview v0.3 over [[hreview-v0.2|hReview v0.2]]:&lt;br /&gt;
&lt;br /&gt;
Normative changes:&lt;br /&gt;
# MUST (instead of SHOULD) use [[hcard|hCard]] for the item description of a business or person&lt;br /&gt;
# &amp;quot;reviewer&amp;quot; changes&lt;br /&gt;
## Made reviewer *optional* per feedback from Ryan King and Mark Nottingham&lt;br /&gt;
## If reviewer is absent from the hReview, then look outside the hReview, in the context of the page, for the reviewer.  If there is no &amp;quot;reviewer&amp;quot; outside either, then use the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;address&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; for the page as the reviewer.&lt;br /&gt;
## MUST (instead of SHOULD) use [[hcard|hCard]] to represent reviewer information&lt;br /&gt;
# SHOULD use [[hcalendar|hCalendar]] to represent an item of 'type' 'event'&lt;br /&gt;
# Added one decimal digit of precision to ratings' numerical values based on publisher experience.&lt;br /&gt;
# Use [http://microformats.org/wiki/hcard#Value_excerpting the &amp;quot;value&amp;quot; construct from hCard] (as it is used in &amp;quot;tel&amp;quot; properties for example) to more explicitly markup the rating value when also providing (marking up) the best/worst of a rating.&lt;br /&gt;
# Added [[rel-license]] to indicate the license of the hReview as a whole.&lt;br /&gt;
# Permit tags inside ratings to denote rated tags, the same as ratings inside tags per suggestion from Eran Globen.&lt;br /&gt;
# Add [[include-pattern]] support to allow multiple reviews for the same item to not repeat the item info.&lt;br /&gt;
&lt;br /&gt;
Informative changes (several, but in particular):&lt;br /&gt;
# Note that scalar/rated tags would ideally use a tag space that explain the ratings for that tag.  E.g. to explain what Food:18/30 means.&lt;br /&gt;
# Updated examples accordingly.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
* Feedback is encouraged on the [[hreview-feedback]] page.&lt;br /&gt;
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page].&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about hReview, check the [[hreview-faq|hReview FAQ]], and if you don't find answers, add your questions to the end!&lt;br /&gt;
&lt;br /&gt;
=== Issues ===&lt;br /&gt;
* Please add any issues with the specification to the separate [[hreview-issues|hReview issues]] document.&lt;/div&gt;</summary>
		<author><name>PigsOTWing</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=hcalendar-brainstorming&amp;diff=4835</id>
		<title>hcalendar-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=hcalendar-brainstorming&amp;diff=4835"/>
		<updated>2006-02-06T21:20:09Z</updated>

		<summary type="html">&lt;p&gt;PigsOTWing: /* Use in tables */ date fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hCalendar Brainstorming =&lt;br /&gt;
__TOC__&lt;br /&gt;
== Authors ==&lt;br /&gt;
* [http://suda.co.uk/ Brian Suda]&lt;br /&gt;
* [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
= BEST-PRACTICES =&lt;br /&gt;
Along with the four base properties, you can define addtional properties through the use of the x-prop property. For best-practices for hCal to iCal transformers, it would be helpful if the transforming application added the following x-* properties:&lt;br /&gt;
&lt;br /&gt;
* X-FROM-URL. The value of this property would be the URL of the page where the iCal representation was generated.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
X-FROM-URL:http://example.com/page-containing-hCal-encoding.html&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* X-WR-CALNAME.  iCal.app recognizes this property as the &amp;quot;calendar name&amp;quot; for subscribed calendars.  Thus transforming applications *should* take the &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;amp;gt;...&amp;amp;lt;/title&amp;amp;gt;&amp;lt;/code&amp;gt; from the page being parsed, optionally append &amp;quot; events&amp;quot;, and use that value for the X-WR-CALNAME property in the resulting feed. E.g. if the page had &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;amp;gt;Example Home Page&amp;amp;lt;/title&amp;amp;gt;&amp;lt;/code&amp;gt; then the .ics output should have as part of the vcalendar object:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
X-WR-CALNAME:Example Home Page&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
This is a growing example case written in iCal format and transformed to the corresponding XHTML. These conversions are open to community input.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
CATEGORIES:foo,bar&lt;br /&gt;
SUMMARY: Short Title&lt;br /&gt;
DESCRIPTION: Full Description&lt;br /&gt;
DTSTART;VALUE=DATE:20040101&lt;br /&gt;
DTEND:20040101T235959Z&lt;br /&gt;
RRULE:FREQ=YEARLY;UNTIL=20080102T000000Z&lt;br /&gt;
URL;WORK:http://example.com&lt;br /&gt;
ATTENDEE;ROLE=CHAIR:MAILTO:JohnDoe@example.com&lt;br /&gt;
GEO:37.386013;-122.082932&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- @@ how to deal with Whitespace issues in lists 'foo, bar' --&amp;gt;&lt;br /&gt;
Categories:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;foo&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bar&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://example.com&amp;quot; class=&amp;quot;summary&amp;quot;&amp;gt;Short Title&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;description&amp;quot;&amp;gt;description&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;geo&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Lat&amp;quot;&amp;gt;37.386013&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;Lon&amp;quot;&amp;gt;-122.082932&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- This currently does not take into consideration the VALUE=DATE --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The transforming application could attempt to detect the proper format and add params as needed? --&amp;gt;&lt;br /&gt;
Date: &amp;lt;em class=&amp;quot;dtstart&amp;quot;&amp;gt;20040101&amp;lt;/em&amp;gt; - &amp;lt;em class=&amp;quot;dtend&amp;quot;&amp;gt;20040101T235959Z&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- any thoughts to better encode attendee --&amp;gt;&lt;br /&gt;
&amp;lt;!-- the ROLE must be of a known type, but one of type is x-name (user-specified) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- therefore there is no solid way to know &amp;quot;chair&amp;quot; refers to a ROLE parameter --&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;attendee chair&amp;quot; href=&amp;quot;mailto:JohnDoe@example.com&amp;quot;&amp;gt;John Doe&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- this messy, but works. Is there a better way? --&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;rrule&amp;quot;&amp;gt;The event will be held &amp;lt;span class=&amp;quot;freq&amp;quot;&amp;gt;yearly&amp;lt;/span&amp;gt; until &amp;lt;span class=&amp;quot;&amp;quot;until&amp;quot;&amp;gt;20080102T000000Z&amp;lt;/span&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
@@-need to look at nested tag examples&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
XHTML&lt;br /&gt;
&amp;lt;span class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Short Title&amp;lt;/span&amp;gt; to a longer article&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vCal&lt;br /&gt;
SUMMARY:Short Title&lt;br /&gt;
DESCRIPTION:Short Title to a longer article&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples from RFC 2445 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Note: this subsection is worthy of being the start of a new page: [[hcalendar-examples]], similar to [[hcard-examples]] -[http://tantek.com/log/ Tantek]&amp;lt;/del&amp;gt;&lt;br /&gt;
* These examples are now all available on [[hcalendar-examples]] -[[User:RyanKing]]&lt;br /&gt;
&lt;br /&gt;
With the abbr's title attribute being used rather than the node value, the actual data could vary and still represent the same vcalendar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
PRODID:-//hacksw/handcal//NONSGML v1.0//EN&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:19970714T170000Z&lt;br /&gt;
DTEND:19970715T035959Z&lt;br /&gt;
SUMMARY:Bastille Day Party&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;19970714T170000Z&amp;quot;&amp;gt;July 14th&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;19970715T035959Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Bastille Day Party&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== UID handling ===&lt;br /&gt;
&lt;br /&gt;
The UID in iCal is represented in HTML as the id attribute in these examples. Any valid id in HTML is a valid UID in iCal, but not the contrapositive, a valid UID is NOT a valid HTML id. HTML ids can only start with a letter, not a number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:19970901T130000Z-123401@host.com&lt;br /&gt;
DTSTAMP:19970901T1300Z&lt;br /&gt;
DTSTART:19970903T163000Z&lt;br /&gt;
DTEND:19970903T190000Z&lt;br /&gt;
SUMMARY:Annual Employee Review&lt;br /&gt;
CLASS:PRIVATE&lt;br /&gt;
CATEGORIES:BUSINESS,HUMAN RESOURCES&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot; id=&amp;quot;19970901T130000Z-123402@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstamp&amp;quot; class=&amp;quot;19970901T1300Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstart&amp;quot; class=&amp;quot;19970903T163000Z&amp;quot;&amp;gt;September 3rd, 4:30pm&amp;lt;/abbr&amp;gt;-&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtend&amp;quot; class=&amp;quot;19970903T190000Z&amp;quot;&amp;gt;7:00pm&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Annual Employee Review&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;class&amp;quot;&amp;gt;private&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;BUSINESS&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;HUMAN RESOURCES&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:19970901T130000Z-123402@host.com&lt;br /&gt;
DTSTAMP:19970901T1300Z&lt;br /&gt;
DTSTART:19970401T163000Z&lt;br /&gt;
DTEND:19970402T010000Z&lt;br /&gt;
SUMMARY:Laurel is in sensitivity awareness class.&lt;br /&gt;
CLASS:PUBLIC&lt;br /&gt;
CATEGORIES:BUSINESS,HUMAN RESOURCES&lt;br /&gt;
TRANSP:TRANSPARENT&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot; id=&amp;quot;19970901T130000Z-123402@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstamp&amp;quot; class=&amp;quot;19970901T1300Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstart&amp;quot; class=&amp;quot;19970401T163000Z&amp;quot;&amp;gt;April 1st 4:30pm&amp;lt;/abbr&amp;gt;-&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtend&amp;quot; class=&amp;quot;19970402T010000Z&amp;quot;&amp;gt;1:00am&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Laurel is in sensitivity awareness class.&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;class&amp;quot;&amp;gt;PUBLIC&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;BUSINESS&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;HUMAN RESOURCES&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;transp&amp;quot;&amp;gt;Transparent&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RRULE handling ===&lt;br /&gt;
&lt;br /&gt;
The way RRULE is encoded should be discussed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:19970901T130000Z-123403@host.com&lt;br /&gt;
DTSTAMP:19970901T1300Z&lt;br /&gt;
DTSTART:19971102&lt;br /&gt;
SUMMARY:Our Blissful Anniversary&lt;br /&gt;
CLASS:CONFIDENTIAL&lt;br /&gt;
CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION&lt;br /&gt;
RRULE:FREQ=YEARLY&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot; id=&amp;quot;19970901T130000Z-123403@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstart&amp;quot; class=&amp;quot;19970901T1300Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtend&amp;quot; class=&amp;quot;19971102&amp;quot;&amp;gt;November 2nd&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Our Blissful Anniversary&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;class&amp;quot;&amp;gt;CONFIDENTIAL&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;ANNIVERSARY&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;PERSONAL&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;SPECIAL OCCASION&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;rrule&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;freq&amp;quot;&amp;gt;YEARLY&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples from real world event sites ==&lt;br /&gt;
&lt;br /&gt;
=== W3C Meetings ===&lt;br /&gt;
&lt;br /&gt;
I just got email announcing the dates of another W3C meeting.  I don't think it's marked up with hCalendar. I could mark it up myself, like I did for [http://www.w3.org/2005/12/allgroupoverview.html the TP day/week schedule], but it might not stick. Somehow I got [http://www.w3.org/2000/08/w3c-synd/ our syndicated news markup] (precursor to [[hAtom]]) to stick, i.e. to become part of the norm in the W3C comm team. I wonder if I could pull that off for calendars.&lt;br /&gt;
&lt;br /&gt;
My first thought is authoring tools, but I don't think I can wait that long.&lt;br /&gt;
Next thought is instant-feedback checking tools...&lt;br /&gt;
X2V is really handy, but can't be used for confidential pages (and many/most calendars I use are not public).&lt;br /&gt;
So.. how about some in-browser javascript &amp;quot;yes, you got it right!&amp;quot; or &amp;quot;hmm... that looks like a date; is there an event you didn't mark up?&amp;quot; feedback? I think I saw something like that in hCalendar implementations.&lt;br /&gt;
&lt;br /&gt;
[[User:DanC|DanC]] 09:00, 3 Feb 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
=== Laughing Squid ===&lt;br /&gt;
&lt;br /&gt;
Laughing Squid had the following [http://laughingsquid.com/squidlist/calendar/9584/2005/4/7 multiple occurence event example]:&lt;br /&gt;
&lt;br /&gt;
 Thu, Apr 7 : Tu/Wed: 12-4pm Th/Fr/Sat 12-7pm Sun 12-6pm &lt;br /&gt;
&lt;br /&gt;
In addition, later on in the description, it says:&lt;br /&gt;
&lt;br /&gt;
 April 7-21, 2005&lt;br /&gt;
&lt;br /&gt;
This is actually quite a non-trivial example, because the event lasts for different durations on different days (4 hours, 7 hours, 6 hours).&lt;br /&gt;
&lt;br /&gt;
Because of the differing durations, the specification requires that *each* instance of this recurring event be explicitly specified.  &lt;br /&gt;
&lt;br /&gt;
But first we markup the starting date and time explicitly:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050407T1200-0700&amp;quot;&amp;gt;Thu, Apr 7&amp;lt;/abbr&amp;gt; : &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then we put in the quite lengthy explicit specification of every other time the event occurs, marked up around the human readable description.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;rdate&amp;quot; title=&amp;quot;20050407T1200-0700/PT7H, 20050408T1200-0700/PT7H, &lt;br /&gt;
20050409T1200-0700/PT7H, 20050410T1200-0700/PT6H, 20050412T1200-0700/PT4H, &lt;br /&gt;
20050413T1200-0700/PT4H, 200504014T1200-0700/PT7H, 20050415T1200-0700/PT7H, &lt;br /&gt;
20050416T1200-0700/PT7H, 20050417T1200-0700/PT6H, 20050419T1200-0700/PT4H, &lt;br /&gt;
20050420T1200-0700/PT4H, 20050421T1200-0700/PT7H&amp;quot; &amp;gt;&lt;br /&gt;
Tu/Wed: 12-4pm Th/Fr/Sat 12-7pm Sun 12-6pm&lt;br /&gt;
&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The RDATE &amp;quot;PERIOD&amp;quot; format is fairly straightforward.  You simply list *each* occurrence of the event, separated by commas.   Each occurrence consists of the ISO8601 datetime of the start of the event, followed by a slash &amp;quot;/&amp;quot;, followed by *either* the duration of the event (e.g. 7 hours = PT7H), *or* a complete ISO8601 datetime of the end of the event.  I chose to use the duration of the event for this example for reason of brevity.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;value=period:&amp;quot; is unnecessary in the rdate value since the parser can infer &amp;quot;value=period:&amp;quot; from the presence of a &amp;quot;/&amp;quot; in the title attribute value.&lt;br /&gt;
&lt;br /&gt;
With simpler repeating events, or perhaps events which only repeat a day or two, their hCalendar markup may be more illustrative of how to do this in a general way.&lt;br /&gt;
&lt;br /&gt;
= CSS Styles =&lt;br /&gt;
Since the hCal properties are added in as CSS styles, you can style them along with any normal CSS style. You are free to style these properties in any fashion you want (see specific notes), but here are a few examples that you can use.&lt;br /&gt;
&lt;br /&gt;
== Preserving White-space ==&lt;br /&gt;
If you are encoding data that requires tabs, returns, or other white-space to be perserved you can use the following CSS property to do so in HTML.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: pre&amp;quot;&amp;gt;&lt;br /&gt;
This white-space&lt;br /&gt;
will be&lt;br /&gt;
preserved&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
white-space can take one of three different parameters; normal, pre, and no-wrap.&lt;br /&gt;
&lt;br /&gt;
== Not recommended ==&lt;br /&gt;
&lt;br /&gt;
The following CSS styling techniques are not recommended:&lt;br /&gt;
&lt;br /&gt;
=== Hiding Data ===&lt;br /&gt;
It is possible to encode additional data without it being displayed in the HTML, by using the CSS style property 'display'.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;Hidden Data&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This data will be found by any transforming application and will be properly encoded into an iCal file.&lt;br /&gt;
&lt;br /&gt;
'''You SHOULD NOT do this because it violates the visibility priniciple.'''&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
How to include hCal encodings into your favourite Blogging Software.&lt;br /&gt;
&lt;br /&gt;
= Open Questions =&lt;br /&gt;
== General Questions ==&lt;br /&gt;
Q: Should Transforming applications purely extract the information and ignore validity? or should there be some checking, or should this be left to the importing application? (i.e. DTSTART;VALUE=DATE: This-Is-Not-a-proper-date)&lt;br /&gt;
&lt;br /&gt;
A: The simpler the better.  Other than checking for perhaps X(HT)ML validity, it should be a simple translator, because presumably the receiving iCalendar application has to have malformed .ics handling already.  Let's avoid duplicating that.  -- [http://tantek.com/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
Q: What about multiple of the instances same vCal entity? (two instances of DTSTART) Is this left up to the importing application, or should the XSLT transformation fail?&lt;br /&gt;
&lt;br /&gt;
A: Same as previous.  Leave it up to the importing application to interpret it per the iCalendar spec, e.g. what does RFC2445 say about two instances of DTSTART?  -- [http://tantek.com/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
From RFC2445:&lt;br /&gt;
4.1.2 Multiple Values&lt;br /&gt;
Some properties defined in the iCalendar object can have multiple values. The general rule for encoding multi-valued items is to simply create a new content line for each value, including the property name. However, it should be noted that some properties support   encoding multiple values in a single property by separating the values with a COMMA character (US-ASCII decimal 44). Individual property definitions should be consulted for determining whether a specific property allows multiple values and in which of these two forms.&lt;br /&gt;
&lt;br /&gt;
Other than that, it does not mention what to do ABOUT invalid data, or which of the multiple entries takes precedence. The only mention of duplicate instances is in the RRULE and EXDATE rules where events exclusions/inclusions overlap. Then duplicate instances are ignore. If it is explicitly written for those items, but NOT for things like DTSTART, then it is difficult to assume duplicate instances are ignored for them as well.&lt;br /&gt;
&lt;br /&gt;
Each of the Components (VEVENT, ...) define which properties can exisit and in what quantity. So multiple DTSTART properties are NOT allowed.&lt;br /&gt;
-- [http://suda.co.uk Brian Suda]&lt;br /&gt;
&lt;br /&gt;
Q: Should vCal entitles be represented in XHTML in classes ONLY on block-level element? or should some like VEVENT be block-level and others be of any? does this impact the semantics at all?&lt;br /&gt;
&lt;br /&gt;
A: I don't think the (X)HTML notion of &amp;quot;block-level&amp;quot; should have any bearing whatsoever on vCal entities.  You should be able to say &amp;lt;span class=&amp;quot;vevent&amp;quot;&amp;gt; or &amp;lt;div class=&amp;quot;vevent&amp;quot;&amp;gt; and either should work.&lt;br /&gt;
&lt;br /&gt;
Q: Should the transforming application add any additional information to the iCalendar representation other than what was encoded in the HTML? (i.e. UID, the unique identifier might not be present in the HTML code, but could be generated by the transforming application and added to the iCal file. Should this be allowed? or should the transforming app ONLY be allowed to add X-PROPERTY properties?) IF it was not explicitly encoded in the HTML should it be left out? What about default values?&lt;br /&gt;
&lt;br /&gt;
Q: If we are looking at the most semantic way to encoding iCalendar data in HTML then several other attributes should be considered besides just 'class'. There are two other candidated, ID and REL. The ID tag MUST be unique within the XHTML file (this could be used for the UID property). The REL attribute can ONLY be applied to 'a' and 'link' tags, but might be helpful. Are namespac&amp;lt;ETH&amp;gt;H �n option? xml:lang, xml:base, are there any others that might be more semantically correct to encode this data?&lt;br /&gt;
&lt;br /&gt;
Q: To help distinguish xparam values from other actual CSS styles, should we assume/mandate that all values in a class attribute within an encoded iCal component class attribute (&amp;lt;x class=&amp;quot;vevent|vtodo|...&amp;quot;&amp;gt;) be considered an xparam?&lt;br /&gt;
&lt;br /&gt;
A: If you are using other CSS styles (e.g. &amp;quot;center&amp;quot;, &amp;quot;bluebox&amp;quot;, &amp;quot;greenline&amp;quot;, etc.) nested within an iCal component, those should be avoided and the styles applied to the list of iCal properties instead/also?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
.center, .vevent { text-align: center; }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: What about cases where the words &amp;quot;yesterday&amp;quot;, &amp;quot;last year&amp;quot;, or &amp;quot;last week&amp;quot; was used? How should we represent this? Is this overkill or not appropriate for hcard ? - [[User:B.K._DeLong]]&lt;br /&gt;
&lt;br /&gt;
A: I took a stab at &amp;quot;yesterday&amp;quot; and just added a dtstart of the previous day. Not sure how to represent a single year or whole week - [[User:B.K._DeLong]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050114&amp;quot;&amp;gt;Yesterday's&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Recurring Events ==&lt;br /&gt;
&lt;br /&gt;
Recurring events are tricky. First, there's the question of whether to follow ''For types with multiple components, use nested elements with class names equivalent to the names of the components'' a la&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;rrule&amp;quot;&amp;gt;every &amp;lt;em class=&amp;quot;interval&amp;quot;&amp;gt;1&amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;em class=&amp;quot;freq&amp;quot;&amp;gt;WEEKLY&amp;lt;/em&amp;gt; on &amp;lt;em class=&amp;quot;byday&amp;quot;&amp;gt;TU&amp;lt;/em&amp;gt;&lt;br /&gt;
until &amp;lt;em class=&amp;quot;until&amp;quot;&amp;gt;2004-11-01&amp;lt;/em&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... or ...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;abbr class=&amp;quot;rrule&amp;quot; title=&amp;quot;FREQ=WEEKLY;COUNT=17;INTERVAL=2;BYDAY=TH&amp;quot;&amp;gt; every other&lt;br /&gt;
Thursday for 34 weeks&amp;lt;/abbr&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... as in [http://microformats.org/discuss/mail/microformats-discuss/2005-August/000516.html Tantek's 1 Aug msg].&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/People/Connolly/ DanC] has been experimenting with representing his PDA calendar in hCalendar:&lt;br /&gt;
&lt;br /&gt;
* in [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent], there's dangerSync.py which uses the XMLRPC interface and spits out RDF data. Then asHCal.xsl converts that to hCalendar&lt;br /&gt;
* then in [http://www.w3.org/2002/12/cal/ the RDF Calendar workspace], there's [http://www.w3.org/2002/12/cal/glean-hcal.xsl glean-hcal.xsl] that turns hCalendar into RDF Calendar, and finally,&lt;br /&gt;
* in [http://www.w3.org/2000/10/swap/ SWAP] there's [http://www.w3.org/2000/10/swap/pim/toIcal.py toIcal.py] that turns RDF Calendar to .ics format.&lt;br /&gt;
&lt;br /&gt;
So I can go from my sidekick to .ics with one Makefile.&lt;br /&gt;
&lt;br /&gt;
[http://dev.w3.org/cvsweb/2001/palmagent/event-test.html events-test.html] is a test file that has all the constructs from my PDA data, in hCalendar. In particular, it uses the nested element representation of recurring events. glean-hcal.xsl would be much less fun to write if it had to parse &amp;lt;nowiki&amp;gt;title=&amp;quot;FREQ=WEEKLY;COUNT=17;INTERVAL=2;BYDAY=TH&amp;quot;&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Then there's the question of &amp;quot;every tuesday afternoon at 2pm Chicago time&amp;quot;. This isn't expressible using [[datetime-design-pattern]]. There are some good reasons for that, but it leaves a rather large and uncomfortable gap in hCalendar.&lt;br /&gt;
&lt;br /&gt;
== Encoding Questions ==&lt;br /&gt;
The way dates are encoded is not always the most user friendly. If i want to encode january 1st, 2005, that is &amp;lt;code&amp;gt;&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;20050101&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;, which is displayed as 20050101. If we are marking-up comma seperated values, like FN, with each sub-element inside their own tag, then the date should be allowed the same.&lt;br /&gt;
&lt;br /&gt;
(However, FN is in the RFC2426 spec and vCard schema, these individual date terms are not, therefore the reasoning in the last sentence is incorrect. -[http://tantek.com/log/ Tantek])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
20050101&lt;br /&gt;
&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Year&amp;quot;&amp;gt;2005&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Month&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Day&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
With this encoding, then YYYYMMDD schema can be rearranged for different cultures, DD-MM-YYYY for UK, MM-DD-YYYY for US, etc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
02-01-2005&lt;br /&gt;
&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Month&amp;quot;&amp;gt;02&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Day&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Year&amp;quot;&amp;gt;2005&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
01-02-2005&lt;br /&gt;
&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Day&amp;quot; title=&amp;quot;first&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Month&amp;quot; title=&amp;quot;Feb&amp;quot;&amp;gt;02&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Year&amp;quot;&amp;gt;2005&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Both of the above encodings are equal, the '-' seperator is ignored by the transforming application. -- [http://suda.co.uk Brian Suda]&lt;br /&gt;
&lt;br /&gt;
Agreed that the way dates are encoded is not always the most user friendly, but there is an easier solution to this, once you think of what is actually going on in the difference between ISO8601 dates, and dates the way humans use them.  Humans typically use an abbrevation or shorthand for a date, like &amp;quot;tomorrow&amp;quot;, or &amp;quot;Tuesday&amp;quot;, or &amp;quot;the 4th&amp;quot;, or perhaps &amp;quot;July 4th&amp;quot;.  Thus it makes sense to permit this in hCalendar, using the &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; tag which provides the ability to markup the human-familiar short form of some data or language, while preserving the long form in the 'title' attribute.&lt;br /&gt;
&lt;br /&gt;
E.g. for the above example of a start date of January 1st, 2005, you could use this markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050101&amp;quot;&amp;gt;January 1st, 2005&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would display as &amp;lt;code&amp;gt;January 1st, 2005&amp;lt;/code&amp;gt; but would provide the respective ISO8601 date in the title attribute. - [http://tantek.com/log Tantek]&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
A HTML head profile needs creation and a home.&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
A simple implementation of transforming/extracting vCal data from an XHTML file is available  for testing. A bookmarklet is also available. The code will be updated as the spec is finalised.&lt;br /&gt;
http://suda.co.uk/projects/X2V/&lt;br /&gt;
&lt;br /&gt;
== Parsing ==&lt;br /&gt;
&lt;br /&gt;
Need to write up an [[hcalendar-parsing]] document, similar to [[hcard-parsing]].&lt;br /&gt;
&lt;br /&gt;
=== Tabular Data ===&lt;br /&gt;
&lt;br /&gt;
Many calendars are posted in tabular form, where the headings on the columns and rows have property values that apply to the cells which themselves are events.&lt;br /&gt;
&lt;br /&gt;
(TODO: document &amp;quot;How To&amp;quot; for marking up tabular event listings)&lt;br /&gt;
&lt;br /&gt;
To enable mark these up with [[hcalendar|hCalendar]], we must parse additional semantic attributes from HTML4.&lt;br /&gt;
&lt;br /&gt;
When parsing, in addition to the special case rules documented in [[hcard-parsing]]:&lt;br /&gt;
&lt;br /&gt;
* If the element is a table data cell &amp;lt;code&amp;gt;&amp;amp;lt;td&amp;amp;gt;&amp;lt;/code&amp;gt;, then:&lt;br /&gt;
*# parse its &amp;quot;headers&amp;quot; attribute as a space separated set of local IDs&lt;br /&gt;
*# find the &amp;lt;code&amp;gt;&amp;amp;lt;td&amp;amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;th&amp;amp;gt;&amp;lt;/code&amp;gt; elements referenced by those IDs (call them header cells) and consider them part of the element being parsed as follows:&lt;br /&gt;
*## Treat the header cells as children of the element, ordered by the order of ids in its &amp;quot;headers&amp;quot; attribute, immediately following the last child node (text or element) or the element.  (The basic idea is that the content from those header cells is used to construct the VEVENT, but secondary to  (AFTER) the content in the data cell itself, so that the data cell can customize/override part of the data in the header, e.g. if the header cell included both start time and location, and the event was being held at a different location).&lt;br /&gt;
*## Parse the &amp;quot;axis&amp;quot; attribute of a header cell as a comma-separated list of categories.  These categories must be used in addition to (and before) any class names on that header cell for determining whether it is a property of the VEVENT.&lt;br /&gt;
&lt;br /&gt;
== Relationships with other microformats ==&lt;br /&gt;
&lt;br /&gt;
In a [http://www.technologyreview.com/articles/04/10/frauenfelder1004.asp Technology Review interview], TBL said &amp;quot;It would have the relationships between the event and the various people chairing it.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
We should have examples of how hCalendar events can indicate such relationships, both in the format and in the presentation.&lt;br /&gt;
E.g.:&lt;br /&gt;
 * Would it just link to URLs for the various people?  (e.g. to their homepages/blogs etc.)&lt;br /&gt;
 * Would it include hCards for the various people?  &lt;br /&gt;
 * Would it link to hCards for various people?&lt;br /&gt;
 * Perhaps allow all the above?&lt;br /&gt;
 &lt;br /&gt;
== Mime-Type ==&lt;br /&gt;
According to RFC2445, the proposed media type value is 'text/calendar'.&lt;br /&gt;
&lt;br /&gt;
A standard vCalendar file has an extension of .vcs and MIME type of text/x-vCalendar. If you use iCalendar, the MIME type is &amp;quot;text/Calendar&amp;quot; and the extension is .ics.&lt;br /&gt;
&lt;br /&gt;
Text/X-vCalendar Content Type&lt;br /&gt;
The vCalendar object can also be passed as a non-standard MIME media type. This would be useful in order to clearly identify the vCalendar object in an electronic mail message body part. A non-standard, vCalendar object should be identified as the MIME type/subtype &amp;quot;text/x-vCalendar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
@@ - i have to do some more investigation, but (i think) vCalendar is a subset of iCalendar, so many of the same encodings will work for both, but this document is dealing with iCalendar RFC2445 representation!&lt;br /&gt;
&lt;br /&gt;
== Button ==&lt;br /&gt;
&lt;br /&gt;
We need to come up with a nice &amp;lt;code&amp;gt;[ hCal | friendly ]&amp;lt;/code&amp;gt; button to indicate that event info on a page/site is using hCalendar. - [http://tantek.com/log/ Tantek].&lt;br /&gt;
&lt;br /&gt;
Possibilities:&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | friendly ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | aware ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | inside ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ Valid | hCalendar ]&amp;lt;/code&amp;gt; - though that would require writing an hCalendar validator which people could link to.&lt;br /&gt;
* &amp;lt;code&amp;gt;[ &amp;lt;icon&amp;gt; | hCalendar ]&amp;lt;/code&amp;gt; where &amp;lt;icon&amp;gt; could be some generic calendar looking thing, or it could be a PHP generated image with the actual date in the icon, kind of like how the Apple iCal icon updates in the dock automatically.&lt;br /&gt;
&lt;br /&gt;
And then we have to pick colors and all that stuff - [http://tantek.com/log/ Tantek].&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | enabled ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | available ]&amp;lt;/code&amp;gt; - kind of an off-hand reference to being available for meetings, etc.&lt;br /&gt;
&lt;br /&gt;
- [http://meyerweb.com/ Eric]&lt;br /&gt;
&lt;br /&gt;
== Including More of iCalendar ==&lt;br /&gt;
&lt;br /&gt;
=== Free/Busy information ===&lt;br /&gt;
&lt;br /&gt;
See [http://www.ifreebusy.com/cyclical/blog/ Neil Jensen]'s [http://www.ifreebusy.com/cyclical/blog/calendar/3 analysis of how to represent the iCalendar VFREEBUSY object in hCalendar].&lt;br /&gt;
&lt;br /&gt;
In order to show free/busy information, we could either use the existing vevent class (with empty location, summary, etc. properties) or create a new vfreebusy class. We should create a new vfreebusy class because it is consistent with the XHTML design principles, particularly point #4, &amp;quot;Use class names based on names from the original schema...&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In the iCalendar standard, the vfreebusy calendar component frequently has more than one freebusy property, and also may have a number of other properties such as organizer. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 BEGIN:VFREEBUSY &lt;br /&gt;
 ORGANIZER:jsmith@host.com &lt;br /&gt;
 DTSTART:19980313T141711Z &lt;br /&gt;
 DTEND:19980410T141711Z &lt;br /&gt;
 FREEBUSY:19980314T233000Z/19980315T003000Z &lt;br /&gt;
 FREEBUSY:19980316T153000Z/19980316T163000Z &lt;br /&gt;
 FREEBUSY:19980318T030000Z/19980318T040000Z &lt;br /&gt;
 URL:http://www.host.com/calendar/busytime/jsmith.ifb &lt;br /&gt;
 END:VFREEBUSY&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, our hCalendar representation should include separate elements for the vfreebusy calendar component (defined once) and the freebusy property (possibly defined many times):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;vfreebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050721T1000-0800&amp;quot;&amp;gt; &lt;br /&gt;
 July 21, 2005 - 10:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050721T1100-0800&amp;quot;&amp;gt; &lt;br /&gt;
 11:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050722T1000-0800&amp;quot;&amp;gt; &lt;br /&gt;
 July 22, 2005 - 10:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050722T1100-0800&amp;quot;&amp;gt; &lt;br /&gt;
 11:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to RFC2445, &amp;quot;When publishing a &amp;quot;VFREEBUSY&amp;quot; calendar component, the property is used to specify the calendar that the published busy time came from.&amp;quot; The property type is CAL-ADDRESS, and can include &amp;quot;non-standard, language, common name and directory entry reference&amp;quot; property parameters. CAL-ADDRESS is &amp;quot;...a URI as defined by [RFC 1738] or any other IANA registered form...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
From what I've seen, Microsoft Outlook typically populates this property with the email address of the calendar owner, which initially made me think of using hCard to specify the organizer. However, given that the property refers to the calendar and not necessarily the person who owns or has published it, I think we should use a new organizer element, as shown below: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 BEGIN:VFREEBUSY &lt;br /&gt;
 ORGANIZER:jsmith@host.com &lt;br /&gt;
 FREEBUSY:20050314T133000Z/20050314T163000Z &lt;br /&gt;
 END:VFREEBUSY&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
becomes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;vfreebusy&amp;quot;&amp;gt; &lt;br /&gt;
 organizer: &amp;lt;span class=&amp;quot;organizer&amp;quot;&amp;gt;jsmith@host.com&amp;lt;/span&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050314T133000Z&amp;quot;&amp;gt; &lt;br /&gt;
 March 14, 2005 - 13:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050314T163000Z&amp;quot;&amp;gt; &lt;br /&gt;
 16:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hmmm, this looks a little funny when the organizer is so obviously an email address, but at least it is semantically correct. The other problem that I can now see occurring is when the organizer property has parameters, for example (from the iCalendar spec):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 ORGANIZER;CN=JohnSmith;DIR=&amp;quot;ldap://host.com:6666/o=3DDC%20Associ &lt;br /&gt;
  ates,c=3DUS??(cn=3DJohn%20Smith)&amp;quot;:MAILTO:jsmith@host1.com&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perhaps it's best to use the same approach described in &amp;quot;Human vs. ISO8601 dates problem solved&amp;quot;; use the abbr element like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;vfreebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 organizer: &amp;lt;abbr class=&amp;quot;organizer&amp;quot; title=&amp;quot;CN=JohnSmith;DIR=ldap://host.com:6666/o=3DDC%20Associ &lt;br /&gt;
 ates,c=3DUS??(cn=3DJohn%20Smith):MAILTO:jsmith@host1.com&amp;quot;&amp;gt;jsmith@host1.com&amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050314T133000Z&amp;quot;&amp;gt; &lt;br /&gt;
 March 14, 2005 - 13:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050314T163000Z&amp;quot;&amp;gt; &lt;br /&gt;
 16:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== To-Do information ===&lt;br /&gt;
&lt;br /&gt;
The [http://www.policyawareweb.org/2005/ftf2/paw-mtg Policy Aware Web (PAW) Project Meeting - 23 Aug 2005] uses class=&amp;quot;vtodo&amp;quot; to capture action items.  Clearly recording action items from a meeting and publishing them as minutes is a good practical example use of the VTODO object on the web. &lt;br /&gt;
&lt;br /&gt;
What's the scenario for usage though?&lt;br /&gt;
&lt;br /&gt;
What kind of indexer/aggregator application would find these VTODO items and what would it do with them?  &lt;br /&gt;
&lt;br /&gt;
Perhaps with some way of figuring out who the to-do item is assigned to (&amp;quot;ATTENDEE&amp;quot;), who assigned it (&amp;quot;DELEGATED-FROM&amp;quot;), and a whitelisting of who, perhaps the &amp;quot;ORGANIZER&amp;quot; property,  (and their domains/URLs) that a user would accept assignments from, a user could aggregate to-do items assigned from other folks.  Then question remains how to update the status (&amp;quot;STATUS&amp;quot;) (RFC 2445 4.8.1.11 Status) on that to-do item when it is (a) completed (&amp;quot;COMPLETED&amp;quot;), (b) abandoned/cut/rejected (&amp;quot;CANCELLED&amp;quot;), (c) some progress is made (&amp;quot;IN-PROCESS&amp;quot;) etc.  There certainly seems to be sufficient expressiveness in VTODO and its properties to do a decentralized to-do list / task distribution system.  Could be very interesting for helping open source projects and other distributed teams do project management using the Web.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
== Normative References ==&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2445.txt RFC 2445]&lt;br /&gt;
* [http://gmpg.org/xmdp/ XMDP]&lt;br /&gt;
&lt;br /&gt;
== Informative References ==&lt;br /&gt;
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars HTMLForCalendars (FOO camp)] - presented just a few days before this, hopefully these efforts can be combine&lt;br /&gt;
&lt;br /&gt;
* [http://www.imc.org/pdi/ Personal Data Interchange (PDI) at the Internet Mail Consortium]&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#d27t1049 Markup language design notes]&lt;br /&gt;
* [http://tantek.com/log/2002/12.html#L20021216t2238 A Touch of Class]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2446.txt iTIP RFC2446]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2447.txt iMIP RFC2447]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3283.txt Guide to Internet Calendaring RFC3283]&lt;br /&gt;
&lt;br /&gt;
== Other Implementations/Ideas ==&lt;br /&gt;
* [http://www.nehmer.net/~bergie/openpsa-calendar-horizontal.jpg OpenPSA calendar screenshot]&lt;br /&gt;
* [http://www.w3.org/2002/12/cal/ RDF Calendar Workspace] - some older work done with RDF, not really applicable to the simple XHTML case, but perhaps worthy of analysis for when and why they may have diverged from established iCalendar schemas.&lt;br /&gt;
* [http://planb.nicecupoftea.org/archives/000072.html 2003 RDF icalendar work, xCal references]&lt;br /&gt;
&lt;br /&gt;
== Blogs About Calendaring ==&lt;br /&gt;
* http://staff.washington.edu/oren/weblog2/&lt;br /&gt;
&lt;br /&gt;
=Use in tables=&lt;br /&gt;
I currently have [http://www.westmidlandbirdclub.com/birmingham/field.htm events in table layout], using the format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;tr class=&amp;quot;X&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Sunday 12 February 2006&amp;lt;/th&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;a href=&amp;quot;http://www.rspb.org.uk/reserves/guide/c/conwy/index.asp&amp;quot;&amp;gt;RSPB Conwy&amp;lt;/a&amp;gt;*/ Llanfairfechan&amp;lt;/strong&amp;gt;.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;A sea watch with potential for divers and sea ducks and a visit to a prime seaside reserve.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How would I include the code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://www.westmidlandbirdclub.com/birmingham/field.htm&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20060212&amp;quot;&amp;gt;February 12 2006&amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20060213&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Birmingham Branch Field Trip&amp;lt;/span&amp;gt; - at&lt;br /&gt;
 &amp;lt;span class=&amp;quot;location&amp;quot;&amp;gt;RSPB Conwy/ Llanfairfechan.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;A sea watch with potential for divers and sea ducks and a visit to a prime seaside reserve.&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
in that? It seems to me that to loose the semantic table mark (column and row headers, for example) up would be a bad thing; not least for people whose lints don't understand hCal. Is the use of a non-breaking space in the dtend OK?[[User:PigsOTWing|PigsOTWing]] 12:12, 6 Feb 2006 (PST)&lt;/div&gt;</summary>
		<author><name>PigsOTWing</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=hcalendar-brainstorming&amp;diff=4812</id>
		<title>hcalendar-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=hcalendar-brainstorming&amp;diff=4812"/>
		<updated>2006-02-06T21:14:10Z</updated>

		<summary type="html">&lt;p&gt;PigsOTWing: /* References */ fix header depth&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hCalendar Brainstorming =&lt;br /&gt;
__TOC__&lt;br /&gt;
== Authors ==&lt;br /&gt;
* [http://suda.co.uk/ Brian Suda]&lt;br /&gt;
* [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
= BEST-PRACTICES =&lt;br /&gt;
Along with the four base properties, you can define addtional properties through the use of the x-prop property. For best-practices for hCal to iCal transformers, it would be helpful if the transforming application added the following x-* properties:&lt;br /&gt;
&lt;br /&gt;
* X-FROM-URL. The value of this property would be the URL of the page where the iCal representation was generated.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
X-FROM-URL:http://example.com/page-containing-hCal-encoding.html&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* X-WR-CALNAME.  iCal.app recognizes this property as the &amp;quot;calendar name&amp;quot; for subscribed calendars.  Thus transforming applications *should* take the &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;amp;gt;...&amp;amp;lt;/title&amp;amp;gt;&amp;lt;/code&amp;gt; from the page being parsed, optionally append &amp;quot; events&amp;quot;, and use that value for the X-WR-CALNAME property in the resulting feed. E.g. if the page had &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;amp;gt;Example Home Page&amp;amp;lt;/title&amp;amp;gt;&amp;lt;/code&amp;gt; then the .ics output should have as part of the vcalendar object:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
X-WR-CALNAME:Example Home Page&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
This is a growing example case written in iCal format and transformed to the corresponding XHTML. These conversions are open to community input.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
CATEGORIES:foo,bar&lt;br /&gt;
SUMMARY: Short Title&lt;br /&gt;
DESCRIPTION: Full Description&lt;br /&gt;
DTSTART;VALUE=DATE:20040101&lt;br /&gt;
DTEND:20040101T235959Z&lt;br /&gt;
RRULE:FREQ=YEARLY;UNTIL=20080102T000000Z&lt;br /&gt;
URL;WORK:http://example.com&lt;br /&gt;
ATTENDEE;ROLE=CHAIR:MAILTO:JohnDoe@example.com&lt;br /&gt;
GEO:37.386013;-122.082932&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- @@ how to deal with Whitespace issues in lists 'foo, bar' --&amp;gt;&lt;br /&gt;
Categories:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;foo&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bar&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://example.com&amp;quot; class=&amp;quot;summary&amp;quot;&amp;gt;Short Title&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;description&amp;quot;&amp;gt;description&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;geo&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Lat&amp;quot;&amp;gt;37.386013&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;Lon&amp;quot;&amp;gt;-122.082932&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- This currently does not take into consideration the VALUE=DATE --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The transforming application could attempt to detect the proper format and add params as needed? --&amp;gt;&lt;br /&gt;
Date: &amp;lt;em class=&amp;quot;dtstart&amp;quot;&amp;gt;20040101&amp;lt;/em&amp;gt; - &amp;lt;em class=&amp;quot;dtend&amp;quot;&amp;gt;20040101T235959Z&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- any thoughts to better encode attendee --&amp;gt;&lt;br /&gt;
&amp;lt;!-- the ROLE must be of a known type, but one of type is x-name (user-specified) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- therefore there is no solid way to know &amp;quot;chair&amp;quot; refers to a ROLE parameter --&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;attendee chair&amp;quot; href=&amp;quot;mailto:JohnDoe@example.com&amp;quot;&amp;gt;John Doe&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- this messy, but works. Is there a better way? --&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;rrule&amp;quot;&amp;gt;The event will be held &amp;lt;span class=&amp;quot;freq&amp;quot;&amp;gt;yearly&amp;lt;/span&amp;gt; until &amp;lt;span class=&amp;quot;&amp;quot;until&amp;quot;&amp;gt;20080102T000000Z&amp;lt;/span&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
@@-need to look at nested tag examples&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
XHTML&lt;br /&gt;
&amp;lt;span class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Short Title&amp;lt;/span&amp;gt; to a longer article&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vCal&lt;br /&gt;
SUMMARY:Short Title&lt;br /&gt;
DESCRIPTION:Short Title to a longer article&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples from RFC 2445 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Note: this subsection is worthy of being the start of a new page: [[hcalendar-examples]], similar to [[hcard-examples]] -[http://tantek.com/log/ Tantek]&amp;lt;/del&amp;gt;&lt;br /&gt;
* These examples are now all available on [[hcalendar-examples]] -[[User:RyanKing]]&lt;br /&gt;
&lt;br /&gt;
With the abbr's title attribute being used rather than the node value, the actual data could vary and still represent the same vcalendar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
PRODID:-//hacksw/handcal//NONSGML v1.0//EN&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:19970714T170000Z&lt;br /&gt;
DTEND:19970715T035959Z&lt;br /&gt;
SUMMARY:Bastille Day Party&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;19970714T170000Z&amp;quot;&amp;gt;July 14th&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;19970715T035959Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Bastille Day Party&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== UID handling ===&lt;br /&gt;
&lt;br /&gt;
The UID in iCal is represented in HTML as the id attribute in these examples. Any valid id in HTML is a valid UID in iCal, but not the contrapositive, a valid UID is NOT a valid HTML id. HTML ids can only start with a letter, not a number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:19970901T130000Z-123401@host.com&lt;br /&gt;
DTSTAMP:19970901T1300Z&lt;br /&gt;
DTSTART:19970903T163000Z&lt;br /&gt;
DTEND:19970903T190000Z&lt;br /&gt;
SUMMARY:Annual Employee Review&lt;br /&gt;
CLASS:PRIVATE&lt;br /&gt;
CATEGORIES:BUSINESS,HUMAN RESOURCES&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot; id=&amp;quot;19970901T130000Z-123402@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstamp&amp;quot; class=&amp;quot;19970901T1300Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstart&amp;quot; class=&amp;quot;19970903T163000Z&amp;quot;&amp;gt;September 3rd, 4:30pm&amp;lt;/abbr&amp;gt;-&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtend&amp;quot; class=&amp;quot;19970903T190000Z&amp;quot;&amp;gt;7:00pm&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Annual Employee Review&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;class&amp;quot;&amp;gt;private&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;BUSINESS&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;HUMAN RESOURCES&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:19970901T130000Z-123402@host.com&lt;br /&gt;
DTSTAMP:19970901T1300Z&lt;br /&gt;
DTSTART:19970401T163000Z&lt;br /&gt;
DTEND:19970402T010000Z&lt;br /&gt;
SUMMARY:Laurel is in sensitivity awareness class.&lt;br /&gt;
CLASS:PUBLIC&lt;br /&gt;
CATEGORIES:BUSINESS,HUMAN RESOURCES&lt;br /&gt;
TRANSP:TRANSPARENT&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot; id=&amp;quot;19970901T130000Z-123402@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstamp&amp;quot; class=&amp;quot;19970901T1300Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstart&amp;quot; class=&amp;quot;19970401T163000Z&amp;quot;&amp;gt;April 1st 4:30pm&amp;lt;/abbr&amp;gt;-&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtend&amp;quot; class=&amp;quot;19970402T010000Z&amp;quot;&amp;gt;1:00am&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Laurel is in sensitivity awareness class.&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;class&amp;quot;&amp;gt;PUBLIC&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;BUSINESS&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;HUMAN RESOURCES&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;transp&amp;quot;&amp;gt;Transparent&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RRULE handling ===&lt;br /&gt;
&lt;br /&gt;
The way RRULE is encoded should be discussed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:19970901T130000Z-123403@host.com&lt;br /&gt;
DTSTAMP:19970901T1300Z&lt;br /&gt;
DTSTART:19971102&lt;br /&gt;
SUMMARY:Our Blissful Anniversary&lt;br /&gt;
CLASS:CONFIDENTIAL&lt;br /&gt;
CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION&lt;br /&gt;
RRULE:FREQ=YEARLY&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot; id=&amp;quot;19970901T130000Z-123403@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstart&amp;quot; class=&amp;quot;19970901T1300Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtend&amp;quot; class=&amp;quot;19971102&amp;quot;&amp;gt;November 2nd&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Our Blissful Anniversary&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;class&amp;quot;&amp;gt;CONFIDENTIAL&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;ANNIVERSARY&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;PERSONAL&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;SPECIAL OCCASION&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;rrule&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;freq&amp;quot;&amp;gt;YEARLY&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples from real world event sites ==&lt;br /&gt;
&lt;br /&gt;
=== W3C Meetings ===&lt;br /&gt;
&lt;br /&gt;
I just got email announcing the dates of another W3C meeting.  I don't think it's marked up with hCalendar. I could mark it up myself, like I did for [http://www.w3.org/2005/12/allgroupoverview.html the TP day/week schedule], but it might not stick. Somehow I got [http://www.w3.org/2000/08/w3c-synd/ our syndicated news markup] (precursor to [[hAtom]]) to stick, i.e. to become part of the norm in the W3C comm team. I wonder if I could pull that off for calendars.&lt;br /&gt;
&lt;br /&gt;
My first thought is authoring tools, but I don't think I can wait that long.&lt;br /&gt;
Next thought is instant-feedback checking tools...&lt;br /&gt;
X2V is really handy, but can't be used for confidential pages (and many/most calendars I use are not public).&lt;br /&gt;
So.. how about some in-browser javascript &amp;quot;yes, you got it right!&amp;quot; or &amp;quot;hmm... that looks like a date; is there an event you didn't mark up?&amp;quot; feedback? I think I saw something like that in hCalendar implementations.&lt;br /&gt;
&lt;br /&gt;
[[User:DanC|DanC]] 09:00, 3 Feb 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
=== Laughing Squid ===&lt;br /&gt;
&lt;br /&gt;
Laughing Squid had the following [http://laughingsquid.com/squidlist/calendar/9584/2005/4/7 multiple occurence event example]:&lt;br /&gt;
&lt;br /&gt;
 Thu, Apr 7 : Tu/Wed: 12-4pm Th/Fr/Sat 12-7pm Sun 12-6pm &lt;br /&gt;
&lt;br /&gt;
In addition, later on in the description, it says:&lt;br /&gt;
&lt;br /&gt;
 April 7-21, 2005&lt;br /&gt;
&lt;br /&gt;
This is actually quite a non-trivial example, because the event lasts for different durations on different days (4 hours, 7 hours, 6 hours).&lt;br /&gt;
&lt;br /&gt;
Because of the differing durations, the specification requires that *each* instance of this recurring event be explicitly specified.  &lt;br /&gt;
&lt;br /&gt;
But first we markup the starting date and time explicitly:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050407T1200-0700&amp;quot;&amp;gt;Thu, Apr 7&amp;lt;/abbr&amp;gt; : &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then we put in the quite lengthy explicit specification of every other time the event occurs, marked up around the human readable description.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;rdate&amp;quot; title=&amp;quot;20050407T1200-0700/PT7H, 20050408T1200-0700/PT7H, &lt;br /&gt;
20050409T1200-0700/PT7H, 20050410T1200-0700/PT6H, 20050412T1200-0700/PT4H, &lt;br /&gt;
20050413T1200-0700/PT4H, 200504014T1200-0700/PT7H, 20050415T1200-0700/PT7H, &lt;br /&gt;
20050416T1200-0700/PT7H, 20050417T1200-0700/PT6H, 20050419T1200-0700/PT4H, &lt;br /&gt;
20050420T1200-0700/PT4H, 20050421T1200-0700/PT7H&amp;quot; &amp;gt;&lt;br /&gt;
Tu/Wed: 12-4pm Th/Fr/Sat 12-7pm Sun 12-6pm&lt;br /&gt;
&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The RDATE &amp;quot;PERIOD&amp;quot; format is fairly straightforward.  You simply list *each* occurrence of the event, separated by commas.   Each occurrence consists of the ISO8601 datetime of the start of the event, followed by a slash &amp;quot;/&amp;quot;, followed by *either* the duration of the event (e.g. 7 hours = PT7H), *or* a complete ISO8601 datetime of the end of the event.  I chose to use the duration of the event for this example for reason of brevity.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;value=period:&amp;quot; is unnecessary in the rdate value since the parser can infer &amp;quot;value=period:&amp;quot; from the presence of a &amp;quot;/&amp;quot; in the title attribute value.&lt;br /&gt;
&lt;br /&gt;
With simpler repeating events, or perhaps events which only repeat a day or two, their hCalendar markup may be more illustrative of how to do this in a general way.&lt;br /&gt;
&lt;br /&gt;
= CSS Styles =&lt;br /&gt;
Since the hCal properties are added in as CSS styles, you can style them along with any normal CSS style. You are free to style these properties in any fashion you want (see specific notes), but here are a few examples that you can use.&lt;br /&gt;
&lt;br /&gt;
== Preserving White-space ==&lt;br /&gt;
If you are encoding data that requires tabs, returns, or other white-space to be perserved you can use the following CSS property to do so in HTML.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: pre&amp;quot;&amp;gt;&lt;br /&gt;
This white-space&lt;br /&gt;
will be&lt;br /&gt;
preserved&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
white-space can take one of three different parameters; normal, pre, and no-wrap.&lt;br /&gt;
&lt;br /&gt;
== Not recommended ==&lt;br /&gt;
&lt;br /&gt;
The following CSS styling techniques are not recommended:&lt;br /&gt;
&lt;br /&gt;
=== Hiding Data ===&lt;br /&gt;
It is possible to encode additional data without it being displayed in the HTML, by using the CSS style property 'display'.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;Hidden Data&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This data will be found by any transforming application and will be properly encoded into an iCal file.&lt;br /&gt;
&lt;br /&gt;
'''You SHOULD NOT do this because it violates the visibility priniciple.'''&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
How to include hCal encodings into your favourite Blogging Software.&lt;br /&gt;
&lt;br /&gt;
= Open Questions =&lt;br /&gt;
== General Questions ==&lt;br /&gt;
Q: Should Transforming applications purely extract the information and ignore validity? or should there be some checking, or should this be left to the importing application? (i.e. DTSTART;VALUE=DATE: This-Is-Not-a-proper-date)&lt;br /&gt;
&lt;br /&gt;
A: The simpler the better.  Other than checking for perhaps X(HT)ML validity, it should be a simple translator, because presumably the receiving iCalendar application has to have malformed .ics handling already.  Let's avoid duplicating that.  -- [http://tantek.com/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
Q: What about multiple of the instances same vCal entity? (two instances of DTSTART) Is this left up to the importing application, or should the XSLT transformation fail?&lt;br /&gt;
&lt;br /&gt;
A: Same as previous.  Leave it up to the importing application to interpret it per the iCalendar spec, e.g. what does RFC2445 say about two instances of DTSTART?  -- [http://tantek.com/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
From RFC2445:&lt;br /&gt;
4.1.2 Multiple Values&lt;br /&gt;
Some properties defined in the iCalendar object can have multiple values. The general rule for encoding multi-valued items is to simply create a new content line for each value, including the property name. However, it should be noted that some properties support   encoding multiple values in a single property by separating the values with a COMMA character (US-ASCII decimal 44). Individual property definitions should be consulted for determining whether a specific property allows multiple values and in which of these two forms.&lt;br /&gt;
&lt;br /&gt;
Other than that, it does not mention what to do ABOUT invalid data, or which of the multiple entries takes precedence. The only mention of duplicate instances is in the RRULE and EXDATE rules where events exclusions/inclusions overlap. Then duplicate instances are ignore. If it is explicitly written for those items, but NOT for things like DTSTART, then it is difficult to assume duplicate instances are ignored for them as well.&lt;br /&gt;
&lt;br /&gt;
Each of the Components (VEVENT, ...) define which properties can exisit and in what quantity. So multiple DTSTART properties are NOT allowed.&lt;br /&gt;
-- [http://suda.co.uk Brian Suda]&lt;br /&gt;
&lt;br /&gt;
Q: Should vCal entitles be represented in XHTML in classes ONLY on block-level element? or should some like VEVENT be block-level and others be of any? does this impact the semantics at all?&lt;br /&gt;
&lt;br /&gt;
A: I don't think the (X)HTML notion of &amp;quot;block-level&amp;quot; should have any bearing whatsoever on vCal entities.  You should be able to say &amp;lt;span class=&amp;quot;vevent&amp;quot;&amp;gt; or &amp;lt;div class=&amp;quot;vevent&amp;quot;&amp;gt; and either should work.&lt;br /&gt;
&lt;br /&gt;
Q: Should the transforming application add any additional information to the iCalendar representation other than what was encoded in the HTML? (i.e. UID, the unique identifier might not be present in the HTML code, but could be generated by the transforming application and added to the iCal file. Should this be allowed? or should the transforming app ONLY be allowed to add X-PROPERTY properties?) IF it was not explicitly encoded in the HTML should it be left out? What about default values?&lt;br /&gt;
&lt;br /&gt;
Q: If we are looking at the most semantic way to encoding iCalendar data in HTML then several other attributes should be considered besides just 'class'. There are two other candidated, ID and REL. The ID tag MUST be unique within the XHTML file (this could be used for the UID property). The REL attribute can ONLY be applied to 'a' and 'link' tags, but might be helpful. Are namespac&amp;lt;ETH&amp;gt;H �n option? xml:lang, xml:base, are there any others that might be more semantically correct to encode this data?&lt;br /&gt;
&lt;br /&gt;
Q: To help distinguish xparam values from other actual CSS styles, should we assume/mandate that all values in a class attribute within an encoded iCal component class attribute (&amp;lt;x class=&amp;quot;vevent|vtodo|...&amp;quot;&amp;gt;) be considered an xparam?&lt;br /&gt;
&lt;br /&gt;
A: If you are using other CSS styles (e.g. &amp;quot;center&amp;quot;, &amp;quot;bluebox&amp;quot;, &amp;quot;greenline&amp;quot;, etc.) nested within an iCal component, those should be avoided and the styles applied to the list of iCal properties instead/also?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
.center, .vevent { text-align: center; }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: What about cases where the words &amp;quot;yesterday&amp;quot;, &amp;quot;last year&amp;quot;, or &amp;quot;last week&amp;quot; was used? How should we represent this? Is this overkill or not appropriate for hcard ? - [[User:B.K._DeLong]]&lt;br /&gt;
&lt;br /&gt;
A: I took a stab at &amp;quot;yesterday&amp;quot; and just added a dtstart of the previous day. Not sure how to represent a single year or whole week - [[User:B.K._DeLong]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050114&amp;quot;&amp;gt;Yesterday's&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Recurring Events ==&lt;br /&gt;
&lt;br /&gt;
Recurring events are tricky. First, there's the question of whether to follow ''For types with multiple components, use nested elements with class names equivalent to the names of the components'' a la&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;rrule&amp;quot;&amp;gt;every &amp;lt;em class=&amp;quot;interval&amp;quot;&amp;gt;1&amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;em class=&amp;quot;freq&amp;quot;&amp;gt;WEEKLY&amp;lt;/em&amp;gt; on &amp;lt;em class=&amp;quot;byday&amp;quot;&amp;gt;TU&amp;lt;/em&amp;gt;&lt;br /&gt;
until &amp;lt;em class=&amp;quot;until&amp;quot;&amp;gt;2004-11-01&amp;lt;/em&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... or ...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;abbr class=&amp;quot;rrule&amp;quot; title=&amp;quot;FREQ=WEEKLY;COUNT=17;INTERVAL=2;BYDAY=TH&amp;quot;&amp;gt; every other&lt;br /&gt;
Thursday for 34 weeks&amp;lt;/abbr&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... as in [http://microformats.org/discuss/mail/microformats-discuss/2005-August/000516.html Tantek's 1 Aug msg].&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/People/Connolly/ DanC] has been experimenting with representing his PDA calendar in hCalendar:&lt;br /&gt;
&lt;br /&gt;
* in [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent], there's dangerSync.py which uses the XMLRPC interface and spits out RDF data. Then asHCal.xsl converts that to hCalendar&lt;br /&gt;
* then in [http://www.w3.org/2002/12/cal/ the RDF Calendar workspace], there's [http://www.w3.org/2002/12/cal/glean-hcal.xsl glean-hcal.xsl] that turns hCalendar into RDF Calendar, and finally,&lt;br /&gt;
* in [http://www.w3.org/2000/10/swap/ SWAP] there's [http://www.w3.org/2000/10/swap/pim/toIcal.py toIcal.py] that turns RDF Calendar to .ics format.&lt;br /&gt;
&lt;br /&gt;
So I can go from my sidekick to .ics with one Makefile.&lt;br /&gt;
&lt;br /&gt;
[http://dev.w3.org/cvsweb/2001/palmagent/event-test.html events-test.html] is a test file that has all the constructs from my PDA data, in hCalendar. In particular, it uses the nested element representation of recurring events. glean-hcal.xsl would be much less fun to write if it had to parse &amp;lt;nowiki&amp;gt;title=&amp;quot;FREQ=WEEKLY;COUNT=17;INTERVAL=2;BYDAY=TH&amp;quot;&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Then there's the question of &amp;quot;every tuesday afternoon at 2pm Chicago time&amp;quot;. This isn't expressible using [[datetime-design-pattern]]. There are some good reasons for that, but it leaves a rather large and uncomfortable gap in hCalendar.&lt;br /&gt;
&lt;br /&gt;
== Encoding Questions ==&lt;br /&gt;
The way dates are encoded is not always the most user friendly. If i want to encode january 1st, 2005, that is &amp;lt;code&amp;gt;&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;20050101&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;, which is displayed as 20050101. If we are marking-up comma seperated values, like FN, with each sub-element inside their own tag, then the date should be allowed the same.&lt;br /&gt;
&lt;br /&gt;
(However, FN is in the RFC2426 spec and vCard schema, these individual date terms are not, therefore the reasoning in the last sentence is incorrect. -[http://tantek.com/log/ Tantek])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
20050101&lt;br /&gt;
&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Year&amp;quot;&amp;gt;2005&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Month&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Day&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
With this encoding, then YYYYMMDD schema can be rearranged for different cultures, DD-MM-YYYY for UK, MM-DD-YYYY for US, etc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
02-01-2005&lt;br /&gt;
&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Month&amp;quot;&amp;gt;02&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Day&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Year&amp;quot;&amp;gt;2005&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
01-02-2005&lt;br /&gt;
&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Day&amp;quot; title=&amp;quot;first&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Month&amp;quot; title=&amp;quot;Feb&amp;quot;&amp;gt;02&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Year&amp;quot;&amp;gt;2005&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Both of the above encodings are equal, the '-' seperator is ignored by the transforming application. -- [http://suda.co.uk Brian Suda]&lt;br /&gt;
&lt;br /&gt;
Agreed that the way dates are encoded is not always the most user friendly, but there is an easier solution to this, once you think of what is actually going on in the difference between ISO8601 dates, and dates the way humans use them.  Humans typically use an abbrevation or shorthand for a date, like &amp;quot;tomorrow&amp;quot;, or &amp;quot;Tuesday&amp;quot;, or &amp;quot;the 4th&amp;quot;, or perhaps &amp;quot;July 4th&amp;quot;.  Thus it makes sense to permit this in hCalendar, using the &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; tag which provides the ability to markup the human-familiar short form of some data or language, while preserving the long form in the 'title' attribute.&lt;br /&gt;
&lt;br /&gt;
E.g. for the above example of a start date of January 1st, 2005, you could use this markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050101&amp;quot;&amp;gt;January 1st, 2005&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would display as &amp;lt;code&amp;gt;January 1st, 2005&amp;lt;/code&amp;gt; but would provide the respective ISO8601 date in the title attribute. - [http://tantek.com/log Tantek]&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
A HTML head profile needs creation and a home.&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
A simple implementation of transforming/extracting vCal data from an XHTML file is available  for testing. A bookmarklet is also available. The code will be updated as the spec is finalised.&lt;br /&gt;
http://suda.co.uk/projects/X2V/&lt;br /&gt;
&lt;br /&gt;
== Parsing ==&lt;br /&gt;
&lt;br /&gt;
Need to write up an [[hcalendar-parsing]] document, similar to [[hcard-parsing]].&lt;br /&gt;
&lt;br /&gt;
=== Tabular Data ===&lt;br /&gt;
&lt;br /&gt;
Many calendars are posted in tabular form, where the headings on the columns and rows have property values that apply to the cells which themselves are events.&lt;br /&gt;
&lt;br /&gt;
(TODO: document &amp;quot;How To&amp;quot; for marking up tabular event listings)&lt;br /&gt;
&lt;br /&gt;
To enable mark these up with [[hcalendar|hCalendar]], we must parse additional semantic attributes from HTML4.&lt;br /&gt;
&lt;br /&gt;
When parsing, in addition to the special case rules documented in [[hcard-parsing]]:&lt;br /&gt;
&lt;br /&gt;
* If the element is a table data cell &amp;lt;code&amp;gt;&amp;amp;lt;td&amp;amp;gt;&amp;lt;/code&amp;gt;, then:&lt;br /&gt;
*# parse its &amp;quot;headers&amp;quot; attribute as a space separated set of local IDs&lt;br /&gt;
*# find the &amp;lt;code&amp;gt;&amp;amp;lt;td&amp;amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;th&amp;amp;gt;&amp;lt;/code&amp;gt; elements referenced by those IDs (call them header cells) and consider them part of the element being parsed as follows:&lt;br /&gt;
*## Treat the header cells as children of the element, ordered by the order of ids in its &amp;quot;headers&amp;quot; attribute, immediately following the last child node (text or element) or the element.  (The basic idea is that the content from those header cells is used to construct the VEVENT, but secondary to  (AFTER) the content in the data cell itself, so that the data cell can customize/override part of the data in the header, e.g. if the header cell included both start time and location, and the event was being held at a different location).&lt;br /&gt;
*## Parse the &amp;quot;axis&amp;quot; attribute of a header cell as a comma-separated list of categories.  These categories must be used in addition to (and before) any class names on that header cell for determining whether it is a property of the VEVENT.&lt;br /&gt;
&lt;br /&gt;
== Relationships with other microformats ==&lt;br /&gt;
&lt;br /&gt;
In a [http://www.technologyreview.com/articles/04/10/frauenfelder1004.asp Technology Review interview], TBL said &amp;quot;It would have the relationships between the event and the various people chairing it.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
We should have examples of how hCalendar events can indicate such relationships, both in the format and in the presentation.&lt;br /&gt;
E.g.:&lt;br /&gt;
 * Would it just link to URLs for the various people?  (e.g. to their homepages/blogs etc.)&lt;br /&gt;
 * Would it include hCards for the various people?  &lt;br /&gt;
 * Would it link to hCards for various people?&lt;br /&gt;
 * Perhaps allow all the above?&lt;br /&gt;
 &lt;br /&gt;
== Mime-Type ==&lt;br /&gt;
According to RFC2445, the proposed media type value is 'text/calendar'.&lt;br /&gt;
&lt;br /&gt;
A standard vCalendar file has an extension of .vcs and MIME type of text/x-vCalendar. If you use iCalendar, the MIME type is &amp;quot;text/Calendar&amp;quot; and the extension is .ics.&lt;br /&gt;
&lt;br /&gt;
Text/X-vCalendar Content Type&lt;br /&gt;
The vCalendar object can also be passed as a non-standard MIME media type. This would be useful in order to clearly identify the vCalendar object in an electronic mail message body part. A non-standard, vCalendar object should be identified as the MIME type/subtype &amp;quot;text/x-vCalendar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
@@ - i have to do some more investigation, but (i think) vCalendar is a subset of iCalendar, so many of the same encodings will work for both, but this document is dealing with iCalendar RFC2445 representation!&lt;br /&gt;
&lt;br /&gt;
== Button ==&lt;br /&gt;
&lt;br /&gt;
We need to come up with a nice &amp;lt;code&amp;gt;[ hCal | friendly ]&amp;lt;/code&amp;gt; button to indicate that event info on a page/site is using hCalendar. - [http://tantek.com/log/ Tantek].&lt;br /&gt;
&lt;br /&gt;
Possibilities:&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | friendly ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | aware ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | inside ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ Valid | hCalendar ]&amp;lt;/code&amp;gt; - though that would require writing an hCalendar validator which people could link to.&lt;br /&gt;
* &amp;lt;code&amp;gt;[ &amp;lt;icon&amp;gt; | hCalendar ]&amp;lt;/code&amp;gt; where &amp;lt;icon&amp;gt; could be some generic calendar looking thing, or it could be a PHP generated image with the actual date in the icon, kind of like how the Apple iCal icon updates in the dock automatically.&lt;br /&gt;
&lt;br /&gt;
And then we have to pick colors and all that stuff - [http://tantek.com/log/ Tantek].&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | enabled ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | available ]&amp;lt;/code&amp;gt; - kind of an off-hand reference to being available for meetings, etc.&lt;br /&gt;
&lt;br /&gt;
- [http://meyerweb.com/ Eric]&lt;br /&gt;
&lt;br /&gt;
== Including More of iCalendar ==&lt;br /&gt;
&lt;br /&gt;
=== Free/Busy information ===&lt;br /&gt;
&lt;br /&gt;
See [http://www.ifreebusy.com/cyclical/blog/ Neil Jensen]'s [http://www.ifreebusy.com/cyclical/blog/calendar/3 analysis of how to represent the iCalendar VFREEBUSY object in hCalendar].&lt;br /&gt;
&lt;br /&gt;
In order to show free/busy information, we could either use the existing vevent class (with empty location, summary, etc. properties) or create a new vfreebusy class. We should create a new vfreebusy class because it is consistent with the XHTML design principles, particularly point #4, &amp;quot;Use class names based on names from the original schema...&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In the iCalendar standard, the vfreebusy calendar component frequently has more than one freebusy property, and also may have a number of other properties such as organizer. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 BEGIN:VFREEBUSY &lt;br /&gt;
 ORGANIZER:jsmith@host.com &lt;br /&gt;
 DTSTART:19980313T141711Z &lt;br /&gt;
 DTEND:19980410T141711Z &lt;br /&gt;
 FREEBUSY:19980314T233000Z/19980315T003000Z &lt;br /&gt;
 FREEBUSY:19980316T153000Z/19980316T163000Z &lt;br /&gt;
 FREEBUSY:19980318T030000Z/19980318T040000Z &lt;br /&gt;
 URL:http://www.host.com/calendar/busytime/jsmith.ifb &lt;br /&gt;
 END:VFREEBUSY&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, our hCalendar representation should include separate elements for the vfreebusy calendar component (defined once) and the freebusy property (possibly defined many times):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;vfreebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050721T1000-0800&amp;quot;&amp;gt; &lt;br /&gt;
 July 21, 2005 - 10:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050721T1100-0800&amp;quot;&amp;gt; &lt;br /&gt;
 11:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050722T1000-0800&amp;quot;&amp;gt; &lt;br /&gt;
 July 22, 2005 - 10:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050722T1100-0800&amp;quot;&amp;gt; &lt;br /&gt;
 11:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to RFC2445, &amp;quot;When publishing a &amp;quot;VFREEBUSY&amp;quot; calendar component, the property is used to specify the calendar that the published busy time came from.&amp;quot; The property type is CAL-ADDRESS, and can include &amp;quot;non-standard, language, common name and directory entry reference&amp;quot; property parameters. CAL-ADDRESS is &amp;quot;...a URI as defined by [RFC 1738] or any other IANA registered form...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
From what I've seen, Microsoft Outlook typically populates this property with the email address of the calendar owner, which initially made me think of using hCard to specify the organizer. However, given that the property refers to the calendar and not necessarily the person who owns or has published it, I think we should use a new organizer element, as shown below: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 BEGIN:VFREEBUSY &lt;br /&gt;
 ORGANIZER:jsmith@host.com &lt;br /&gt;
 FREEBUSY:20050314T133000Z/20050314T163000Z &lt;br /&gt;
 END:VFREEBUSY&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
becomes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;vfreebusy&amp;quot;&amp;gt; &lt;br /&gt;
 organizer: &amp;lt;span class=&amp;quot;organizer&amp;quot;&amp;gt;jsmith@host.com&amp;lt;/span&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050314T133000Z&amp;quot;&amp;gt; &lt;br /&gt;
 March 14, 2005 - 13:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050314T163000Z&amp;quot;&amp;gt; &lt;br /&gt;
 16:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hmmm, this looks a little funny when the organizer is so obviously an email address, but at least it is semantically correct. The other problem that I can now see occurring is when the organizer property has parameters, for example (from the iCalendar spec):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 ORGANIZER;CN=JohnSmith;DIR=&amp;quot;ldap://host.com:6666/o=3DDC%20Associ &lt;br /&gt;
  ates,c=3DUS??(cn=3DJohn%20Smith)&amp;quot;:MAILTO:jsmith@host1.com&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perhaps it's best to use the same approach described in &amp;quot;Human vs. ISO8601 dates problem solved&amp;quot;; use the abbr element like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;vfreebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 organizer: &amp;lt;abbr class=&amp;quot;organizer&amp;quot; title=&amp;quot;CN=JohnSmith;DIR=ldap://host.com:6666/o=3DDC%20Associ &lt;br /&gt;
 ates,c=3DUS??(cn=3DJohn%20Smith):MAILTO:jsmith@host1.com&amp;quot;&amp;gt;jsmith@host1.com&amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050314T133000Z&amp;quot;&amp;gt; &lt;br /&gt;
 March 14, 2005 - 13:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050314T163000Z&amp;quot;&amp;gt; &lt;br /&gt;
 16:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== To-Do information ===&lt;br /&gt;
&lt;br /&gt;
The [http://www.policyawareweb.org/2005/ftf2/paw-mtg Policy Aware Web (PAW) Project Meeting - 23 Aug 2005] uses class=&amp;quot;vtodo&amp;quot; to capture action items.  Clearly recording action items from a meeting and publishing them as minutes is a good practical example use of the VTODO object on the web. &lt;br /&gt;
&lt;br /&gt;
What's the scenario for usage though?&lt;br /&gt;
&lt;br /&gt;
What kind of indexer/aggregator application would find these VTODO items and what would it do with them?  &lt;br /&gt;
&lt;br /&gt;
Perhaps with some way of figuring out who the to-do item is assigned to (&amp;quot;ATTENDEE&amp;quot;), who assigned it (&amp;quot;DELEGATED-FROM&amp;quot;), and a whitelisting of who, perhaps the &amp;quot;ORGANIZER&amp;quot; property,  (and their domains/URLs) that a user would accept assignments from, a user could aggregate to-do items assigned from other folks.  Then question remains how to update the status (&amp;quot;STATUS&amp;quot;) (RFC 2445 4.8.1.11 Status) on that to-do item when it is (a) completed (&amp;quot;COMPLETED&amp;quot;), (b) abandoned/cut/rejected (&amp;quot;CANCELLED&amp;quot;), (c) some progress is made (&amp;quot;IN-PROCESS&amp;quot;) etc.  There certainly seems to be sufficient expressiveness in VTODO and its properties to do a decentralized to-do list / task distribution system.  Could be very interesting for helping open source projects and other distributed teams do project management using the Web.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
== Normative References ==&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2445.txt RFC 2445]&lt;br /&gt;
* [http://gmpg.org/xmdp/ XMDP]&lt;br /&gt;
&lt;br /&gt;
== Informative References ==&lt;br /&gt;
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars HTMLForCalendars (FOO camp)] - presented just a few days before this, hopefully these efforts can be combine&lt;br /&gt;
&lt;br /&gt;
* [http://www.imc.org/pdi/ Personal Data Interchange (PDI) at the Internet Mail Consortium]&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#d27t1049 Markup language design notes]&lt;br /&gt;
* [http://tantek.com/log/2002/12.html#L20021216t2238 A Touch of Class]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2446.txt iTIP RFC2446]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2447.txt iMIP RFC2447]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3283.txt Guide to Internet Calendaring RFC3283]&lt;br /&gt;
&lt;br /&gt;
== Other Implementations/Ideas ==&lt;br /&gt;
* [http://www.nehmer.net/~bergie/openpsa-calendar-horizontal.jpg OpenPSA calendar screenshot]&lt;br /&gt;
* [http://www.w3.org/2002/12/cal/ RDF Calendar Workspace] - some older work done with RDF, not really applicable to the simple XHTML case, but perhaps worthy of analysis for when and why they may have diverged from established iCalendar schemas.&lt;br /&gt;
* [http://planb.nicecupoftea.org/archives/000072.html 2003 RDF icalendar work, xCal references]&lt;br /&gt;
&lt;br /&gt;
== Blogs About Calendaring ==&lt;br /&gt;
* http://staff.washington.edu/oren/weblog2/&lt;br /&gt;
&lt;br /&gt;
=Use in tables=&lt;br /&gt;
I currently have [http://www.westmidlandbirdclub.com/birmingham/field.htm events in table layout], using the format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;tr class=&amp;quot;X&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Sunday 12 February 2006&amp;lt;/th&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;a href=&amp;quot;http://www.rspb.org.uk/reserves/guide/c/conwy/index.asp&amp;quot;&amp;gt;RSPB Conwy&amp;lt;/a&amp;gt;*/ Llanfairfechan&amp;lt;/strong&amp;gt;.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;A sea watch with potential for divers and sea ducks and a visit to a prime seaside reserve.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How would I include the code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://www.westmidlandbirdclub.com/birmingham/field.htm&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20060206&amp;quot;&amp;gt;February 6 2006&amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20060207&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Birmingham Branch Field Trip&amp;lt;/span&amp;gt; - at&lt;br /&gt;
 &amp;lt;span class=&amp;quot;location&amp;quot;&amp;gt;RSPB Conwy/ Llanfairfechan.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;A sea watch with potential for divers and sea ducks and a visit to a prime seaside reserve.&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
in that? It seems to me that to loose the semantic table mark (column and row headers, for example) up would be a bad thing; not least for people whose lints don't understand hCal. Is the use of a non-breaking space in the dtend OK?[[User:PigsOTWing|PigsOTWing]] 12:12, 6 Feb 2006 (PST)&lt;/div&gt;</summary>
		<author><name>PigsOTWing</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=hcalendar-brainstorming&amp;diff=4811</id>
		<title>hcalendar-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=hcalendar-brainstorming&amp;diff=4811"/>
		<updated>2006-02-06T20:12:38Z</updated>

		<summary type="html">&lt;p&gt;PigsOTWing: Use in tables (my first edit!)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hCalendar Brainstorming =&lt;br /&gt;
__TOC__&lt;br /&gt;
== Authors ==&lt;br /&gt;
* [http://suda.co.uk/ Brian Suda]&lt;br /&gt;
* [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
= BEST-PRACTICES =&lt;br /&gt;
Along with the four base properties, you can define addtional properties through the use of the x-prop property. For best-practices for hCal to iCal transformers, it would be helpful if the transforming application added the following x-* properties:&lt;br /&gt;
&lt;br /&gt;
* X-FROM-URL. The value of this property would be the URL of the page where the iCal representation was generated.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
X-FROM-URL:http://example.com/page-containing-hCal-encoding.html&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* X-WR-CALNAME.  iCal.app recognizes this property as the &amp;quot;calendar name&amp;quot; for subscribed calendars.  Thus transforming applications *should* take the &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;amp;gt;...&amp;amp;lt;/title&amp;amp;gt;&amp;lt;/code&amp;gt; from the page being parsed, optionally append &amp;quot; events&amp;quot;, and use that value for the X-WR-CALNAME property in the resulting feed. E.g. if the page had &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;amp;gt;Example Home Page&amp;amp;lt;/title&amp;amp;gt;&amp;lt;/code&amp;gt; then the .ics output should have as part of the vcalendar object:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
X-WR-CALNAME:Example Home Page&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
This is a growing example case written in iCal format and transformed to the corresponding XHTML. These conversions are open to community input.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
CATEGORIES:foo,bar&lt;br /&gt;
SUMMARY: Short Title&lt;br /&gt;
DESCRIPTION: Full Description&lt;br /&gt;
DTSTART;VALUE=DATE:20040101&lt;br /&gt;
DTEND:20040101T235959Z&lt;br /&gt;
RRULE:FREQ=YEARLY;UNTIL=20080102T000000Z&lt;br /&gt;
URL;WORK:http://example.com&lt;br /&gt;
ATTENDEE;ROLE=CHAIR:MAILTO:JohnDoe@example.com&lt;br /&gt;
GEO:37.386013;-122.082932&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- @@ how to deal with Whitespace issues in lists 'foo, bar' --&amp;gt;&lt;br /&gt;
Categories:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;foo&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bar&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://example.com&amp;quot; class=&amp;quot;summary&amp;quot;&amp;gt;Short Title&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;description&amp;quot;&amp;gt;description&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;geo&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Lat&amp;quot;&amp;gt;37.386013&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;Lon&amp;quot;&amp;gt;-122.082932&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- This currently does not take into consideration the VALUE=DATE --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The transforming application could attempt to detect the proper format and add params as needed? --&amp;gt;&lt;br /&gt;
Date: &amp;lt;em class=&amp;quot;dtstart&amp;quot;&amp;gt;20040101&amp;lt;/em&amp;gt; - &amp;lt;em class=&amp;quot;dtend&amp;quot;&amp;gt;20040101T235959Z&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- any thoughts to better encode attendee --&amp;gt;&lt;br /&gt;
&amp;lt;!-- the ROLE must be of a known type, but one of type is x-name (user-specified) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- therefore there is no solid way to know &amp;quot;chair&amp;quot; refers to a ROLE parameter --&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;attendee chair&amp;quot; href=&amp;quot;mailto:JohnDoe@example.com&amp;quot;&amp;gt;John Doe&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- this messy, but works. Is there a better way? --&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;rrule&amp;quot;&amp;gt;The event will be held &amp;lt;span class=&amp;quot;freq&amp;quot;&amp;gt;yearly&amp;lt;/span&amp;gt; until &amp;lt;span class=&amp;quot;&amp;quot;until&amp;quot;&amp;gt;20080102T000000Z&amp;lt;/span&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
@@-need to look at nested tag examples&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
XHTML&lt;br /&gt;
&amp;lt;span class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Short Title&amp;lt;/span&amp;gt; to a longer article&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vCal&lt;br /&gt;
SUMMARY:Short Title&lt;br /&gt;
DESCRIPTION:Short Title to a longer article&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples from RFC 2445 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Note: this subsection is worthy of being the start of a new page: [[hcalendar-examples]], similar to [[hcard-examples]] -[http://tantek.com/log/ Tantek]&amp;lt;/del&amp;gt;&lt;br /&gt;
* These examples are now all available on [[hcalendar-examples]] -[[User:RyanKing]]&lt;br /&gt;
&lt;br /&gt;
With the abbr's title attribute being used rather than the node value, the actual data could vary and still represent the same vcalendar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
PRODID:-//hacksw/handcal//NONSGML v1.0//EN&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:19970714T170000Z&lt;br /&gt;
DTEND:19970715T035959Z&lt;br /&gt;
SUMMARY:Bastille Day Party&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;19970714T170000Z&amp;quot;&amp;gt;July 14th&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;19970715T035959Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Bastille Day Party&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== UID handling ===&lt;br /&gt;
&lt;br /&gt;
The UID in iCal is represented in HTML as the id attribute in these examples. Any valid id in HTML is a valid UID in iCal, but not the contrapositive, a valid UID is NOT a valid HTML id. HTML ids can only start with a letter, not a number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:19970901T130000Z-123401@host.com&lt;br /&gt;
DTSTAMP:19970901T1300Z&lt;br /&gt;
DTSTART:19970903T163000Z&lt;br /&gt;
DTEND:19970903T190000Z&lt;br /&gt;
SUMMARY:Annual Employee Review&lt;br /&gt;
CLASS:PRIVATE&lt;br /&gt;
CATEGORIES:BUSINESS,HUMAN RESOURCES&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot; id=&amp;quot;19970901T130000Z-123402@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstamp&amp;quot; class=&amp;quot;19970901T1300Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstart&amp;quot; class=&amp;quot;19970903T163000Z&amp;quot;&amp;gt;September 3rd, 4:30pm&amp;lt;/abbr&amp;gt;-&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtend&amp;quot; class=&amp;quot;19970903T190000Z&amp;quot;&amp;gt;7:00pm&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Annual Employee Review&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;class&amp;quot;&amp;gt;private&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;BUSINESS&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;HUMAN RESOURCES&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:19970901T130000Z-123402@host.com&lt;br /&gt;
DTSTAMP:19970901T1300Z&lt;br /&gt;
DTSTART:19970401T163000Z&lt;br /&gt;
DTEND:19970402T010000Z&lt;br /&gt;
SUMMARY:Laurel is in sensitivity awareness class.&lt;br /&gt;
CLASS:PUBLIC&lt;br /&gt;
CATEGORIES:BUSINESS,HUMAN RESOURCES&lt;br /&gt;
TRANSP:TRANSPARENT&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot; id=&amp;quot;19970901T130000Z-123402@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstamp&amp;quot; class=&amp;quot;19970901T1300Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstart&amp;quot; class=&amp;quot;19970401T163000Z&amp;quot;&amp;gt;April 1st 4:30pm&amp;lt;/abbr&amp;gt;-&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtend&amp;quot; class=&amp;quot;19970402T010000Z&amp;quot;&amp;gt;1:00am&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Laurel is in sensitivity awareness class.&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;class&amp;quot;&amp;gt;PUBLIC&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;BUSINESS&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;HUMAN RESOURCES&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;transp&amp;quot;&amp;gt;Transparent&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RRULE handling ===&lt;br /&gt;
&lt;br /&gt;
The way RRULE is encoded should be discussed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:19970901T130000Z-123403@host.com&lt;br /&gt;
DTSTAMP:19970901T1300Z&lt;br /&gt;
DTSTART:19971102&lt;br /&gt;
SUMMARY:Our Blissful Anniversary&lt;br /&gt;
CLASS:CONFIDENTIAL&lt;br /&gt;
CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION&lt;br /&gt;
RRULE:FREQ=YEARLY&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;vevent&amp;quot; id=&amp;quot;19970901T130000Z-123403@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtstart&amp;quot; class=&amp;quot;19970901T1300Z&amp;quot;&amp;gt;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;abbr title=&amp;quot;dtend&amp;quot; class=&amp;quot;19971102&amp;quot;&amp;gt;November 2nd&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Our Blissful Anniversary&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;class&amp;quot;&amp;gt;CONFIDENTIAL&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;ANNIVERSARY&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;PERSONAL&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;SPECIAL OCCASION&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;rrule&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;freq&amp;quot;&amp;gt;YEARLY&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples from real world event sites ==&lt;br /&gt;
&lt;br /&gt;
=== W3C Meetings ===&lt;br /&gt;
&lt;br /&gt;
I just got email announcing the dates of another W3C meeting.  I don't think it's marked up with hCalendar. I could mark it up myself, like I did for [http://www.w3.org/2005/12/allgroupoverview.html the TP day/week schedule], but it might not stick. Somehow I got [http://www.w3.org/2000/08/w3c-synd/ our syndicated news markup] (precursor to [[hAtom]]) to stick, i.e. to become part of the norm in the W3C comm team. I wonder if I could pull that off for calendars.&lt;br /&gt;
&lt;br /&gt;
My first thought is authoring tools, but I don't think I can wait that long.&lt;br /&gt;
Next thought is instant-feedback checking tools...&lt;br /&gt;
X2V is really handy, but can't be used for confidential pages (and many/most calendars I use are not public).&lt;br /&gt;
So.. how about some in-browser javascript &amp;quot;yes, you got it right!&amp;quot; or &amp;quot;hmm... that looks like a date; is there an event you didn't mark up?&amp;quot; feedback? I think I saw something like that in hCalendar implementations.&lt;br /&gt;
&lt;br /&gt;
[[User:DanC|DanC]] 09:00, 3 Feb 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
=== Laughing Squid ===&lt;br /&gt;
&lt;br /&gt;
Laughing Squid had the following [http://laughingsquid.com/squidlist/calendar/9584/2005/4/7 multiple occurence event example]:&lt;br /&gt;
&lt;br /&gt;
 Thu, Apr 7 : Tu/Wed: 12-4pm Th/Fr/Sat 12-7pm Sun 12-6pm &lt;br /&gt;
&lt;br /&gt;
In addition, later on in the description, it says:&lt;br /&gt;
&lt;br /&gt;
 April 7-21, 2005&lt;br /&gt;
&lt;br /&gt;
This is actually quite a non-trivial example, because the event lasts for different durations on different days (4 hours, 7 hours, 6 hours).&lt;br /&gt;
&lt;br /&gt;
Because of the differing durations, the specification requires that *each* instance of this recurring event be explicitly specified.  &lt;br /&gt;
&lt;br /&gt;
But first we markup the starting date and time explicitly:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050407T1200-0700&amp;quot;&amp;gt;Thu, Apr 7&amp;lt;/abbr&amp;gt; : &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then we put in the quite lengthy explicit specification of every other time the event occurs, marked up around the human readable description.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;rdate&amp;quot; title=&amp;quot;20050407T1200-0700/PT7H, 20050408T1200-0700/PT7H, &lt;br /&gt;
20050409T1200-0700/PT7H, 20050410T1200-0700/PT6H, 20050412T1200-0700/PT4H, &lt;br /&gt;
20050413T1200-0700/PT4H, 200504014T1200-0700/PT7H, 20050415T1200-0700/PT7H, &lt;br /&gt;
20050416T1200-0700/PT7H, 20050417T1200-0700/PT6H, 20050419T1200-0700/PT4H, &lt;br /&gt;
20050420T1200-0700/PT4H, 20050421T1200-0700/PT7H&amp;quot; &amp;gt;&lt;br /&gt;
Tu/Wed: 12-4pm Th/Fr/Sat 12-7pm Sun 12-6pm&lt;br /&gt;
&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The RDATE &amp;quot;PERIOD&amp;quot; format is fairly straightforward.  You simply list *each* occurrence of the event, separated by commas.   Each occurrence consists of the ISO8601 datetime of the start of the event, followed by a slash &amp;quot;/&amp;quot;, followed by *either* the duration of the event (e.g. 7 hours = PT7H), *or* a complete ISO8601 datetime of the end of the event.  I chose to use the duration of the event for this example for reason of brevity.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;value=period:&amp;quot; is unnecessary in the rdate value since the parser can infer &amp;quot;value=period:&amp;quot; from the presence of a &amp;quot;/&amp;quot; in the title attribute value.&lt;br /&gt;
&lt;br /&gt;
With simpler repeating events, or perhaps events which only repeat a day or two, their hCalendar markup may be more illustrative of how to do this in a general way.&lt;br /&gt;
&lt;br /&gt;
= CSS Styles =&lt;br /&gt;
Since the hCal properties are added in as CSS styles, you can style them along with any normal CSS style. You are free to style these properties in any fashion you want (see specific notes), but here are a few examples that you can use.&lt;br /&gt;
&lt;br /&gt;
== Preserving White-space ==&lt;br /&gt;
If you are encoding data that requires tabs, returns, or other white-space to be perserved you can use the following CSS property to do so in HTML.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: pre&amp;quot;&amp;gt;&lt;br /&gt;
This white-space&lt;br /&gt;
will be&lt;br /&gt;
preserved&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
white-space can take one of three different parameters; normal, pre, and no-wrap.&lt;br /&gt;
&lt;br /&gt;
== Not recommended ==&lt;br /&gt;
&lt;br /&gt;
The following CSS styling techniques are not recommended:&lt;br /&gt;
&lt;br /&gt;
=== Hiding Data ===&lt;br /&gt;
It is possible to encode additional data without it being displayed in the HTML, by using the CSS style property 'display'.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;Hidden Data&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This data will be found by any transforming application and will be properly encoded into an iCal file.&lt;br /&gt;
&lt;br /&gt;
'''You SHOULD NOT do this because it violates the visibility priniciple.'''&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
How to include hCal encodings into your favourite Blogging Software.&lt;br /&gt;
&lt;br /&gt;
= Open Questions =&lt;br /&gt;
== General Questions ==&lt;br /&gt;
Q: Should Transforming applications purely extract the information and ignore validity? or should there be some checking, or should this be left to the importing application? (i.e. DTSTART;VALUE=DATE: This-Is-Not-a-proper-date)&lt;br /&gt;
&lt;br /&gt;
A: The simpler the better.  Other than checking for perhaps X(HT)ML validity, it should be a simple translator, because presumably the receiving iCalendar application has to have malformed .ics handling already.  Let's avoid duplicating that.  -- [http://tantek.com/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
Q: What about multiple of the instances same vCal entity? (two instances of DTSTART) Is this left up to the importing application, or should the XSLT transformation fail?&lt;br /&gt;
&lt;br /&gt;
A: Same as previous.  Leave it up to the importing application to interpret it per the iCalendar spec, e.g. what does RFC2445 say about two instances of DTSTART?  -- [http://tantek.com/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
From RFC2445:&lt;br /&gt;
4.1.2 Multiple Values&lt;br /&gt;
Some properties defined in the iCalendar object can have multiple values. The general rule for encoding multi-valued items is to simply create a new content line for each value, including the property name. However, it should be noted that some properties support   encoding multiple values in a single property by separating the values with a COMMA character (US-ASCII decimal 44). Individual property definitions should be consulted for determining whether a specific property allows multiple values and in which of these two forms.&lt;br /&gt;
&lt;br /&gt;
Other than that, it does not mention what to do ABOUT invalid data, or which of the multiple entries takes precedence. The only mention of duplicate instances is in the RRULE and EXDATE rules where events exclusions/inclusions overlap. Then duplicate instances are ignore. If it is explicitly written for those items, but NOT for things like DTSTART, then it is difficult to assume duplicate instances are ignored for them as well.&lt;br /&gt;
&lt;br /&gt;
Each of the Components (VEVENT, ...) define which properties can exisit and in what quantity. So multiple DTSTART properties are NOT allowed.&lt;br /&gt;
-- [http://suda.co.uk Brian Suda]&lt;br /&gt;
&lt;br /&gt;
Q: Should vCal entitles be represented in XHTML in classes ONLY on block-level element? or should some like VEVENT be block-level and others be of any? does this impact the semantics at all?&lt;br /&gt;
&lt;br /&gt;
A: I don't think the (X)HTML notion of &amp;quot;block-level&amp;quot; should have any bearing whatsoever on vCal entities.  You should be able to say &amp;lt;span class=&amp;quot;vevent&amp;quot;&amp;gt; or &amp;lt;div class=&amp;quot;vevent&amp;quot;&amp;gt; and either should work.&lt;br /&gt;
&lt;br /&gt;
Q: Should the transforming application add any additional information to the iCalendar representation other than what was encoded in the HTML? (i.e. UID, the unique identifier might not be present in the HTML code, but could be generated by the transforming application and added to the iCal file. Should this be allowed? or should the transforming app ONLY be allowed to add X-PROPERTY properties?) IF it was not explicitly encoded in the HTML should it be left out? What about default values?&lt;br /&gt;
&lt;br /&gt;
Q: If we are looking at the most semantic way to encoding iCalendar data in HTML then several other attributes should be considered besides just 'class'. There are two other candidated, ID and REL. The ID tag MUST be unique within the XHTML file (this could be used for the UID property). The REL attribute can ONLY be applied to 'a' and 'link' tags, but might be helpful. Are namespac&amp;lt;ETH&amp;gt;H �n option? xml:lang, xml:base, are there any others that might be more semantically correct to encode this data?&lt;br /&gt;
&lt;br /&gt;
Q: To help distinguish xparam values from other actual CSS styles, should we assume/mandate that all values in a class attribute within an encoded iCal component class attribute (&amp;lt;x class=&amp;quot;vevent|vtodo|...&amp;quot;&amp;gt;) be considered an xparam?&lt;br /&gt;
&lt;br /&gt;
A: If you are using other CSS styles (e.g. &amp;quot;center&amp;quot;, &amp;quot;bluebox&amp;quot;, &amp;quot;greenline&amp;quot;, etc.) nested within an iCal component, those should be avoided and the styles applied to the list of iCal properties instead/also?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
.center, .vevent { text-align: center; }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: What about cases where the words &amp;quot;yesterday&amp;quot;, &amp;quot;last year&amp;quot;, or &amp;quot;last week&amp;quot; was used? How should we represent this? Is this overkill or not appropriate for hcard ? - [[User:B.K._DeLong]]&lt;br /&gt;
&lt;br /&gt;
A: I took a stab at &amp;quot;yesterday&amp;quot; and just added a dtstart of the previous day. Not sure how to represent a single year or whole week - [[User:B.K._DeLong]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050114&amp;quot;&amp;gt;Yesterday's&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Recurring Events ==&lt;br /&gt;
&lt;br /&gt;
Recurring events are tricky. First, there's the question of whether to follow ''For types with multiple components, use nested elements with class names equivalent to the names of the components'' a la&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;rrule&amp;quot;&amp;gt;every &amp;lt;em class=&amp;quot;interval&amp;quot;&amp;gt;1&amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;em class=&amp;quot;freq&amp;quot;&amp;gt;WEEKLY&amp;lt;/em&amp;gt; on &amp;lt;em class=&amp;quot;byday&amp;quot;&amp;gt;TU&amp;lt;/em&amp;gt;&lt;br /&gt;
until &amp;lt;em class=&amp;quot;until&amp;quot;&amp;gt;2004-11-01&amp;lt;/em&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... or ...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;abbr class=&amp;quot;rrule&amp;quot; title=&amp;quot;FREQ=WEEKLY;COUNT=17;INTERVAL=2;BYDAY=TH&amp;quot;&amp;gt; every other&lt;br /&gt;
Thursday for 34 weeks&amp;lt;/abbr&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... as in [http://microformats.org/discuss/mail/microformats-discuss/2005-August/000516.html Tantek's 1 Aug msg].&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/People/Connolly/ DanC] has been experimenting with representing his PDA calendar in hCalendar:&lt;br /&gt;
&lt;br /&gt;
* in [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent], there's dangerSync.py which uses the XMLRPC interface and spits out RDF data. Then asHCal.xsl converts that to hCalendar&lt;br /&gt;
* then in [http://www.w3.org/2002/12/cal/ the RDF Calendar workspace], there's [http://www.w3.org/2002/12/cal/glean-hcal.xsl glean-hcal.xsl] that turns hCalendar into RDF Calendar, and finally,&lt;br /&gt;
* in [http://www.w3.org/2000/10/swap/ SWAP] there's [http://www.w3.org/2000/10/swap/pim/toIcal.py toIcal.py] that turns RDF Calendar to .ics format.&lt;br /&gt;
&lt;br /&gt;
So I can go from my sidekick to .ics with one Makefile.&lt;br /&gt;
&lt;br /&gt;
[http://dev.w3.org/cvsweb/2001/palmagent/event-test.html events-test.html] is a test file that has all the constructs from my PDA data, in hCalendar. In particular, it uses the nested element representation of recurring events. glean-hcal.xsl would be much less fun to write if it had to parse &amp;lt;nowiki&amp;gt;title=&amp;quot;FREQ=WEEKLY;COUNT=17;INTERVAL=2;BYDAY=TH&amp;quot;&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Then there's the question of &amp;quot;every tuesday afternoon at 2pm Chicago time&amp;quot;. This isn't expressible using [[datetime-design-pattern]]. There are some good reasons for that, but it leaves a rather large and uncomfortable gap in hCalendar.&lt;br /&gt;
&lt;br /&gt;
== Encoding Questions ==&lt;br /&gt;
The way dates are encoded is not always the most user friendly. If i want to encode january 1st, 2005, that is &amp;lt;code&amp;gt;&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;20050101&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;, which is displayed as 20050101. If we are marking-up comma seperated values, like FN, with each sub-element inside their own tag, then the date should be allowed the same.&lt;br /&gt;
&lt;br /&gt;
(However, FN is in the RFC2426 spec and vCard schema, these individual date terms are not, therefore the reasoning in the last sentence is incorrect. -[http://tantek.com/log/ Tantek])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
20050101&lt;br /&gt;
&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Year&amp;quot;&amp;gt;2005&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Month&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Day&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
With this encoding, then YYYYMMDD schema can be rearranged for different cultures, DD-MM-YYYY for UK, MM-DD-YYYY for US, etc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
02-01-2005&lt;br /&gt;
&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Month&amp;quot;&amp;gt;02&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Day&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Year&amp;quot;&amp;gt;2005&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
01-02-2005&lt;br /&gt;
&amp;lt;span class=&amp;quot;dtstart&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Day&amp;quot; title=&amp;quot;first&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Month&amp;quot; title=&amp;quot;Feb&amp;quot;&amp;gt;02&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;Year&amp;quot;&amp;gt;2005&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Both of the above encodings are equal, the '-' seperator is ignored by the transforming application. -- [http://suda.co.uk Brian Suda]&lt;br /&gt;
&lt;br /&gt;
Agreed that the way dates are encoded is not always the most user friendly, but there is an easier solution to this, once you think of what is actually going on in the difference between ISO8601 dates, and dates the way humans use them.  Humans typically use an abbrevation or shorthand for a date, like &amp;quot;tomorrow&amp;quot;, or &amp;quot;Tuesday&amp;quot;, or &amp;quot;the 4th&amp;quot;, or perhaps &amp;quot;July 4th&amp;quot;.  Thus it makes sense to permit this in hCalendar, using the &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; tag which provides the ability to markup the human-familiar short form of some data or language, while preserving the long form in the 'title' attribute.&lt;br /&gt;
&lt;br /&gt;
E.g. for the above example of a start date of January 1st, 2005, you could use this markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050101&amp;quot;&amp;gt;January 1st, 2005&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would display as &amp;lt;code&amp;gt;January 1st, 2005&amp;lt;/code&amp;gt; but would provide the respective ISO8601 date in the title attribute. - [http://tantek.com/log Tantek]&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
A HTML head profile needs creation and a home.&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
A simple implementation of transforming/extracting vCal data from an XHTML file is available  for testing. A bookmarklet is also available. The code will be updated as the spec is finalised.&lt;br /&gt;
http://suda.co.uk/projects/X2V/&lt;br /&gt;
&lt;br /&gt;
== Parsing ==&lt;br /&gt;
&lt;br /&gt;
Need to write up an [[hcalendar-parsing]] document, similar to [[hcard-parsing]].&lt;br /&gt;
&lt;br /&gt;
=== Tabular Data ===&lt;br /&gt;
&lt;br /&gt;
Many calendars are posted in tabular form, where the headings on the columns and rows have property values that apply to the cells which themselves are events.&lt;br /&gt;
&lt;br /&gt;
(TODO: document &amp;quot;How To&amp;quot; for marking up tabular event listings)&lt;br /&gt;
&lt;br /&gt;
To enable mark these up with [[hcalendar|hCalendar]], we must parse additional semantic attributes from HTML4.&lt;br /&gt;
&lt;br /&gt;
When parsing, in addition to the special case rules documented in [[hcard-parsing]]:&lt;br /&gt;
&lt;br /&gt;
* If the element is a table data cell &amp;lt;code&amp;gt;&amp;amp;lt;td&amp;amp;gt;&amp;lt;/code&amp;gt;, then:&lt;br /&gt;
*# parse its &amp;quot;headers&amp;quot; attribute as a space separated set of local IDs&lt;br /&gt;
*# find the &amp;lt;code&amp;gt;&amp;amp;lt;td&amp;amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;th&amp;amp;gt;&amp;lt;/code&amp;gt; elements referenced by those IDs (call them header cells) and consider them part of the element being parsed as follows:&lt;br /&gt;
*## Treat the header cells as children of the element, ordered by the order of ids in its &amp;quot;headers&amp;quot; attribute, immediately following the last child node (text or element) or the element.  (The basic idea is that the content from those header cells is used to construct the VEVENT, but secondary to  (AFTER) the content in the data cell itself, so that the data cell can customize/override part of the data in the header, e.g. if the header cell included both start time and location, and the event was being held at a different location).&lt;br /&gt;
*## Parse the &amp;quot;axis&amp;quot; attribute of a header cell as a comma-separated list of categories.  These categories must be used in addition to (and before) any class names on that header cell for determining whether it is a property of the VEVENT.&lt;br /&gt;
&lt;br /&gt;
== Relationships with other microformats ==&lt;br /&gt;
&lt;br /&gt;
In a [http://www.technologyreview.com/articles/04/10/frauenfelder1004.asp Technology Review interview], TBL said &amp;quot;It would have the relationships between the event and the various people chairing it.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
We should have examples of how hCalendar events can indicate such relationships, both in the format and in the presentation.&lt;br /&gt;
E.g.:&lt;br /&gt;
 * Would it just link to URLs for the various people?  (e.g. to their homepages/blogs etc.)&lt;br /&gt;
 * Would it include hCards for the various people?  &lt;br /&gt;
 * Would it link to hCards for various people?&lt;br /&gt;
 * Perhaps allow all the above?&lt;br /&gt;
 &lt;br /&gt;
== Mime-Type ==&lt;br /&gt;
According to RFC2445, the proposed media type value is 'text/calendar'.&lt;br /&gt;
&lt;br /&gt;
A standard vCalendar file has an extension of .vcs and MIME type of text/x-vCalendar. If you use iCalendar, the MIME type is &amp;quot;text/Calendar&amp;quot; and the extension is .ics.&lt;br /&gt;
&lt;br /&gt;
Text/X-vCalendar Content Type&lt;br /&gt;
The vCalendar object can also be passed as a non-standard MIME media type. This would be useful in order to clearly identify the vCalendar object in an electronic mail message body part. A non-standard, vCalendar object should be identified as the MIME type/subtype &amp;quot;text/x-vCalendar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
@@ - i have to do some more investigation, but (i think) vCalendar is a subset of iCalendar, so many of the same encodings will work for both, but this document is dealing with iCalendar RFC2445 representation!&lt;br /&gt;
&lt;br /&gt;
== Button ==&lt;br /&gt;
&lt;br /&gt;
We need to come up with a nice &amp;lt;code&amp;gt;[ hCal | friendly ]&amp;lt;/code&amp;gt; button to indicate that event info on a page/site is using hCalendar. - [http://tantek.com/log/ Tantek].&lt;br /&gt;
&lt;br /&gt;
Possibilities:&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | friendly ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | aware ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | inside ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ Valid | hCalendar ]&amp;lt;/code&amp;gt; - though that would require writing an hCalendar validator which people could link to.&lt;br /&gt;
* &amp;lt;code&amp;gt;[ &amp;lt;icon&amp;gt; | hCalendar ]&amp;lt;/code&amp;gt; where &amp;lt;icon&amp;gt; could be some generic calendar looking thing, or it could be a PHP generated image with the actual date in the icon, kind of like how the Apple iCal icon updates in the dock automatically.&lt;br /&gt;
&lt;br /&gt;
And then we have to pick colors and all that stuff - [http://tantek.com/log/ Tantek].&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | enabled ]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[ hCal | available ]&amp;lt;/code&amp;gt; - kind of an off-hand reference to being available for meetings, etc.&lt;br /&gt;
&lt;br /&gt;
- [http://meyerweb.com/ Eric]&lt;br /&gt;
&lt;br /&gt;
== Including More of iCalendar ==&lt;br /&gt;
&lt;br /&gt;
=== Free/Busy information ===&lt;br /&gt;
&lt;br /&gt;
See [http://www.ifreebusy.com/cyclical/blog/ Neil Jensen]'s [http://www.ifreebusy.com/cyclical/blog/calendar/3 analysis of how to represent the iCalendar VFREEBUSY object in hCalendar].&lt;br /&gt;
&lt;br /&gt;
In order to show free/busy information, we could either use the existing vevent class (with empty location, summary, etc. properties) or create a new vfreebusy class. We should create a new vfreebusy class because it is consistent with the XHTML design principles, particularly point #4, &amp;quot;Use class names based on names from the original schema...&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In the iCalendar standard, the vfreebusy calendar component frequently has more than one freebusy property, and also may have a number of other properties such as organizer. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 BEGIN:VFREEBUSY &lt;br /&gt;
 ORGANIZER:jsmith@host.com &lt;br /&gt;
 DTSTART:19980313T141711Z &lt;br /&gt;
 DTEND:19980410T141711Z &lt;br /&gt;
 FREEBUSY:19980314T233000Z/19980315T003000Z &lt;br /&gt;
 FREEBUSY:19980316T153000Z/19980316T163000Z &lt;br /&gt;
 FREEBUSY:19980318T030000Z/19980318T040000Z &lt;br /&gt;
 URL:http://www.host.com/calendar/busytime/jsmith.ifb &lt;br /&gt;
 END:VFREEBUSY&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, our hCalendar representation should include separate elements for the vfreebusy calendar component (defined once) and the freebusy property (possibly defined many times):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;vfreebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050721T1000-0800&amp;quot;&amp;gt; &lt;br /&gt;
 July 21, 2005 - 10:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050721T1100-0800&amp;quot;&amp;gt; &lt;br /&gt;
 11:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050722T1000-0800&amp;quot;&amp;gt; &lt;br /&gt;
 July 22, 2005 - 10:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050722T1100-0800&amp;quot;&amp;gt; &lt;br /&gt;
 11:00 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to RFC2445, &amp;quot;When publishing a &amp;quot;VFREEBUSY&amp;quot; calendar component, the property is used to specify the calendar that the published busy time came from.&amp;quot; The property type is CAL-ADDRESS, and can include &amp;quot;non-standard, language, common name and directory entry reference&amp;quot; property parameters. CAL-ADDRESS is &amp;quot;...a URI as defined by [RFC 1738] or any other IANA registered form...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
From what I've seen, Microsoft Outlook typically populates this property with the email address of the calendar owner, which initially made me think of using hCard to specify the organizer. However, given that the property refers to the calendar and not necessarily the person who owns or has published it, I think we should use a new organizer element, as shown below: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 BEGIN:VFREEBUSY &lt;br /&gt;
 ORGANIZER:jsmith@host.com &lt;br /&gt;
 FREEBUSY:20050314T133000Z/20050314T163000Z &lt;br /&gt;
 END:VFREEBUSY&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
becomes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;vfreebusy&amp;quot;&amp;gt; &lt;br /&gt;
 organizer: &amp;lt;span class=&amp;quot;organizer&amp;quot;&amp;gt;jsmith@host.com&amp;lt;/span&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050314T133000Z&amp;quot;&amp;gt; &lt;br /&gt;
 March 14, 2005 - 13:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050314T163000Z&amp;quot;&amp;gt; &lt;br /&gt;
 16:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hmmm, this looks a little funny when the organizer is so obviously an email address, but at least it is semantically correct. The other problem that I can now see occurring is when the organizer property has parameters, for example (from the iCalendar spec):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 ORGANIZER;CN=JohnSmith;DIR=&amp;quot;ldap://host.com:6666/o=3DDC%20Associ &lt;br /&gt;
  ates,c=3DUS??(cn=3DJohn%20Smith)&amp;quot;:MAILTO:jsmith@host1.com&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perhaps it's best to use the same approach described in &amp;quot;Human vs. ISO8601 dates problem solved&amp;quot;; use the abbr element like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;vfreebusy&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;span class=&amp;quot;freebusy&amp;quot;&amp;gt; &lt;br /&gt;
 organizer: &amp;lt;abbr class=&amp;quot;organizer&amp;quot; title=&amp;quot;CN=JohnSmith;DIR=ldap://host.com:6666/o=3DDC%20Associ &lt;br /&gt;
 ates,c=3DUS??(cn=3DJohn%20Smith):MAILTO:jsmith@host1.com&amp;quot;&amp;gt;jsmith@host1.com&amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20050314T133000Z&amp;quot;&amp;gt; &lt;br /&gt;
 March 14, 2005 - 13:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; - &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20050314T163000Z&amp;quot;&amp;gt; &lt;br /&gt;
 16:30 &lt;br /&gt;
 &amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt; &lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== To-Do information ===&lt;br /&gt;
&lt;br /&gt;
The [http://www.policyawareweb.org/2005/ftf2/paw-mtg Policy Aware Web (PAW) Project Meeting - 23 Aug 2005] uses class=&amp;quot;vtodo&amp;quot; to capture action items.  Clearly recording action items from a meeting and publishing them as minutes is a good practical example use of the VTODO object on the web. &lt;br /&gt;
&lt;br /&gt;
What's the scenario for usage though?&lt;br /&gt;
&lt;br /&gt;
What kind of indexer/aggregator application would find these VTODO items and what would it do with them?  &lt;br /&gt;
&lt;br /&gt;
Perhaps with some way of figuring out who the to-do item is assigned to (&amp;quot;ATTENDEE&amp;quot;), who assigned it (&amp;quot;DELEGATED-FROM&amp;quot;), and a whitelisting of who, perhaps the &amp;quot;ORGANIZER&amp;quot; property,  (and their domains/URLs) that a user would accept assignments from, a user could aggregate to-do items assigned from other folks.  Then question remains how to update the status (&amp;quot;STATUS&amp;quot;) (RFC 2445 4.8.1.11 Status) on that to-do item when it is (a) completed (&amp;quot;COMPLETED&amp;quot;), (b) abandoned/cut/rejected (&amp;quot;CANCELLED&amp;quot;), (c) some progress is made (&amp;quot;IN-PROCESS&amp;quot;) etc.  There certainly seems to be sufficient expressiveness in VTODO and its properties to do a decentralized to-do list / task distribution system.  Could be very interesting for helping open source projects and other distributed teams do project management using the Web.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
== Normative References ==&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2445.txt RFC 2445]&lt;br /&gt;
* [http://gmpg.org/xmdp/ XMDP]&lt;br /&gt;
&lt;br /&gt;
== Informative References ==&lt;br /&gt;
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars HTMLForCalendars (FOO camp)] - presented just a few days before this, hopefully these efforts can be combine&lt;br /&gt;
&lt;br /&gt;
* [http://www.imc.org/pdi/ Personal Data Interchange (PDI) at the Internet Mail Consortium]&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#d27t1049 Markup language design notes]&lt;br /&gt;
* [http://tantek.com/log/2002/12.html#L20021216t2238 A Touch of Class]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2446.txt iTIP RFC2446]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2447.txt iMIP RFC2447]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3283.txt Guide to Internet Calendaring RFC3283]&lt;br /&gt;
&lt;br /&gt;
== Other Implementations/Ideas ==&lt;br /&gt;
* [http://www.nehmer.net/~bergie/openpsa-calendar-horizontal.jpg OpenPSA calendar screenshot]&lt;br /&gt;
* [http://www.w3.org/2002/12/cal/ RDF Calendar Workspace] - some older work done with RDF, not really applicable to the simple XHTML case, but perhaps worthy of analysis for when and why they may have diverged from established iCalendar schemas.&lt;br /&gt;
* [http://planb.nicecupoftea.org/archives/000072.html 2003 RDF icalendar work, xCal references]&lt;br /&gt;
&lt;br /&gt;
== Blogs About Calendaring ==&lt;br /&gt;
* http://staff.washington.edu/oren/weblog2/&lt;br /&gt;
&lt;br /&gt;
==Use in tables==&lt;br /&gt;
I currently have [http://www.westmidlandbirdclub.com/birmingham/field.htm events in table layout], using the format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;tr class=&amp;quot;X&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Sunday 12 February 2006&amp;lt;/th&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;a href=&amp;quot;http://www.rspb.org.uk/reserves/guide/c/conwy/index.asp&amp;quot;&amp;gt;RSPB Conwy&amp;lt;/a&amp;gt;*/ Llanfairfechan&amp;lt;/strong&amp;gt;.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;A sea watch with potential for divers and sea ducks and a visit to a prime seaside reserve.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How would I include the code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://www.westmidlandbirdclub.com/birmingham/field.htm&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;20060206&amp;quot;&amp;gt;February 6 2006&amp;lt;/abbr&amp;gt; &lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;20060207&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/abbr&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Birmingham Branch Field Trip&amp;lt;/span&amp;gt; - at&lt;br /&gt;
 &amp;lt;span class=&amp;quot;location&amp;quot;&amp;gt;RSPB Conwy/ Llanfairfechan.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;A sea watch with potential for divers and sea ducks and a visit to a prime seaside reserve.&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
in that? It seems to me that to loose the semantic table mark (column and row headers, for example) up would be a bad thing; not least for people whose lints don't understand hCal. Is the use of a non-breaking space in the dtend OK?[[User:PigsOTWing|PigsOTWing]] 12:12, 6 Feb 2006 (PST)&lt;/div&gt;</summary>
		<author><name>PigsOTWing</name></author>
	</entry>
</feed>