<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=D</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=D"/>
	<link rel="alternate" type="text/html" href="https://microformats.org/wiki/Special:Contributions/D"/>
	<updated>2026-04-15T08:30:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rfc-2445&amp;diff=70751</id>
		<title>rfc-2445</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rfc-2445&amp;diff=70751"/>
		<updated>2025-01-30T14:35:29Z</updated>

		<summary type="html">&lt;p&gt;D: Added a bunch more information about iCalendar and its recent evolution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iCalendar RFC 2445}}&lt;br /&gt;
&lt;br /&gt;
{{warning|This page needs to be updated to be based on RFC 5445, moving old content to a History section for the legacy impact of 2445 on original hCalendar design etc.}}&lt;br /&gt;
&lt;br /&gt;
iCalendar is a specification maintained by the IETF Calendaring Extensions (calext) Working Group, and is a widely used standard for the storage and exchange of calendar information.  It was originally specified, as &amp;quot;vCalendar&amp;quot;, by the Versit Consortium, before being passed to the Internet Mail Consortium, and finally adopted by the IETF.  The second revision of the standard, renamed to iCalendar, has formed the basis of many calendaring applications for decades.  Recent work within the IETF has proposed both new JSON-based syntax, as well as revised and extended semantics.&lt;br /&gt;
&lt;br /&gt;
The core iCalendar objects include: events, todos, journal entries, and supporting timezone data.  These definitions formed the semantic basis for the [[hcalendar|hCalendar]] microformat.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
* [https://cs.brown.edu/courses/cs190/old.spr1998/projects/acms/vCalendar_specs.pdf vCalendar] The original vCalendar specification, no longer in significant use.&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2445.txt RFC&amp;amp;nbsp;2445], &amp;quot;Internet Calendaring and Scheduling Core Object Specification (iCalendar)&amp;quot;, from 1998, defines the iCalendar 2.0 format, the basis for [[hcalendar|hCalendar]].&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc5445.txt RFC&amp;amp;nbsp;5445], &amp;quot;Internet Calendaring and Scheduling Core Object Specification (iCalendar)&amp;quot;, from 2009, updates and replaces RFC&amp;amp;nbsp;2445.&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc6321.txt RFC&amp;amp;nbsp;6321], &amp;quot;xCal: The XML Format for iCalendar&amp;quot;, from 2011, maps the iCalendar syntax to XML.&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc7265.txt RFC&amp;amp;nbsp;7265], &amp;quot;jCal: The JSON Format for iCalendar&amp;quot;, from 2014, maps the iCalendar syntax to JSON.&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc7529.txt RFC&amp;amp;nbsp;7529], &amp;quot;Non-Gregorian Recurrence Rules in the Internet Calendaring and Scheduling Core Object Specification (iCalendar)&amp;quot;, from 2015, extends iCalendar.&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc7953.txt RFC&amp;amp;nbsp;7953], &amp;quot;Calendar Availability&amp;quot;, from 2016, extends iCalendar with free/busy components for public scheduling.&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc7986.txt RFC&amp;amp;nbsp;7986], &amp;quot;New Properties for iCalendar&amp;quot;, from 2016, extends iCalendar.&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc9074.txt RFC&amp;amp;nbsp;9074], &amp;quot;'VALARM' Extensions for iCalendar&amp;quot;, from 2021, extends iCalendar to support alarms.&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc9253.txt RFC&amp;amp;nbsp;9253], &amp;quot;Support for iCalendar Relationships&amp;quot;, from 2022, extends iCalendar to support relationships between calendar objects.&lt;br /&gt;
&lt;br /&gt;
As of 2025, work in the IETF continues on a revised JSON format (JSCalendar), guidelines for conversion from iCalendar to JSCalendar (potentially valuable for microformats), revisions to tasks, extensions for polling and subscription, and more.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
When normatively referencing &amp;lt;nowiki&amp;gt;RFC 2445&amp;lt;/nowiki&amp;gt; on this wiki, either do so by linking to this page with:&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;{{RFC2445}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
or directly to http://www.ietf.org/rfc/rfc2445.txt.&lt;br /&gt;
&lt;br /&gt;
Avoid linking to the informative HTML translation of rfc2445.txt, which you must explicitly do by avoiding simply using the string &amp;lt;nowiki&amp;gt;RFC 2445&amp;lt;/nowiki&amp;gt; in your text, as MediaWiki appears to auto-hyperlink it to the HTML translation thus: RFC 2445.&lt;br /&gt;
&lt;br /&gt;
== Validator ==&lt;br /&gt;
* https://icalendar.org/validator.html&lt;br /&gt;
** [https://icalendar.org/More-Info/about-the-icalendar-validator.html About the validator.] (initial version launched in June 2015)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[icalendar-errata|iCalendar errata]]&lt;br /&gt;
* [[icalendar-implementations|iCalendar implementations]]&lt;br /&gt;
* [[icalendar-issues|iCalendar issues]]&lt;br /&gt;
* [[hcalendar|hCalendar]]&lt;/div&gt;</summary>
		<author><name>D</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcalendar-implementations-fr&amp;diff=70750</id>
		<title>hcalendar-implementations-fr</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcalendar-implementations-fr&amp;diff=70750"/>
		<updated>2025-01-30T13:40:42Z</updated>

		<summary type="html">&lt;p&gt;D: /* Librairies */ Update URL for vobject&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;hCalendar Implémentations&amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
Cette page est une section '''pour information''' de la spécification [[hcalendar-fr|hCalendar]].&lt;br /&gt;
&lt;br /&gt;
Les implémentations suivantes ont été développées et génèrent ou parsent les hCalendars.&lt;br /&gt;
Si vous avez une implémentation [[hcalendar-fr|hCalendar]], sentez-vous libre de l'ajouter dans la section Nouvelles Implémentations. Si vous avez une page ou un site qui ''publie'' simplement des événements hCalendar, utilisez svp à la place [[hcalendar-examples-in-wild-fr|hcalendar-exemples-dans-la-jungle]].&lt;br /&gt;
&lt;br /&gt;
==Nouvelles Implémentations==&lt;br /&gt;
Ajoutez-ici les nouvelles implémentations : &lt;br /&gt;
* Le calendrier du [http://TikiWiki.org CMS/Groupware TikiWiki] utilise le balisage hCalendar pour les événements. C'est une fonctionnalité intégrée (pas besoin de téléchargement de module/plugin/etc. séparé). Vous pouvez le voir à l'action sur [http://wiki-translation.com wiki-translation.com]&lt;br /&gt;
* [http://code.google.com/p/schoorbs Schoorbs] a des réservations enrichies de hCalendar dans view_entry.php depuis la révision 175 (devenant 1.0-Alpha2).&lt;br /&gt;
* [http://buzzword.org/cognition/ Cognition] supporte [[User:TobyInk/hcalendar-1.1|hcalendar 1.1]]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Publier ==&lt;br /&gt;
Les implémentations que vous pouvez utiliser pour rédiger, créer et publier des événements hCalendar.&lt;br /&gt;
&lt;br /&gt;
===Créateurs basés sur le Web=== &lt;br /&gt;
;hCalendar Creator : [http://microformats.org/code/hcalendar/creator hCalendar creator] ([[hcalendar-creator-feedback-fr|hCalendar creator feedback]]) - créez vos propres événements hCalendar. &lt;br /&gt;
;Conference Schedule Creator : [http://dmitry.baranovskiy.com/work/csc/ Conference Schedule Creator] ([[hcalendar-schedule-creator-feedback-fr|Conference Schedule Creator feedback]]) - créez vos propres programmes de conférences avec des événements hCalendar. &lt;br /&gt;
&lt;br /&gt;
=== Outils de Blog et CMS  ===&lt;br /&gt;
;Midgard CMS : [http://www.midgard-project.org/documentation/net-nemein-calendar/ Midgard CMS - net.nemein.calendar] - comme c'est [http://bergie.iki.fi/blog/new-event-calendar-for-midcom.html blogué par Henri Bergius] &lt;br /&gt;
;Drupal module : [http://hybernaut.com/upcoming-hcal Drupal Upcoming.org syndication module emits hCalendar]&lt;br /&gt;
;MovableType et WordPress plug-ins : [http://structuredblogging.org/formats.php StructuredBlogging] est un ensemble de plugins [http://structuredblogging.org/structuredblogging-wp-latest.zip pour WordPress] et [http://structuredblogging.org/structuredblogging-wp-latest.zip pour MovableType] qui supporte l'embarquement de hCalendar et d'autre microformats dans les gabarits et les billets de blog.&lt;br /&gt;
;Textpattern plug-ins : &lt;br /&gt;
* [http://placenamehere.com/TXP/pnh_mf/ pnh_mf] est un plugin pour [http://textpattern.com/ Textpattern] qui supporte l'embarquement de hCalendar et d'autres microformats dans les gabarits et billets de blog. Ecrit par [http://placenamehere.com/ Chris Casciano].&lt;br /&gt;
* [http://euphemize.net/blog/plugins/textpattern/jmc_event_manager/ jmc_event_manager] est un plugin pour [http://textpattern.com/ Textpattern] qui produit des événements et lieux en formats hCalendar (et hCard). Ecrit par [http://euphemize.net/ Joel Courtney].&lt;br /&gt;
&lt;br /&gt;
=== Scripts et plugins pour Navigateurs  ===&lt;br /&gt;
Plugins navigateurs qui fonctionnent avec les outils de publication existants :&lt;br /&gt;
; Tout navigateur avec javascript et un petit morceau de CSS : [http://microformats.org/code/hcalendar/creator microformats.org hCalendar creator]  (vor aussi l'original : [http://theryanking.com/ Ryan King] a un [http://theryanking.com/microformats/hcalendar-creator.html hCalendar creator]).&lt;br /&gt;
; Firefox Greasemonkey user script hCalendar creator : [http://www.decafbad.com/blog/2005/06/08/greasemonkey_magic magic_hcalendar Greasemonkey user script par Les Orchard] - permet une saisie facile par formulaire d'un événement dans n'importe quelle aire de texte, par ex. à l'intérieur d'une aire de texte pour billet de blog.&lt;br /&gt;
; Firefox Greasemonkey user script hCalendar vers Google Calendar: [http://torrez.us Elias Torres] a créé un [http://torrez.us/archives/2006/04/13/431/ script simple] qui parsera les entrées hCalendar et créera un lien pour ajouter un événement vers [http://www.google.com/calendar/ le service de Google Calendar]. Basé sur le travail de [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats George] et de [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats Arve].&lt;br /&gt;
&lt;br /&gt;
=== Outil de Publication de Bureau  ===&lt;br /&gt;
;Dreamweaver Extension : [http://www.webstandards.org/action/dwtf/microformats/ Extension suite] pour Dreamweaver 8 tirée du [http://webstandards.org/ Web Standards Project].&lt;br /&gt;
;xfy : &lt;br /&gt;
dans la [https://www.xfytec.com/community/ Communauté xfy], il existe quelques implémentations hCalendar.&lt;br /&gt;
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=15&amp;amp;lid=25 hCalendar via RSS] parse un fil RSS, retrouve les documents XHTML liés à partir de ce fil et syndique les hCalendars à l'intérieur d'une vue calendrier.&lt;br /&gt;
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=19&amp;amp;lid=23 hCalendar Marker XVCD] aide à marquer une information évènement en document XHTML avec hCalendar. &lt;br /&gt;
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=15&amp;amp;lid=17 Simple RDF Calendar XVCD] est un outil de programmation qui utilise le format RDF Calendar. Il convertir aussi le format RDF Calendar vers les formats iCalendar et hCalendar.&lt;br /&gt;
&lt;br /&gt;
== Recherche et Découverte ==&lt;br /&gt;
* [http://kitchen.technorati.com/search Technorati Microformats Search] indexe les [[hcard-fr|hCard]], [[hcalendar-fr|hCalendar]] et [[hreview-fr|hReview]] comme [http://tantek.com/log/2006/05.html#d31t1802 annoncé par Tantek]. &lt;br /&gt;
* [http://leftlogic.com/info/articles/microformats_bookmarklet Microformats Bookmarklet] est un  bookmarklet conçu pour Safari (fonctionne dans Firefox et Camino) qui se superpose sur la page en cours pour permettre aux utilisateurs d'importer des [[hcard-fr|hCards]] ou des [[hcalendar-fr|hCalendars]]. Ecrit par [http://leftlogic.com Remy Sharp].&lt;br /&gt;
;Windows Live Writer :&lt;br /&gt;
* WLW's [http://gallery.live.com/liveItemDetail.aspx?li=9751e563-1408-4fc3-8028-bd4351edb1fb&amp;amp;l=8 Plugin Events] formate les événements dans les billets de blog avec hCalendar.&lt;br /&gt;
&lt;br /&gt;
== Conversion et Importation ==&lt;br /&gt;
Les implémentations que vous pouvez utiliser pour l'importation dans une application calendrier, généralement en convertissant hCalendar vers iCalendar/vCalendar.&lt;br /&gt;
&lt;br /&gt;
=== Web Services ===&lt;br /&gt;
Ceux-ci renvoient des formats iCalendar (.ics) et d'autres formats de calendrier à l'intérieur de programmes typiques de calendriers ou autre traitement.&lt;br /&gt;
* [http://feeds.technorati.com/events Technorati Events Feed service] utilise la librairie X2V pour parser hCalendar et renvoyer iCalendar (.ics).  &lt;br /&gt;
** Notez l'URL facile à retenir, par ex. http://feeds.technorati.com/events/http%3A//microformats.org&lt;br /&gt;
* [http://suda.co.uk/projects/X2V/ X2V] parse hCalendar et produit un flux .ics (iCalendar).  ** Note : a besoin d'être mis à jour pour garder une trace des modifications dans la spécification au fur et à mesure qu'elle arrive.&lt;br /&gt;
&amp;lt;!-- * [http://lifelint.net/ Life Lint Parser] parse hCalendar et produit des informations .ics, .rdf et de débogage et essaye d'être complètement conforme au standard iCal par rapport aux implémentations précédentes. Il peut être utilisé de la même manière que X2V.  Peut produire une sorte en  iCal (w optional Outlook 2002 compat), et RDF. Hors ligne depuis décembre 2006 --&amp;gt;&lt;br /&gt;
* [http://spanningsalesforce.com/ Spanning Salesforce] produit des fils RSS hCalendar et des calendriers .ics extraits de Salesforce.com.&lt;br /&gt;
* [http://makedatamakesense.com/myspace/event/ MySpace Events RSS Creator] crée des fils RSS des événements MySpace avec une syntaxe hCalendar.&lt;br /&gt;
&lt;br /&gt;
=== Plugins Firefox Greasemonkey ===&lt;br /&gt;
* [http://george.hotelling.net/90percent/ George] a construit un [http://george.hotelling.net/90percent/geekery/greasemonkey_and_microformats.php Greasemonkey script utilisateur qui détecte les événements hCalendar et permet aux utilisateurs de les ajouter facilement à leurs application(s) de calendrier].&lt;br /&gt;
* [http://inside.glnetworks.de/ Martin Rehfeld] a mis à jour les travaux de [http://blogmatrix.blogmatrix.com/ David Janes] et produit un [[Greasemonkey-fr|Greasemonkey]] [http://inside.glnetworks.de/2006/06/05/microformats-have-arrived-in-firefox-15-greasemonkey-06/ script] qui trouve beaucoup d'éléments microformats, y compris les événements hCalendar et [http://blog.davidjanes.com/mtarchives/2005_08.html#003379 affiche un menu popup d'actions]. &lt;br /&gt;
La conversion hCalendar en vCalendar est faite en interne dans le script. ''Ceci fonctionnera désormais bien dans FireFox 1.5+/GreaseMonkey 0.6.4+.''&lt;br /&gt;
&lt;br /&gt;
===Agrégateurs ===&lt;br /&gt;
* [http://placenamehere.com/mf/nnwextract/ Extract Microformats] est un script pour NetNewsWire qui supporte l'extraction de données hCard et hCalendar dans les billets de blogs (via technorati service). Ecrit par [[User:ChrisCasciano|Chris Casciano]]&lt;br /&gt;
* [http://kula.jp/software/endo/screenshots/ Endo], un agrégateur OS X supporte de découvrir les hCal et ajoute ces événements dans iCal. &lt;br /&gt;
Regardez la photo d'écran en bas de la page.&lt;br /&gt;
&lt;br /&gt;
== Browsing ==&lt;br /&gt;
Les implémentations qui détectent, affichent et autrement soulignent les événements hCalendar dans les pages.&lt;br /&gt;
* Dans la [http://www.xfytec.com/community/ xfy Community], il existe quelques implémentations hCalendar. &amp;quot;hCalendar via RSS&amp;quot; parse un fil RSS, retrouve les documents XHTML liés à partir de ce fil, et syndique les hCalendars à l'intérieur d'une vue calendrier.&lt;br /&gt;
* [http://code.google.com/p/js-hcalendar js-hcalendar] parse hCalendar et produit un HTML affichable en calendrier HTML fondé sur tableau/CSS (précédemment appelé JSCalendar).&lt;br /&gt;
* [http://thebitterpill.com/07-2007/a-jquery-hcal-parser/ jqueryhcal] est un parseur hCalendar basé sur jQuery qui supporte les événements sur plusieurs jours, dtend et d'autres fonctionnalités.&lt;br /&gt;
&lt;br /&gt;
=== Extensions Firefox ===&lt;br /&gt;
*[http://www.orch8.net/ AlchemyPoint] est une extension Firefox et un service proxy qui peut détecter les microformats dans les documents HTML et afficher les suggestions navigation/mashup en se fondant sur leurs contenus.&lt;br /&gt;
* [http://blog.codeeg.com/tails-firefox-extension/ Tails est une extension Firefox] qui affichera la présence de microformats ([[hcard-fr|hCard]], [[hcalendar-fr|hCalendar]], [[hreview-fr|hReview]], [[xfolk-fr|xFolk]]) sur une page web.&lt;br /&gt;
&lt;br /&gt;
===Imminent===&lt;br /&gt;
*[http://reminderfox.mozdev.org/ ReminderFox] a un import de hCalendar sur sa &amp;quot;to do liste&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Extension Flock ===&lt;br /&gt;
*[http://www.orch8.net/ AlchemyPoint] est une extension Firefox et un service proxy qui peut détecter les microformats dans les documents HTML et afficher les suggestions navigation/mashup en se fondant sur leurs contenus.&lt;br /&gt;
* [http://blog.codeeg.com/2006/03/20/flock-tails-flocktails/ Flocktails] - porte l'extension Tails pour Flock 0.5.12 qui cherche les hCards, hCalendar, xFolk et hReview et les secoue dans une barre supérieure bien commode.&lt;br /&gt;
&lt;br /&gt;
== Librairies ==&lt;br /&gt;
Les librairies open source des parsers hCalendar et autres codes aparentés pour construire des implémentations hCalendar. . Note : il est très probable que quelques-unes des implémentations au-dessus puissent être dupliquées dans cette section. C'est ok.&lt;br /&gt;
; Javascript : &lt;br /&gt;
* [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats parseur simple hCalendar] par [http://virtuelvis.com/ Arve Bersvendsen]&lt;br /&gt;
* [http://microformats.org/code/hcalendar/creator hCalendar creator] ([[hcalendar-creator-feedback-fr|hCalendar creator feedback]])&lt;br /&gt;
; PHP : &lt;br /&gt;
*[http://randomchaos.com/microformats/base/ Microformat Base] est un crawler d'agrégation de microformat open-source PHP, reconnaissant actuellement hreview, hcalendar et hcard.&lt;br /&gt;
*[http://fresh.t-systems-sfr.com/unix/src/www/WebCalendar-devel-1.1.1.tar.gz:a/WebCalendar-1.1.1/includes/classes/hKit/hcal.profile.php profil hCalendar] pour le parseur [http://allinthehead.com/hkit/ hKit].&lt;br /&gt;
; Python :&lt;br /&gt;
* [https://github.com/py-vobject/vobject vObject], une partie du projet Chandler déclare un support du hCalendar.&lt;br /&gt;
; Ruby : [http://opensource.reevoo.com/2006/03/08/release-uformats-12/ uformats] est une librairie ruby qui peut parser [[hcalendar-fr|hCalendar]], [[hcard-fr|hCard]], [[hreview-fr|hReview]] et [[rel-tag-fr|rel-tag]]&lt;br /&gt;
; XSLT :&lt;br /&gt;
* X2V est disponible en tant que librairie XSLT&lt;br /&gt;
* [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent] de [[User:DanC]] comprend toICal.xsl et des contenus de tests ; &lt;br /&gt;
elle fonctionne beaucoup comme  xhtml2vcal.xsl dans X2V. Voir aussi : [http://www.w3.org/2002/12/cal/ RDF Calendar workspace] avec les contenus de test icalendar.&lt;br /&gt;
&lt;br /&gt;
== Pages en rapport ==&lt;br /&gt;
{{hcalendar-related-pages-fr}}&lt;/div&gt;</summary>
		<author><name>D</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcalendar-implementations&amp;diff=70749</id>
		<title>hcalendar-implementations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcalendar-implementations&amp;diff=70749"/>
		<updated>2025-01-30T13:38:34Z</updated>

		<summary type="html">&lt;p&gt;D: /* Libraries */ Update vobject details.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:hCalendar Implementations}}&lt;br /&gt;
&lt;br /&gt;
This page is an '''informative''' section of the [[hcalendar|hCalendar specification]].&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which either generate or parse hCalendars. If you have an [[hcalendar|hCalendar]] implementation, feel free to add it to the New Implementations section.  If you have a page or site which just ''publishes'' hCalendar events, please use [[hcalendar-examples-in-wild]] instead.&lt;br /&gt;
&lt;br /&gt;
==New Implementations==&lt;br /&gt;
Add new implementations here:&lt;br /&gt;
&lt;br /&gt;
* [http://www.agitraining.com/ AGI Adobe Training] uses hCalendar to list training course dates and share upcoming classes such as the list of scheduled [http://www.agitraining.com/adobe/photoshop/classes Photoshop classes].&lt;br /&gt;
* [http://iwenty.pl Iwenty.pl] is a polish search engine indexes web sites with events which implementing [[hcalendar|hCalendar]] microformat.&lt;br /&gt;
* [http://www.ledet.com/ Ledet Adobe Training Centers] uses hCalendar to distribute and list training class information at the company's [http://www.ledet.com/events training class listing].&lt;br /&gt;
* [http://www.cgtworld.com/ Cybernation Gamers Tournament] uses hCalendar in the match event  like [http://www.cgtworld.com/match/id-193/ READY vs SouL].&lt;br /&gt;
* [http://www.w3.org/People/Bos/HcalProxy/ Hcalproxy] runs as an HTTP server, either standalone or under inetd(8), and converts hCalendar to iCalendar.&lt;br /&gt;
* The calendar of [http://TikiWiki.org TikiWiki CMS/Groupware] uses hCalendar markup for events. It's a built-in feature (no need to download separate module/plugin/etc). You can see in action over at [http://wiki-translation.com wiki-translation.com]&lt;br /&gt;
* [http://code.google.com/p/schoorbs Schoorbs] has bookings flavored with hCalendar in view_entry.php since revision 175 (becoming 1.0-Alpha2).&lt;br /&gt;
* [http://buzzword.org/cognition/ Cognition] supports [[User:TobyInk/hcalendar-1.1|hcalendar 1.1]]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
==Authoring==&lt;br /&gt;
Implementations you can use to author, create, and publish hCalendar events.&lt;br /&gt;
&lt;br /&gt;
===Web-based Creators===&lt;br /&gt;
;hCalendar Creator : [http://microformats.org/code/hcalendar/creator hCalendar creator] ([[hcalendar-creator-feedback|hCalendar creator feedback]]) - create your own hCalendar events.&lt;br /&gt;
;Conference Schedule Creator : [http://dmitry.baranovskiy.com/work/csc/ Conference Schedule Creator] ([[hcalendar-schedule-creator-feedback|Conference Schedule Creator feedback]]) - create your conference schedule with hCalendar events.&lt;br /&gt;
;Permatime hCalendar vevent generator : [http://permatime.com/ Permatime] enables sharing of points in time as well as acting as a quick way to generate hcalendar vevents.&lt;br /&gt;
;Dingbee : [http://dingbee.com Dingbee] allows you to share your events with hCalendar support.&lt;br /&gt;
&lt;br /&gt;
===Blogging and CMS tools===&lt;br /&gt;
;Drupal module : [http://hybernaut.com/upcoming-hcal Drupal Upcoming.org syndication module emits hCalendar]&lt;br /&gt;
&lt;br /&gt;
;[http://www.helioscalendar.com/ Helios Calendar] : for-sale PHP calendaring software that supports hCalendar. Example site with event: [http://www.caamuseum.org/hcalendar/events/index.php?com=detail&amp;amp;eID=2571 California African American Museum: DOCUMENTARY SCREENING]&lt;br /&gt;
&lt;br /&gt;
;Midgard CMS : [http://www.midgard-project.org/documentation/net-nemein-calendar/ Midgard CMS - net.nemein.calendar] - as [http://bergie.iki.fi/blog/new-event-calendar-for-midcom.html blogged by Henri Bergius] &lt;br /&gt;
&lt;br /&gt;
;Textpattern plug-ins : &lt;br /&gt;
* [http://placenamehere.com/TXP/pnh_mf/ pnh_mf] is a plugin for [http://textpattern.com/ Textpattern] that supports embedding hCalendar and other microformats in templates and blog posts. Written by [http://placenamehere.com/ Chris Casciano].&lt;br /&gt;
* [http://euphemize.net/blog/plugins/textpattern/jmc_event_manager/ jmc_event_manager] is a plugin for [http://textpattern.com/ Textpattern] that outputs events and locations in hCalendar (and hCard) formats. Written by [http://euphemize.net/ Joel Courtney].&lt;br /&gt;
&lt;br /&gt;
===Browser scripts and plug-ins===&lt;br /&gt;
Browser plugins that work with existing authoring tools:&lt;br /&gt;
; Any browser with javascript and a little bit of CSS : [http://microformats.org/code/hcalendar/creator microformats.org hCalendar creator]  (see also original: [http://theryanking.com/ Ryan King] has an [http://theryanking.com/microformats/hcalendar-creator.html hCalendar creator]).&lt;br /&gt;
; Firefox Greasemonkey user script hCalendar creator : [http://www.decafbad.com/blog/2005/06/08/greasemonkey_magic magic_hcalendar Greasemonkey user script by Les Orchard] - allows easy form entry of an event into any textarea, e.g. into a blog post text area.&lt;br /&gt;
; Firefox Greasemonkey user script hCalendar to Google Calendar: [http://torrez.us Elias Torres] has created a [http://torrez.us/archives/2006/04/13/431/ simple script] that will parse hCalendar entries and create a link to add event to [http://www.google.com/calendar/ Google Calendar's] service. Based on [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats George's] and [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats Arve's] work.&lt;br /&gt;
&lt;br /&gt;
===Desktop Authoring Tools===&lt;br /&gt;
;Dreamweaver Extension : [http://www.webstandards.org/action/dwtf/microformats/ Extension suite] for Dreamweaver 8 from the [http://webstandards.org/ Web Standards Project].&lt;br /&gt;
;xfy : &lt;br /&gt;
In [https://www.xfytec.com/community/ xfy Community], there are some hCalendar implementations.&lt;br /&gt;
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=15&amp;amp;lid=25 hCalendar via RSS] parses an RSS feed, retrieves XHTML documents linked from that feed, and syndicates hCalendars into a calendar view.&lt;br /&gt;
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=19&amp;amp;lid=23 hCalendar Marker XVCD] helps to mark up an event information in XHTML document with hCalendar. &lt;br /&gt;
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=15&amp;amp;lid=17 Simple RDF Calendar XVCD] is a schedule tool which uses RDF Calendar format. It also converts RDF Calendar format to iCalendar and hCalendar format.&lt;br /&gt;
;Windows Live Writer :&lt;br /&gt;
* WLW's [http://gallery.live.com/liveItemDetail.aspx?li=9751e563-1408-4fc3-8028-bd4351edb1fb&amp;amp;l=8 Event Plugin] formats events in blog posts with hCalendar.&lt;br /&gt;
&lt;br /&gt;
==Search and Discovery==&lt;br /&gt;
* [http://leftlogic.com/projects/microformats_bookmarklet Microformats Bookmarklet] is a bookmarklet designed for Safari (works in Firefox and Camino) that overlays on the current page to allow users to import individual [[hcard|hCards]] or [[hcalendar|hCalendars]]. Written by [http://leftlogic.com Remy Sharp].&lt;br /&gt;
* [http://iwenty.pl Iwenty.pl] is a polish search engine indexes web sites with events which implementing [[hcalendar|hCalendar]] microformat.&lt;br /&gt;
&lt;br /&gt;
==Conversion and Import==&lt;br /&gt;
Implementations you can use to importing into a calendar application, typically by converting hCalendar to iCalendar/vCalendar.&lt;br /&gt;
&lt;br /&gt;
===Web Services===&lt;br /&gt;
These return iCalendar (.ics) and other calendar formats for easy importing into typical calendar programs or other processing.&lt;br /&gt;
* [http://h2vx.com/ics H2VX Events Conversion service] uses X2V library to parse hCalendar and return iCalendar (.ics).&lt;br /&gt;
**The [http://georgebrock.com/projects/enhanced-hcalendar-downloads/ enhanced-hcalendar-downloads] script detects links to this service and displays a menu when they are clicked containing the original Technorati link and links to add the event to Google, Yahoo! and 30boxes. (see also [http://github.com/georgebrock/enhanced-hcalendar-downloads/ Github: enhanced-hcalendar-downloads]).&lt;br /&gt;
* [http://suda.co.uk/projects/X2V/ X2V] parses hCalendar and produces a .ics (iCalendar) stream.&lt;br /&gt;
**Note: needs to be updated to track changes in the specification as they occur.&lt;br /&gt;
&amp;lt;!-- * [http://lifelint.net/ Life Lint Parser] parses hCalendar and produces .ics, .rdf and debugging information and attempts to be more fully compliant to the iCal standard than previous implementations.  It can be used in the same manner as X2V.  Can output iCal (w optional Outlook 2002 compat), and RDF. OFFLINE SINCE DECEMBER 2006 --&amp;gt;&lt;br /&gt;
* [http://spanningsalesforce.com/ Spanning Salesforce] produces hCalendar-enabled RSS feeds and .ics calendars from Salesforce.com.&lt;br /&gt;
* [http://makedatamakesense.com/myspace/event/ MySpace Events RSS Creator] creates RSS feeds of MySpace events with hCalendar markup.&lt;br /&gt;
&lt;br /&gt;
===Firefox Greasemonkey Plugins===&lt;br /&gt;
* [http://george.hotelling.net/90percent/ George] has built a [http://george.hotelling.net/90percent/geekery/greasemonkey_and_microformats.php Greasemonkey user script that detects hCalendar events and allows users to easily add them to their calendar application(s)].&lt;br /&gt;
* [http://inside.glnetworks.de/ Martin Rehfeld] has updated the work of [http://blogmatrix.blogmatrix.com/ David Janes] and produced a [[Greasemonkey]] [http://inside.glnetworks.de/2006/06/05/microformats-have-arrived-in-firefox-15-greasemonkey-06/ script] that finds many microformat elements, including hCalendar events, and [http://blog.davidjanes.com/mtarchives/2005_08.html#003379 provides a popup menu of actions]. The hCalendar to vCalendar conversion is done internally within the script. ''This will work with FireFox 1.5+/GreaseMonkey 0.6.4+ now.''&lt;br /&gt;
&lt;br /&gt;
===Aggregators===&lt;br /&gt;
* [http://placenamehere.com/mf/nnwextract/ Extract Microformats] is a script for NetNewsWire that supports extracting hCard and hCalendar data in blog posts (via Technorati service). Written by [[User:ChrisCasciano|Chris Casciano]]&lt;br /&gt;
* [http://kula.jp/software/endo/screenshots/ Endo], an OS X aggregator, supports discovering hCalendar and adding those events to iCal. Look at the last screenshot at the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
===Converters===&lt;br /&gt;
* [http://www.w3.org/People/Bos/HcalProxy/ Hcalproxy] runs as an HTTP server, either standalone or under inetd(8), and converts hCalendar to iCalendar. E.g., if Hcalproxy is running on localhost port 8000 and &amp;lt;nowiki&amp;gt;http://example.org/page.html&amp;lt;/nowiki&amp;gt; points is an HTML page, then &amp;lt;nowiki&amp;gt;http://localhost:8000/http://example.org/page.html&amp;lt;/nowiki&amp;gt; is an iCalendar document with the events from that page.&lt;br /&gt;
&lt;br /&gt;
==Browsing==&lt;br /&gt;
Implementations that detect, display and otherwise highlight hCalendar events in pages.&lt;br /&gt;
&lt;br /&gt;
* In [http://www.xfytec.com/community/ xfy Community], there are some hCalendar implementations. &amp;quot;hCalendar via RSS&amp;quot; parses an RSS feed, retrieves XHTML documents linked from that feed, and syndicates hCalendars into a calendar view.&lt;br /&gt;
* [http://code.google.com/p/js-hcalendar js-hcalendar] parses hCalendar and produces a displayable HTML table/CSS-based calendar (formerly called JSCalendar).&lt;br /&gt;
* [http://thebitterpill.com/07-2007/a-jquery-hcal-parser/ jqueryhcal] is a jQuery-based hCalendar parser that supports multi-day events, dtend, and other features.&lt;br /&gt;
&lt;br /&gt;
===Firefox extension===&lt;br /&gt;
*[http://www.orch8.net/ AlchemyPoint] is a Firefox extension and proxy service that can detect microformats in HTML documents and display browsing/mashup suggestions based on their contents.&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;
*[https://addons.mozilla.org/en-US/firefox/addon/4106 Operator] also displays the presence of microformats, is extensible, and allows you to add actions such as &amp;quot;Add hCalender to Yahoo! Calendar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Pending====&lt;br /&gt;
*[http://reminderfox.mozdev.org/ ReminderFox] have hCalendar import on their &amp;quot;to do &amp;quot; list. &lt;br /&gt;
&lt;br /&gt;
===Flock extension===&lt;br /&gt;
*[http://www.orch8.net/ AlchemyPoint] is a Flock extension and proxy service that can detect microformats in HTML documents and display browsing/mashup suggestions based on their contents.&lt;br /&gt;
*[http://blog.codeeg.com/2006/03/20/flock-tails-flocktails/ Flocktails] - port of Tails extension for Flock 0.5.12 that looks for hCards, hCalendar, xFolk and hReview and tosses them into a handy topbar&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
Open source libraries of hCalendar parsers and other related code for building hCalendar implementations. Note: it is very likely that some of the above implementations may be duplicated in this section. That's ok.&lt;br /&gt;
; Javascript : &lt;br /&gt;
* [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats simple hCalendar parser] by [http://virtuelvis.com/ Arve Bersvendsen]&lt;br /&gt;
* [http://microformats.org/code/hcalendar/creator hCalendar creator] ([[hcalendar-creator-feedback|hCalendar creator feedback]])&lt;br /&gt;
; PHP : &lt;br /&gt;
*[http://randomchaos.com/microformats/base/ Microformat Base] is an open-source PHP microformat aggregation crawler, currently recognizing hreview, hcalendar, and hcard (Source code no longer available as of 6 Dec 06).&lt;br /&gt;
*[http://enarion.net/phpmicroformats/ phpMicroformats] is a PHP class library that generates microformats for calendar events (hCalendar) and vcards (hCard).&lt;br /&gt;
* [http://fresh.t-systems-sfr.com/unix/src/www/WebCalendar-devel-1.1.1.tar.gz:a/WebCalendar-1.1.1/includes/classes/hKit/hcal.profile.php hCalendar profile] for the [http://allinthehead.com/hkit/ hKit] parser.&lt;br /&gt;
; Ruby [http://rubyforge.org/projects/uformats/ uformats]: is a ruby library that can parse [[hCalendar]], [[hCard]], [[hReview]] and [[rel-tag]]&lt;br /&gt;
; XSLT :&lt;br /&gt;
* X2V is available as an XSLT library&lt;br /&gt;
* [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent] by [[User:DanC]] includes  toICal.xsl and test materials; it works much like xhtml2vcal.xsl in X2V. See also: [http://www.w3.org/2002/12/cal/ RDF Calendar workspace] with icalendar test materials.&lt;br /&gt;
; Python : &lt;br /&gt;
* [https://github.com/py-vobject/vobject vObject], an Apache2-licensed Python [[icalendar|iCalendar]]/[[vcard|vCard]] package, has support for export of calendar objects in [[hcalendar|hCalendar]] format.&lt;br /&gt;
&lt;br /&gt;
== Old ==&lt;br /&gt;
Past sites/services/implementations of hCalendar. Some sites may have gone offline, others may have changed completely.&lt;br /&gt;
&lt;br /&gt;
Previously:&lt;br /&gt;
* 2005-2009? StructuredBlogging (&amp;lt;nowiki&amp;gt;http://structuredblogging.org/formats.php&amp;lt;/nowiki&amp;gt;) was a set of plugins (&amp;lt;nowiki&amp;gt;http://structuredblogging.org/structuredblogging-wp-latest.zip&amp;lt;/nowiki&amp;gt;) for  WordPress and MovableType that supported embedding hCalendar and other microformats in templates and blog posts.&lt;br /&gt;
&lt;br /&gt;
* 2005-2011 &amp;lt;nowiki&amp;gt;http://feeds.technorati.com/events&amp;lt;/nowiki&amp;gt; Technorati Events Feed service] uses X2V library to parse hCalendar and return iCalendar (.ics).&lt;br /&gt;
**Note friendly URL, e.g. &amp;lt;nowiki&amp;gt;http://feeds.technorati.com/events/http%3A//microformats.org&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 2006-2008 &amp;lt;nowiki&amp;gt;http://kitchen.technorati.com/search Technorati Microformats Search&amp;lt;/nowiki&amp;gt; indexes [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] as [http://tantek.com/log/2006/05.html#d31t1802 announced by Tantek]. &lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
{{hcalendar-related-pages}}&lt;/div&gt;</summary>
		<author><name>D</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70748</id>
		<title>icalendar-implementations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70748"/>
		<updated>2025-01-30T13:32:57Z</updated>

		<summary type="html">&lt;p&gt;D: Better internal linkage.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; iCalendar implementations &amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
This is a list of calendar programs, applications and services that support the iCalendar {{RFC2445}} standard.&lt;br /&gt;
&lt;br /&gt;
In addition, please note any quirks or bugs with implementations' handling of iCalendar - we've already discovered some in the development of [[hcalendar|hCalendar]] and proxies like X2V.&lt;br /&gt;
&lt;br /&gt;
== libraries ==&lt;br /&gt;
&lt;br /&gt;
=== C libical ===&lt;br /&gt;
Open source C-based implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/libical/libical Github]&lt;br /&gt;
&lt;br /&gt;
=== Python icalendar ===&lt;br /&gt;
Python implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://pypi.python.org/pypi/icalendar/ PyPI]&lt;br /&gt;
&lt;br /&gt;
=== Python vobject ===&lt;br /&gt;
Apache 2.0-licensed Python iCalendar parser/generator library package, which also supports [[vcard|vCard]] and [[hcalendar|hCalendar]].&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/py-vobject/vobject GitHub]&lt;br /&gt;
* [https://pypi.org/project/vobject/ PyPI]&lt;br /&gt;
&lt;br /&gt;
== services ==&lt;br /&gt;
=== Google Calendar ===&lt;br /&gt;
http://calendar.google.com/&lt;br /&gt;
* supports subscribing to &amp;quot;webcal:&amp;quot; and &amp;quot;http:&amp;quot; URLs to iCalendar&lt;br /&gt;
&lt;br /&gt;
== products ==&lt;br /&gt;
=== Apple Calendar.app ===&lt;br /&gt;
Apple Calendar.app, formerly known as iCal.&lt;br /&gt;
* platform: OSX&lt;br /&gt;
* handles &amp;quot;webcal:&amp;quot; URLs and supports subscribing to events.&lt;br /&gt;
&lt;br /&gt;
==== Apple iCal 2.0.5 ====&lt;br /&gt;
Apple iCal.app 2.0.5 build 1069 (AppleiCal205)&lt;br /&gt;
&lt;br /&gt;
===== iCal 2.0.5 notes =====&lt;br /&gt;
* '''Requires dates and date-times without separators.''' Apple iCal 2.0.5 (and probably other versions) appears to require dates without &amp;quot;-&amp;quot; and times without &amp;quot;:&amp;quot; which appears to be consistent with the iCalendar spec due to:&lt;br /&gt;
** iCalendar section 4.3.4 Date - &amp;quot;date-value         = date-fullyear date-month date-mday&amp;quot; (no separators)&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
As a result Apple iCal 2.0.5 ignores date and date-time properties (e.g. DTSTART, DTEND, etc.) when date components (year, month, day) are separated by &amp;quot;-&amp;quot; or when time components (hours, minutes, seconds) are separated by &amp;quot;:&amp;quot; (both as allowed by [[ISO8601]] and required by [[RFC3339]]).&lt;br /&gt;
&lt;br /&gt;
However per [[accessibility]] research, dates and times with separators are more readable and accessible, and consequently explicitly allowed by hCalendar. &lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date and date-time properties (e.g. DTSTART, DTEND, etc.) with separators, and remove separators when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires date-times with seconds explicitly specified.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times with the seconds explicitly specified, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
However in practice (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often omit the seconds because when they are &amp;quot;00&amp;quot; for simplicity and easier/quicker readability.&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) without the seconds explicitly specified, and imply &amp;quot;00&amp;quot; seconds when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires floating or UTC date-times.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times which are either floating (no time zone) or explicitly specified to be UTC and ignores date-times which use timezone offsets, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators) and: &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;The form of time with UTC offset MUST NOT be used. For example, the following is NOT VALID for a time value:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;230000-0800        ;Invalid time format&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, in practice  (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often state the timezone offset in order to make the human visible time consistent with the machine readable time for easier verification (minimize DRY divergence probability).&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors  which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) with an explicit timezone offset, and convert the specified date-time value to a UTC value when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
All hCalendar processor requirements above should be documented thoroughly in [[hcalendar-parsing]].&lt;br /&gt;
&lt;br /&gt;
==== Apple Calendar.app 8.0 (2092.3) ====&lt;br /&gt;
&lt;br /&gt;
Timezone handling: Calendar.app is incompatible with timezone-aware dates produced by the Python iCalendar implementation which puts quotation marks around TZIDs. See [https://gist.github.com/tommorris/0aca78d680804c04bf1e35318893a34a this gist] for details.&lt;br /&gt;
&lt;br /&gt;
=== KOrganizer ===&lt;br /&gt;
* platforms: All Linux, *BSD, etc. (Wherever KDE runs)&lt;br /&gt;
* supports the &amp;quot;webcal:&amp;quot; protocol, as well as &amp;quot;http:&amp;quot;, &amp;quot;ftp:&amp;quot;, &amp;quot;fish:&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
=== Evolution ===&lt;br /&gt;
* platform: Fedora Core 3&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
[http://www.mozilla.org/projects/calendar/sunbird.html Mozilla Sunbird]&lt;br /&gt;
* platforms: Windows XP, others?&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Outlook ===&lt;br /&gt;
==== Microsoft Outlook 2007 ====&lt;br /&gt;
Microsoft Outlook 2007 (MSOutlook2k7)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing and subscribing to .ics files,  &amp;quot;webcal:&amp;quot; URLs, etc.&lt;br /&gt;
&lt;br /&gt;
==== Microsoft Outlook 2003 ====&lt;br /&gt;
Microsoft Outlook 2003 (MSOutlook2k3)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing .ics files&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 general comments =====&lt;br /&gt;
For importing, MSOutlook2k3 apparently requires VEVENTS to have &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DTSTAMP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;METHOD&amp;lt;/code&amp;gt; properties. ('''citation/platform/date tested info needed''').  If any of the three is not present, returns this message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This error can appear if you have attempted to save a recurring Lunar appointment in iCalendar format.&lt;br /&gt;
To avoid this error, set the appointment option to Gregorian instead of Lunar.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some testing, this seems to be the generic message to indicate a problem with event import.&lt;br /&gt;
&lt;br /&gt;
No such restriction is placed on [[rfc-2445#vCalendar|vCalendar 1.0]] events. So, if &amp;lt;code&amp;gt;VERSION:1.0&amp;lt;/code&amp;gt; is output instead of &amp;lt;code&amp;gt;VERSION:2.0&amp;lt;/code&amp;gt;, the only required field is &amp;lt;code&amp;gt;DTSTART&amp;lt;/code&amp;gt;. &lt;br /&gt;
Note that &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; property may be omitted. In this case, value inferred as &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* UID and DTSTAMP is required for Outlook to import. [[User:GeoffWebb|GeoffWebb]] 14:03, 9 Dec 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Potential Security Related Issue w/ Outlook 2003 and Standard Account =====&lt;br /&gt;
&lt;br /&gt;
I've been all over the web tracing the &amp;quot;Lunar&amp;quot; exception.&lt;br /&gt;
I believe I'm come across another lunar permutation.&lt;br /&gt;
I have an XP box running Outlook 2003 SP3 with Admin privileges, and I have an XP box running Outlook 2003 SP3 (same build number) running under a standard account.&lt;br /&gt;
The .ics will try to import correctly under the Admin account (aka, it will prompt you for acceptance, everything working as expected).  HOWEVER, the same .ics file will throw the &amp;quot;lunar&amp;quot; exception on the ~standard~ account.&lt;br /&gt;
&lt;br /&gt;
Here is my environment information just in case you're bumping your head on this issue.&lt;br /&gt;
&lt;br /&gt;
Outlook 2003 with SP3 Build Number : 11.8325.8329&lt;br /&gt;
&lt;br /&gt;
.ics file contents (aka, &amp;quot;known to work&amp;quot; file contents under the Admin account)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
PRODID:www.testMeiCalendar.net&lt;br /&gt;
METHOD:REQUEST&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20101231T230000&lt;br /&gt;
DTEND:20110101T010000&lt;br /&gt;
SUMMARY:New Years Eve Reminder&lt;br /&gt;
LOCATION:Downtown&lt;br /&gt;
DESCRIPTION:Let's get together for New Years Eve&lt;br /&gt;
UID:ABCD1234&lt;br /&gt;
SEQUENCE:0&lt;br /&gt;
DTSTAMP:20101125T112600&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be honest, I probably will just abandon trying to use it for this project because of this issue.&lt;br /&gt;
But I wanted to report it, so someone doesn't waste a day thinking the issue is the contents of the .ics file.&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable iCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
METHOD:PUBLISH&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:0&lt;br /&gt;
DTSTAMP:20060601T080000&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable vCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fantastical ===&lt;br /&gt;
&lt;br /&gt;
* Platform: Mac and iOS&lt;br /&gt;
* supports importing ICS files and subscribing using webcal (tested using Facebok URL)&lt;br /&gt;
* Implemented using libical&lt;br /&gt;
&lt;br /&gt;
== notes ==&lt;br /&gt;
* the &amp;quot;webcal:&amp;quot; URL protocol scheme is non-standard.&lt;br /&gt;
&lt;br /&gt;
== contributors==&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
* [[DimitriGlazkov|Dimitri Glazkov]]&lt;br /&gt;
* [[User:TomMorris|Tom Morris]]&lt;br /&gt;
&lt;br /&gt;
== related pages ==&lt;br /&gt;
{{hcalendar-related-pages}}&lt;/div&gt;</summary>
		<author><name>D</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70747</id>
		<title>icalendar-implementations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70747"/>
		<updated>2025-01-30T13:30:08Z</updated>

		<summary type="html">&lt;p&gt;D: /* Python iCalendar */ Remove this section: its content is merged into the previous section.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; iCalendar implementations &amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
This is a list of calendar programs, applications and services that support the iCalendar {{RFC2445}} standard.&lt;br /&gt;
&lt;br /&gt;
In addition, please note any quirks or bugs with implementations' handling of iCalendar - we've already discovered some in the development of [[hcalendar|hCalendar]] and proxies like X2V.&lt;br /&gt;
&lt;br /&gt;
== libraries ==&lt;br /&gt;
&lt;br /&gt;
=== C libical ===&lt;br /&gt;
Open source C-based implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/libical/libical Github]&lt;br /&gt;
&lt;br /&gt;
=== Python icalendar ===&lt;br /&gt;
Python implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://pypi.python.org/pypi/icalendar/ PyPI]&lt;br /&gt;
&lt;br /&gt;
=== Python vobject ===&lt;br /&gt;
Apache 2.0-licensed Python iCalendar parser/generator library package, which also supports vCard and hCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/py-vobject/vobject GitHub]&lt;br /&gt;
* [https://pypi.org/project/vobject/ PyPI]&lt;br /&gt;
&lt;br /&gt;
== services ==&lt;br /&gt;
=== Google Calendar ===&lt;br /&gt;
http://calendar.google.com/&lt;br /&gt;
* supports subscribing to &amp;quot;webcal:&amp;quot; and &amp;quot;http:&amp;quot; URLs to iCalendar&lt;br /&gt;
&lt;br /&gt;
== products ==&lt;br /&gt;
=== Apple Calendar.app ===&lt;br /&gt;
Apple Calendar.app, formerly known as iCal.&lt;br /&gt;
* platform: OSX&lt;br /&gt;
* handles &amp;quot;webcal:&amp;quot; URLs and supports subscribing to events.&lt;br /&gt;
&lt;br /&gt;
==== Apple iCal 2.0.5 ====&lt;br /&gt;
Apple iCal.app 2.0.5 build 1069 (AppleiCal205)&lt;br /&gt;
&lt;br /&gt;
===== iCal 2.0.5 notes =====&lt;br /&gt;
* '''Requires dates and date-times without separators.''' Apple iCal 2.0.5 (and probably other versions) appears to require dates without &amp;quot;-&amp;quot; and times without &amp;quot;:&amp;quot; which appears to be consistent with the iCalendar spec due to:&lt;br /&gt;
** iCalendar section 4.3.4 Date - &amp;quot;date-value         = date-fullyear date-month date-mday&amp;quot; (no separators)&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
As a result Apple iCal 2.0.5 ignores date and date-time properties (e.g. DTSTART, DTEND, etc.) when date components (year, month, day) are separated by &amp;quot;-&amp;quot; or when time components (hours, minutes, seconds) are separated by &amp;quot;:&amp;quot; (both as allowed by [[ISO8601]] and required by [[RFC3339]]).&lt;br /&gt;
&lt;br /&gt;
However per [[accessibility]] research, dates and times with separators are more readable and accessible, and consequently explicitly allowed by hCalendar. &lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date and date-time properties (e.g. DTSTART, DTEND, etc.) with separators, and remove separators when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires date-times with seconds explicitly specified.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times with the seconds explicitly specified, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
However in practice (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often omit the seconds because when they are &amp;quot;00&amp;quot; for simplicity and easier/quicker readability.&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) without the seconds explicitly specified, and imply &amp;quot;00&amp;quot; seconds when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires floating or UTC date-times.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times which are either floating (no time zone) or explicitly specified to be UTC and ignores date-times which use timezone offsets, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators) and: &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;The form of time with UTC offset MUST NOT be used. For example, the following is NOT VALID for a time value:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;230000-0800        ;Invalid time format&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, in practice  (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often state the timezone offset in order to make the human visible time consistent with the machine readable time for easier verification (minimize DRY divergence probability).&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors  which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) with an explicit timezone offset, and convert the specified date-time value to a UTC value when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
All hCalendar processor requirements above should be documented thoroughly in [[hcalendar-parsing]].&lt;br /&gt;
&lt;br /&gt;
==== Apple Calendar.app 8.0 (2092.3) ====&lt;br /&gt;
&lt;br /&gt;
Timezone handling: Calendar.app is incompatible with timezone-aware dates produced by the Python iCalendar implementation which puts quotation marks around TZIDs. See [https://gist.github.com/tommorris/0aca78d680804c04bf1e35318893a34a this gist] for details.&lt;br /&gt;
&lt;br /&gt;
=== KOrganizer ===&lt;br /&gt;
* platforms: All Linux, *BSD, etc. (Wherever KDE runs)&lt;br /&gt;
* supports the &amp;quot;webcal:&amp;quot; protocol, as well as &amp;quot;http:&amp;quot;, &amp;quot;ftp:&amp;quot;, &amp;quot;fish:&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
=== Evolution ===&lt;br /&gt;
* platform: Fedora Core 3&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
[http://www.mozilla.org/projects/calendar/sunbird.html Mozilla Sunbird]&lt;br /&gt;
* platforms: Windows XP, others?&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Outlook ===&lt;br /&gt;
==== Microsoft Outlook 2007 ====&lt;br /&gt;
Microsoft Outlook 2007 (MSOutlook2k7)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing and subscribing to .ics files,  &amp;quot;webcal:&amp;quot; URLs, etc.&lt;br /&gt;
&lt;br /&gt;
==== Microsoft Outlook 2003 ====&lt;br /&gt;
Microsoft Outlook 2003 (MSOutlook2k3)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing .ics files&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 general comments =====&lt;br /&gt;
For importing, MSOutlook2k3 apparently requires VEVENTS to have &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DTSTAMP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;METHOD&amp;lt;/code&amp;gt; properties. ('''citation/platform/date tested info needed''').  If any of the three is not present, returns this message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This error can appear if you have attempted to save a recurring Lunar appointment in iCalendar format.&lt;br /&gt;
To avoid this error, set the appointment option to Gregorian instead of Lunar.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some testing, this seems to be the generic message to indicate a problem with event import.&lt;br /&gt;
&lt;br /&gt;
No such restriction is placed on [[rfc-2445#vCalendar|vCalendar 1.0]] events. So, if &amp;lt;code&amp;gt;VERSION:1.0&amp;lt;/code&amp;gt; is output instead of &amp;lt;code&amp;gt;VERSION:2.0&amp;lt;/code&amp;gt;, the only required field is &amp;lt;code&amp;gt;DTSTART&amp;lt;/code&amp;gt;. &lt;br /&gt;
Note that &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; property may be omitted. In this case, value inferred as &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* UID and DTSTAMP is required for Outlook to import. [[User:GeoffWebb|GeoffWebb]] 14:03, 9 Dec 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Potential Security Related Issue w/ Outlook 2003 and Standard Account =====&lt;br /&gt;
&lt;br /&gt;
I've been all over the web tracing the &amp;quot;Lunar&amp;quot; exception.&lt;br /&gt;
I believe I'm come across another lunar permutation.&lt;br /&gt;
I have an XP box running Outlook 2003 SP3 with Admin privileges, and I have an XP box running Outlook 2003 SP3 (same build number) running under a standard account.&lt;br /&gt;
The .ics will try to import correctly under the Admin account (aka, it will prompt you for acceptance, everything working as expected).  HOWEVER, the same .ics file will throw the &amp;quot;lunar&amp;quot; exception on the ~standard~ account.&lt;br /&gt;
&lt;br /&gt;
Here is my environment information just in case you're bumping your head on this issue.&lt;br /&gt;
&lt;br /&gt;
Outlook 2003 with SP3 Build Number : 11.8325.8329&lt;br /&gt;
&lt;br /&gt;
.ics file contents (aka, &amp;quot;known to work&amp;quot; file contents under the Admin account)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
PRODID:www.testMeiCalendar.net&lt;br /&gt;
METHOD:REQUEST&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20101231T230000&lt;br /&gt;
DTEND:20110101T010000&lt;br /&gt;
SUMMARY:New Years Eve Reminder&lt;br /&gt;
LOCATION:Downtown&lt;br /&gt;
DESCRIPTION:Let's get together for New Years Eve&lt;br /&gt;
UID:ABCD1234&lt;br /&gt;
SEQUENCE:0&lt;br /&gt;
DTSTAMP:20101125T112600&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be honest, I probably will just abandon trying to use it for this project because of this issue.&lt;br /&gt;
But I wanted to report it, so someone doesn't waste a day thinking the issue is the contents of the .ics file.&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable iCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
METHOD:PUBLISH&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:0&lt;br /&gt;
DTSTAMP:20060601T080000&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable vCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fantastical ===&lt;br /&gt;
&lt;br /&gt;
* Platform: Mac and iOS&lt;br /&gt;
* supports importing ICS files and subscribing using webcal (tested using Facebok URL)&lt;br /&gt;
* Implemented using libical&lt;br /&gt;
&lt;br /&gt;
== notes ==&lt;br /&gt;
* the &amp;quot;webcal:&amp;quot; URL protocol scheme is non-standard.&lt;br /&gt;
&lt;br /&gt;
== contributors==&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
* [[DimitriGlazkov|Dimitri Glazkov]]&lt;br /&gt;
* [[User:TomMorris|Tom Morris]]&lt;br /&gt;
&lt;br /&gt;
== related pages ==&lt;br /&gt;
{{hcalendar-related-pages}}&lt;/div&gt;</summary>
		<author><name>D</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70746</id>
		<title>icalendar-implementations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70746"/>
		<updated>2025-01-30T13:29:24Z</updated>

		<summary type="html">&lt;p&gt;D: /* libraries */ Merge Python iCalendar into this section.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; iCalendar implementations &amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
This is a list of calendar programs, applications and services that support the iCalendar {{RFC2445}} standard.&lt;br /&gt;
&lt;br /&gt;
In addition, please note any quirks or bugs with implementations' handling of iCalendar - we've already discovered some in the development of [[hcalendar|hCalendar]] and proxies like X2V.&lt;br /&gt;
&lt;br /&gt;
== libraries ==&lt;br /&gt;
&lt;br /&gt;
=== C libical ===&lt;br /&gt;
Open source C-based implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/libical/libical Github]&lt;br /&gt;
&lt;br /&gt;
=== Python icalendar ===&lt;br /&gt;
Python implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://pypi.python.org/pypi/icalendar/ PyPI]&lt;br /&gt;
&lt;br /&gt;
=== Python vobject ===&lt;br /&gt;
Apache 2.0-licensed Python iCalendar parser/generator library package, which also supports vCard and hCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/py-vobject/vobject GitHub]&lt;br /&gt;
* [https://pypi.org/project/vobject/ PyPI]&lt;br /&gt;
&lt;br /&gt;
== Python iCalendar ==&lt;br /&gt;
Python implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://pypi.python.org/pypi/icalendar/ PyPI]&lt;br /&gt;
&lt;br /&gt;
== services ==&lt;br /&gt;
=== Google Calendar ===&lt;br /&gt;
http://calendar.google.com/&lt;br /&gt;
* supports subscribing to &amp;quot;webcal:&amp;quot; and &amp;quot;http:&amp;quot; URLs to iCalendar&lt;br /&gt;
&lt;br /&gt;
== products ==&lt;br /&gt;
=== Apple Calendar.app ===&lt;br /&gt;
Apple Calendar.app, formerly known as iCal.&lt;br /&gt;
* platform: OSX&lt;br /&gt;
* handles &amp;quot;webcal:&amp;quot; URLs and supports subscribing to events.&lt;br /&gt;
&lt;br /&gt;
==== Apple iCal 2.0.5 ====&lt;br /&gt;
Apple iCal.app 2.0.5 build 1069 (AppleiCal205)&lt;br /&gt;
&lt;br /&gt;
===== iCal 2.0.5 notes =====&lt;br /&gt;
* '''Requires dates and date-times without separators.''' Apple iCal 2.0.5 (and probably other versions) appears to require dates without &amp;quot;-&amp;quot; and times without &amp;quot;:&amp;quot; which appears to be consistent with the iCalendar spec due to:&lt;br /&gt;
** iCalendar section 4.3.4 Date - &amp;quot;date-value         = date-fullyear date-month date-mday&amp;quot; (no separators)&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
As a result Apple iCal 2.0.5 ignores date and date-time properties (e.g. DTSTART, DTEND, etc.) when date components (year, month, day) are separated by &amp;quot;-&amp;quot; or when time components (hours, minutes, seconds) are separated by &amp;quot;:&amp;quot; (both as allowed by [[ISO8601]] and required by [[RFC3339]]).&lt;br /&gt;
&lt;br /&gt;
However per [[accessibility]] research, dates and times with separators are more readable and accessible, and consequently explicitly allowed by hCalendar. &lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date and date-time properties (e.g. DTSTART, DTEND, etc.) with separators, and remove separators when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires date-times with seconds explicitly specified.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times with the seconds explicitly specified, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
However in practice (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often omit the seconds because when they are &amp;quot;00&amp;quot; for simplicity and easier/quicker readability.&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) without the seconds explicitly specified, and imply &amp;quot;00&amp;quot; seconds when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires floating or UTC date-times.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times which are either floating (no time zone) or explicitly specified to be UTC and ignores date-times which use timezone offsets, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators) and: &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;The form of time with UTC offset MUST NOT be used. For example, the following is NOT VALID for a time value:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;230000-0800        ;Invalid time format&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, in practice  (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often state the timezone offset in order to make the human visible time consistent with the machine readable time for easier verification (minimize DRY divergence probability).&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors  which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) with an explicit timezone offset, and convert the specified date-time value to a UTC value when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
All hCalendar processor requirements above should be documented thoroughly in [[hcalendar-parsing]].&lt;br /&gt;
&lt;br /&gt;
==== Apple Calendar.app 8.0 (2092.3) ====&lt;br /&gt;
&lt;br /&gt;
Timezone handling: Calendar.app is incompatible with timezone-aware dates produced by the Python iCalendar implementation which puts quotation marks around TZIDs. See [https://gist.github.com/tommorris/0aca78d680804c04bf1e35318893a34a this gist] for details.&lt;br /&gt;
&lt;br /&gt;
=== KOrganizer ===&lt;br /&gt;
* platforms: All Linux, *BSD, etc. (Wherever KDE runs)&lt;br /&gt;
* supports the &amp;quot;webcal:&amp;quot; protocol, as well as &amp;quot;http:&amp;quot;, &amp;quot;ftp:&amp;quot;, &amp;quot;fish:&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
=== Evolution ===&lt;br /&gt;
* platform: Fedora Core 3&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
[http://www.mozilla.org/projects/calendar/sunbird.html Mozilla Sunbird]&lt;br /&gt;
* platforms: Windows XP, others?&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Outlook ===&lt;br /&gt;
==== Microsoft Outlook 2007 ====&lt;br /&gt;
Microsoft Outlook 2007 (MSOutlook2k7)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing and subscribing to .ics files,  &amp;quot;webcal:&amp;quot; URLs, etc.&lt;br /&gt;
&lt;br /&gt;
==== Microsoft Outlook 2003 ====&lt;br /&gt;
Microsoft Outlook 2003 (MSOutlook2k3)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing .ics files&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 general comments =====&lt;br /&gt;
For importing, MSOutlook2k3 apparently requires VEVENTS to have &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DTSTAMP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;METHOD&amp;lt;/code&amp;gt; properties. ('''citation/platform/date tested info needed''').  If any of the three is not present, returns this message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This error can appear if you have attempted to save a recurring Lunar appointment in iCalendar format.&lt;br /&gt;
To avoid this error, set the appointment option to Gregorian instead of Lunar.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some testing, this seems to be the generic message to indicate a problem with event import.&lt;br /&gt;
&lt;br /&gt;
No such restriction is placed on [[rfc-2445#vCalendar|vCalendar 1.0]] events. So, if &amp;lt;code&amp;gt;VERSION:1.0&amp;lt;/code&amp;gt; is output instead of &amp;lt;code&amp;gt;VERSION:2.0&amp;lt;/code&amp;gt;, the only required field is &amp;lt;code&amp;gt;DTSTART&amp;lt;/code&amp;gt;. &lt;br /&gt;
Note that &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; property may be omitted. In this case, value inferred as &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* UID and DTSTAMP is required for Outlook to import. [[User:GeoffWebb|GeoffWebb]] 14:03, 9 Dec 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Potential Security Related Issue w/ Outlook 2003 and Standard Account =====&lt;br /&gt;
&lt;br /&gt;
I've been all over the web tracing the &amp;quot;Lunar&amp;quot; exception.&lt;br /&gt;
I believe I'm come across another lunar permutation.&lt;br /&gt;
I have an XP box running Outlook 2003 SP3 with Admin privileges, and I have an XP box running Outlook 2003 SP3 (same build number) running under a standard account.&lt;br /&gt;
The .ics will try to import correctly under the Admin account (aka, it will prompt you for acceptance, everything working as expected).  HOWEVER, the same .ics file will throw the &amp;quot;lunar&amp;quot; exception on the ~standard~ account.&lt;br /&gt;
&lt;br /&gt;
Here is my environment information just in case you're bumping your head on this issue.&lt;br /&gt;
&lt;br /&gt;
Outlook 2003 with SP3 Build Number : 11.8325.8329&lt;br /&gt;
&lt;br /&gt;
.ics file contents (aka, &amp;quot;known to work&amp;quot; file contents under the Admin account)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
PRODID:www.testMeiCalendar.net&lt;br /&gt;
METHOD:REQUEST&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20101231T230000&lt;br /&gt;
DTEND:20110101T010000&lt;br /&gt;
SUMMARY:New Years Eve Reminder&lt;br /&gt;
LOCATION:Downtown&lt;br /&gt;
DESCRIPTION:Let's get together for New Years Eve&lt;br /&gt;
UID:ABCD1234&lt;br /&gt;
SEQUENCE:0&lt;br /&gt;
DTSTAMP:20101125T112600&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be honest, I probably will just abandon trying to use it for this project because of this issue.&lt;br /&gt;
But I wanted to report it, so someone doesn't waste a day thinking the issue is the contents of the .ics file.&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable iCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
METHOD:PUBLISH&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:0&lt;br /&gt;
DTSTAMP:20060601T080000&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable vCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fantastical ===&lt;br /&gt;
&lt;br /&gt;
* Platform: Mac and iOS&lt;br /&gt;
* supports importing ICS files and subscribing using webcal (tested using Facebok URL)&lt;br /&gt;
* Implemented using libical&lt;br /&gt;
&lt;br /&gt;
== notes ==&lt;br /&gt;
* the &amp;quot;webcal:&amp;quot; URL protocol scheme is non-standard.&lt;br /&gt;
&lt;br /&gt;
== contributors==&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
* [[DimitriGlazkov|Dimitri Glazkov]]&lt;br /&gt;
* [[User:TomMorris|Tom Morris]]&lt;br /&gt;
&lt;br /&gt;
== related pages ==&lt;br /&gt;
{{hcalendar-related-pages}}&lt;/div&gt;</summary>
		<author><name>D</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70745</id>
		<title>icalendar-implementations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70745"/>
		<updated>2025-01-30T13:27:28Z</updated>

		<summary type="html">&lt;p&gt;D: /* libraries */ Highlight language&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; iCalendar implementations &amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
This is a list of calendar programs, applications and services that support the iCalendar {{RFC2445}} standard.&lt;br /&gt;
&lt;br /&gt;
In addition, please note any quirks or bugs with implementations' handling of iCalendar - we've already discovered some in the development of [[hcalendar|hCalendar]] and proxies like X2V.&lt;br /&gt;
&lt;br /&gt;
== libraries ==&lt;br /&gt;
&lt;br /&gt;
=== C libical ===&lt;br /&gt;
Open source C-based implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/libical/libical Github]&lt;br /&gt;
&lt;br /&gt;
=== Python vobject ===&lt;br /&gt;
Apache 2.0-licensed Python iCalendar parser/generator library package&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/py-vobject/vobject GitHub]&lt;br /&gt;
* [https://pypi.org/project/vobject/ PyPI]&lt;br /&gt;
&lt;br /&gt;
== Python iCalendar ==&lt;br /&gt;
Python implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://pypi.python.org/pypi/icalendar/ PyPI]&lt;br /&gt;
&lt;br /&gt;
== services ==&lt;br /&gt;
=== Google Calendar ===&lt;br /&gt;
http://calendar.google.com/&lt;br /&gt;
* supports subscribing to &amp;quot;webcal:&amp;quot; and &amp;quot;http:&amp;quot; URLs to iCalendar&lt;br /&gt;
&lt;br /&gt;
== products ==&lt;br /&gt;
=== Apple Calendar.app ===&lt;br /&gt;
Apple Calendar.app, formerly known as iCal.&lt;br /&gt;
* platform: OSX&lt;br /&gt;
* handles &amp;quot;webcal:&amp;quot; URLs and supports subscribing to events.&lt;br /&gt;
&lt;br /&gt;
==== Apple iCal 2.0.5 ====&lt;br /&gt;
Apple iCal.app 2.0.5 build 1069 (AppleiCal205)&lt;br /&gt;
&lt;br /&gt;
===== iCal 2.0.5 notes =====&lt;br /&gt;
* '''Requires dates and date-times without separators.''' Apple iCal 2.0.5 (and probably other versions) appears to require dates without &amp;quot;-&amp;quot; and times without &amp;quot;:&amp;quot; which appears to be consistent with the iCalendar spec due to:&lt;br /&gt;
** iCalendar section 4.3.4 Date - &amp;quot;date-value         = date-fullyear date-month date-mday&amp;quot; (no separators)&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
As a result Apple iCal 2.0.5 ignores date and date-time properties (e.g. DTSTART, DTEND, etc.) when date components (year, month, day) are separated by &amp;quot;-&amp;quot; or when time components (hours, minutes, seconds) are separated by &amp;quot;:&amp;quot; (both as allowed by [[ISO8601]] and required by [[RFC3339]]).&lt;br /&gt;
&lt;br /&gt;
However per [[accessibility]] research, dates and times with separators are more readable and accessible, and consequently explicitly allowed by hCalendar. &lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date and date-time properties (e.g. DTSTART, DTEND, etc.) with separators, and remove separators when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires date-times with seconds explicitly specified.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times with the seconds explicitly specified, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
However in practice (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often omit the seconds because when they are &amp;quot;00&amp;quot; for simplicity and easier/quicker readability.&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) without the seconds explicitly specified, and imply &amp;quot;00&amp;quot; seconds when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires floating or UTC date-times.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times which are either floating (no time zone) or explicitly specified to be UTC and ignores date-times which use timezone offsets, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators) and: &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;The form of time with UTC offset MUST NOT be used. For example, the following is NOT VALID for a time value:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;230000-0800        ;Invalid time format&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, in practice  (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often state the timezone offset in order to make the human visible time consistent with the machine readable time for easier verification (minimize DRY divergence probability).&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors  which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) with an explicit timezone offset, and convert the specified date-time value to a UTC value when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
All hCalendar processor requirements above should be documented thoroughly in [[hcalendar-parsing]].&lt;br /&gt;
&lt;br /&gt;
==== Apple Calendar.app 8.0 (2092.3) ====&lt;br /&gt;
&lt;br /&gt;
Timezone handling: Calendar.app is incompatible with timezone-aware dates produced by the Python iCalendar implementation which puts quotation marks around TZIDs. See [https://gist.github.com/tommorris/0aca78d680804c04bf1e35318893a34a this gist] for details.&lt;br /&gt;
&lt;br /&gt;
=== KOrganizer ===&lt;br /&gt;
* platforms: All Linux, *BSD, etc. (Wherever KDE runs)&lt;br /&gt;
* supports the &amp;quot;webcal:&amp;quot; protocol, as well as &amp;quot;http:&amp;quot;, &amp;quot;ftp:&amp;quot;, &amp;quot;fish:&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
=== Evolution ===&lt;br /&gt;
* platform: Fedora Core 3&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
[http://www.mozilla.org/projects/calendar/sunbird.html Mozilla Sunbird]&lt;br /&gt;
* platforms: Windows XP, others?&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Outlook ===&lt;br /&gt;
==== Microsoft Outlook 2007 ====&lt;br /&gt;
Microsoft Outlook 2007 (MSOutlook2k7)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing and subscribing to .ics files,  &amp;quot;webcal:&amp;quot; URLs, etc.&lt;br /&gt;
&lt;br /&gt;
==== Microsoft Outlook 2003 ====&lt;br /&gt;
Microsoft Outlook 2003 (MSOutlook2k3)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing .ics files&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 general comments =====&lt;br /&gt;
For importing, MSOutlook2k3 apparently requires VEVENTS to have &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DTSTAMP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;METHOD&amp;lt;/code&amp;gt; properties. ('''citation/platform/date tested info needed''').  If any of the three is not present, returns this message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This error can appear if you have attempted to save a recurring Lunar appointment in iCalendar format.&lt;br /&gt;
To avoid this error, set the appointment option to Gregorian instead of Lunar.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some testing, this seems to be the generic message to indicate a problem with event import.&lt;br /&gt;
&lt;br /&gt;
No such restriction is placed on [[rfc-2445#vCalendar|vCalendar 1.0]] events. So, if &amp;lt;code&amp;gt;VERSION:1.0&amp;lt;/code&amp;gt; is output instead of &amp;lt;code&amp;gt;VERSION:2.0&amp;lt;/code&amp;gt;, the only required field is &amp;lt;code&amp;gt;DTSTART&amp;lt;/code&amp;gt;. &lt;br /&gt;
Note that &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; property may be omitted. In this case, value inferred as &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* UID and DTSTAMP is required for Outlook to import. [[User:GeoffWebb|GeoffWebb]] 14:03, 9 Dec 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Potential Security Related Issue w/ Outlook 2003 and Standard Account =====&lt;br /&gt;
&lt;br /&gt;
I've been all over the web tracing the &amp;quot;Lunar&amp;quot; exception.&lt;br /&gt;
I believe I'm come across another lunar permutation.&lt;br /&gt;
I have an XP box running Outlook 2003 SP3 with Admin privileges, and I have an XP box running Outlook 2003 SP3 (same build number) running under a standard account.&lt;br /&gt;
The .ics will try to import correctly under the Admin account (aka, it will prompt you for acceptance, everything working as expected).  HOWEVER, the same .ics file will throw the &amp;quot;lunar&amp;quot; exception on the ~standard~ account.&lt;br /&gt;
&lt;br /&gt;
Here is my environment information just in case you're bumping your head on this issue.&lt;br /&gt;
&lt;br /&gt;
Outlook 2003 with SP3 Build Number : 11.8325.8329&lt;br /&gt;
&lt;br /&gt;
.ics file contents (aka, &amp;quot;known to work&amp;quot; file contents under the Admin account)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
PRODID:www.testMeiCalendar.net&lt;br /&gt;
METHOD:REQUEST&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20101231T230000&lt;br /&gt;
DTEND:20110101T010000&lt;br /&gt;
SUMMARY:New Years Eve Reminder&lt;br /&gt;
LOCATION:Downtown&lt;br /&gt;
DESCRIPTION:Let's get together for New Years Eve&lt;br /&gt;
UID:ABCD1234&lt;br /&gt;
SEQUENCE:0&lt;br /&gt;
DTSTAMP:20101125T112600&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be honest, I probably will just abandon trying to use it for this project because of this issue.&lt;br /&gt;
But I wanted to report it, so someone doesn't waste a day thinking the issue is the contents of the .ics file.&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable iCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
METHOD:PUBLISH&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:0&lt;br /&gt;
DTSTAMP:20060601T080000&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable vCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fantastical ===&lt;br /&gt;
&lt;br /&gt;
* Platform: Mac and iOS&lt;br /&gt;
* supports importing ICS files and subscribing using webcal (tested using Facebok URL)&lt;br /&gt;
* Implemented using libical&lt;br /&gt;
&lt;br /&gt;
== notes ==&lt;br /&gt;
* the &amp;quot;webcal:&amp;quot; URL protocol scheme is non-standard.&lt;br /&gt;
&lt;br /&gt;
== contributors==&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
* [[DimitriGlazkov|Dimitri Glazkov]]&lt;br /&gt;
* [[User:TomMorris|Tom Morris]]&lt;br /&gt;
&lt;br /&gt;
== related pages ==&lt;br /&gt;
{{hcalendar-related-pages}}&lt;/div&gt;</summary>
		<author><name>D</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70744</id>
		<title>icalendar-implementations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=70744"/>
		<updated>2025-01-30T11:55:14Z</updated>

		<summary type="html">&lt;p&gt;D: /* libraries */ Add py-vobject&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; iCalendar implementations &amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
This is a list of calendar programs, applications and services that support the iCalendar {{RFC2445}} standard.&lt;br /&gt;
&lt;br /&gt;
In addition, please note any quirks or bugs with implementations' handling of iCalendar - we've already discovered some in the development of [[hcalendar|hCalendar]] and proxies like X2V.&lt;br /&gt;
&lt;br /&gt;
== libraries ==&lt;br /&gt;
&lt;br /&gt;
=== libical ===&lt;br /&gt;
Open source C-based implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/libical/libical Github]&lt;br /&gt;
&lt;br /&gt;
=== vobject ===&lt;br /&gt;
Apache 2.0-licensed Python iCalendar parser/generator library package&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/py-vobject/vobject GitHub]&lt;br /&gt;
* [https://pypi.org/project/vobject/ PyPI]&lt;br /&gt;
&lt;br /&gt;
== Python iCalendar ==&lt;br /&gt;
Python implementation of iCalendar.&lt;br /&gt;
&lt;br /&gt;
* [https://pypi.python.org/pypi/icalendar/ PyPI]&lt;br /&gt;
&lt;br /&gt;
== services ==&lt;br /&gt;
=== Google Calendar ===&lt;br /&gt;
http://calendar.google.com/&lt;br /&gt;
* supports subscribing to &amp;quot;webcal:&amp;quot; and &amp;quot;http:&amp;quot; URLs to iCalendar&lt;br /&gt;
&lt;br /&gt;
== products ==&lt;br /&gt;
=== Apple Calendar.app ===&lt;br /&gt;
Apple Calendar.app, formerly known as iCal.&lt;br /&gt;
* platform: OSX&lt;br /&gt;
* handles &amp;quot;webcal:&amp;quot; URLs and supports subscribing to events.&lt;br /&gt;
&lt;br /&gt;
==== Apple iCal 2.0.5 ====&lt;br /&gt;
Apple iCal.app 2.0.5 build 1069 (AppleiCal205)&lt;br /&gt;
&lt;br /&gt;
===== iCal 2.0.5 notes =====&lt;br /&gt;
* '''Requires dates and date-times without separators.''' Apple iCal 2.0.5 (and probably other versions) appears to require dates without &amp;quot;-&amp;quot; and times without &amp;quot;:&amp;quot; which appears to be consistent with the iCalendar spec due to:&lt;br /&gt;
** iCalendar section 4.3.4 Date - &amp;quot;date-value         = date-fullyear date-month date-mday&amp;quot; (no separators)&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
As a result Apple iCal 2.0.5 ignores date and date-time properties (e.g. DTSTART, DTEND, etc.) when date components (year, month, day) are separated by &amp;quot;-&amp;quot; or when time components (hours, minutes, seconds) are separated by &amp;quot;:&amp;quot; (both as allowed by [[ISO8601]] and required by [[RFC3339]]).&lt;br /&gt;
&lt;br /&gt;
However per [[accessibility]] research, dates and times with separators are more readable and accessible, and consequently explicitly allowed by hCalendar. &lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date and date-time properties (e.g. DTSTART, DTEND, etc.) with separators, and remove separators when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires date-times with seconds explicitly specified.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times with the seconds explicitly specified, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators)&lt;br /&gt;
&lt;br /&gt;
However in practice (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often omit the seconds because when they are &amp;quot;00&amp;quot; for simplicity and easier/quicker readability.&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) without the seconds explicitly specified, and imply &amp;quot;00&amp;quot; seconds when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
* '''Requires floating or UTC date-times.''' Apple iCal 2.0.5 (and probably other versions) appears to require date-times which are either floating (no time zone) or explicitly specified to be UTC and ignores date-times which use timezone offsets, which appears to be consistent with the iCalendar spec:&lt;br /&gt;
** iCalendar section 4.3.12 Time - &amp;quot;time               = time-hour time-minute time-second [time-utc]&amp;quot; (no separators) and: &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;The form of time with UTC offset MUST NOT be used. For example, the following is NOT VALID for a time value:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;230000-0800        ;Invalid time format&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, in practice  (see [[hcalendar-examples-in-wild]]) hCalendar date-time properties often state the timezone offset in order to make the human visible time consistent with the machine readable time for easier verification (minimize DRY divergence probability).&lt;br /&gt;
&lt;br /&gt;
Thus hCalendar processors  which generate iCalendar files MUST handle parsing hCalendar date-time properties (e.g. DTSTART, DTEND, etc.) with an explicit timezone offset, and convert the specified date-time value to a UTC value when converting to iCalendar.&lt;br /&gt;
&lt;br /&gt;
All hCalendar processor requirements above should be documented thoroughly in [[hcalendar-parsing]].&lt;br /&gt;
&lt;br /&gt;
==== Apple Calendar.app 8.0 (2092.3) ====&lt;br /&gt;
&lt;br /&gt;
Timezone handling: Calendar.app is incompatible with timezone-aware dates produced by the Python iCalendar implementation which puts quotation marks around TZIDs. See [https://gist.github.com/tommorris/0aca78d680804c04bf1e35318893a34a this gist] for details.&lt;br /&gt;
&lt;br /&gt;
=== KOrganizer ===&lt;br /&gt;
* platforms: All Linux, *BSD, etc. (Wherever KDE runs)&lt;br /&gt;
* supports the &amp;quot;webcal:&amp;quot; protocol, as well as &amp;quot;http:&amp;quot;, &amp;quot;ftp:&amp;quot;, &amp;quot;fish:&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
=== Evolution ===&lt;br /&gt;
* platform: Fedora Core 3&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
[http://www.mozilla.org/projects/calendar/sunbird.html Mozilla Sunbird]&lt;br /&gt;
* platforms: Windows XP, others?&lt;br /&gt;
* supports &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Outlook ===&lt;br /&gt;
==== Microsoft Outlook 2007 ====&lt;br /&gt;
Microsoft Outlook 2007 (MSOutlook2k7)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing and subscribing to .ics files,  &amp;quot;webcal:&amp;quot; URLs, etc.&lt;br /&gt;
&lt;br /&gt;
==== Microsoft Outlook 2003 ====&lt;br /&gt;
Microsoft Outlook 2003 (MSOutlook2k3)&lt;br /&gt;
* platforms: Windows&lt;br /&gt;
* supports importing .ics files&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 general comments =====&lt;br /&gt;
For importing, MSOutlook2k3 apparently requires VEVENTS to have &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DTSTAMP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;METHOD&amp;lt;/code&amp;gt; properties. ('''citation/platform/date tested info needed''').  If any of the three is not present, returns this message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This error can appear if you have attempted to save a recurring Lunar appointment in iCalendar format.&lt;br /&gt;
To avoid this error, set the appointment option to Gregorian instead of Lunar.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some testing, this seems to be the generic message to indicate a problem with event import.&lt;br /&gt;
&lt;br /&gt;
No such restriction is placed on [[rfc-2445#vCalendar|vCalendar 1.0]] events. So, if &amp;lt;code&amp;gt;VERSION:1.0&amp;lt;/code&amp;gt; is output instead of &amp;lt;code&amp;gt;VERSION:2.0&amp;lt;/code&amp;gt;, the only required field is &amp;lt;code&amp;gt;DTSTART&amp;lt;/code&amp;gt;. &lt;br /&gt;
Note that &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; property may be omitted. In this case, value inferred as &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* UID and DTSTAMP is required for Outlook to import. [[User:GeoffWebb|GeoffWebb]] 14:03, 9 Dec 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Potential Security Related Issue w/ Outlook 2003 and Standard Account =====&lt;br /&gt;
&lt;br /&gt;
I've been all over the web tracing the &amp;quot;Lunar&amp;quot; exception.&lt;br /&gt;
I believe I'm come across another lunar permutation.&lt;br /&gt;
I have an XP box running Outlook 2003 SP3 with Admin privileges, and I have an XP box running Outlook 2003 SP3 (same build number) running under a standard account.&lt;br /&gt;
The .ics will try to import correctly under the Admin account (aka, it will prompt you for acceptance, everything working as expected).  HOWEVER, the same .ics file will throw the &amp;quot;lunar&amp;quot; exception on the ~standard~ account.&lt;br /&gt;
&lt;br /&gt;
Here is my environment information just in case you're bumping your head on this issue.&lt;br /&gt;
&lt;br /&gt;
Outlook 2003 with SP3 Build Number : 11.8325.8329&lt;br /&gt;
&lt;br /&gt;
.ics file contents (aka, &amp;quot;known to work&amp;quot; file contents under the Admin account)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
PRODID:www.testMeiCalendar.net&lt;br /&gt;
METHOD:REQUEST&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20101231T230000&lt;br /&gt;
DTEND:20110101T010000&lt;br /&gt;
SUMMARY:New Years Eve Reminder&lt;br /&gt;
LOCATION:Downtown&lt;br /&gt;
DESCRIPTION:Let's get together for New Years Eve&lt;br /&gt;
UID:ABCD1234&lt;br /&gt;
SEQUENCE:0&lt;br /&gt;
DTSTAMP:20101125T112600&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be honest, I probably will just abandon trying to use it for this project because of this issue.&lt;br /&gt;
But I wanted to report it, so someone doesn't waste a day thinking the issue is the contents of the .ics file.&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable iCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
METHOD:PUBLISH&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:0&lt;br /&gt;
DTSTAMP:20060601T080000&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== MSOutlook2k3 sample importable vCalendar =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fantastical ===&lt;br /&gt;
&lt;br /&gt;
* Platform: Mac and iOS&lt;br /&gt;
* supports importing ICS files and subscribing using webcal (tested using Facebok URL)&lt;br /&gt;
* Implemented using libical&lt;br /&gt;
&lt;br /&gt;
== notes ==&lt;br /&gt;
* the &amp;quot;webcal:&amp;quot; URL protocol scheme is non-standard.&lt;br /&gt;
&lt;br /&gt;
== contributors==&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
* [[DimitriGlazkov|Dimitri Glazkov]]&lt;br /&gt;
* [[User:TomMorris|Tom Morris]]&lt;br /&gt;
&lt;br /&gt;
== related pages ==&lt;br /&gt;
{{hcalendar-related-pages}}&lt;/div&gt;</summary>
		<author><name>D</name></author>
	</entry>
</feed>