hcalendar-fr: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
mNo edit summary
m (Replace <entry-title> with {{DISPLAYTITLE:}})
 
(40 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<h1> hCalendar </h1>
{{DISPLAYTITLE:hCalendar 1.0}}
<span class="vcard"><span class="fn">[[User:Tantek|Tantek Çelik]]</span> (<span class="role">Editeur</span>, <span class="role">Auteur</span>)</span>, <span class="vcard"><span class="fn">[[User:Brian|Brian Suda]]</span> (<span class="role">Auteur</span>)</span>
(<span class="vcard"><span class="role">Traduction</span> : <span class="fn">[[User:ChristopheDucamp|Christophe Ducamp]]</span></span> : [[hcalendar|hCalendar - Seule la spécification originale fait référence]])
----


hCalendar est un format simple, ouvert, distribué pour le calendrier et les événements,
<dfn style="font-style:normal;font-weight:bold">hCalendar</dfn> est un format simple, ouvert pour publier des événements sur le web en utilisant une représentation 1:1 des propriétés VEVENT iCalendar ([[rfc-2445-fr|RFC2445]]) et valeurs en HTML. hCalendar est l'un des nombreux [[microformats-fr|microformats]] standards ouverts adaptable pour l'embarquement de données dans le HTML/HTML5, et Atom/RSS/XHTML ou autre XML.  
fondé sur le standard iCalendar ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), adaptable pour l'embarquement dans (X)HTML, Atom, RSS et le XML arbitraire.  
hCalendar est l'un des nombreux standards ouverts [[microformats-fr|microformat]].


Vous voulez démarrer par écrire un événement [[hcalendar-fr|hCalendar]]
Les déclarations de [[hcalendar-fr#Copyright|Copyright]] et [[hcalendar-fr#Brevets|brevets]] sont en vigueur.
Utilisez le [http://microformats.org/code/hcalendar/creator hCalendar creator] pour écrire un événement et le publier.
Voir les [[hcalendar#Inspiration_et_Remerciements|remerciements]].


== Exemple ==
Voici un évènement simple en prose :
<blockquote><p>Le site microformats.org a été lancé le 2005-06-20 lors de la Conférence Supernova à San Francisco, CA, USA.</p></blockquote>


__TOC__
marqué avec hCalendar
<source lang=html4strict>
<span class="vevent">
<span class="summary">Le site microformats.org a été lancé</span>
le <span class="dtstart">2005-06-20</span>
lors de la Conférence Supernova
à <span class="location">San Francisco, CA, USA</span>.
</span>
</source>


== Spécification ==
'''Vous voulez démarrer par écrire un événement [[hcalendar-fr|hCalendar]] ?''' Utilisez le [http://microformats.org/code/hcalendar/creator hCalendar creator] pour écrire un événement et le publier, ou suivez les [[hcalendar-authoring-fr|trucs de publication hCalendar]] pour ajouter de la syntaxe hCalendar à votre page d'évènements à venir ou des événements que vous mentionnez dans vos billets de blogs, wikis, etc.


; Editeur : [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc])
; Auteurs : [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc]
: [http://suda.co.uk/ Brian Suda]


(traduction en cours [[Christophe Ducamp]])
== Statut ==
hCalendar 1.0 est une spécification microformats.org. La discussion publique sur hCalendar a pris place sur [[hcalendar-feedback]], le canal [[irc-fr|irc]] #microformats sur irc.freenode.net, et la [http://microformats.org/discuss/mail/microformats-discuss/ liste de discussion microformats-discuss].


=== Copyright ===
=== Langues disponibles ===
{{MicroFormatCopyrightStatement2004-fr}}
La [[hcalendar|version anglaise de cette spécification]] est la seule version normative. Pour les traductions de ce document, voir la section [[#traductions]].


=== Brevets ===
=== Errata et Mises à Jour ===
{{MicroFormatPatentStatement-fr}}
Les erreurs connues et problématiques dans cette spécification sont corrigées dans les problématiques [[hcalendar-issues-resolved|résolues]] et [[hcalendar-issues-closed|fermées]]. Vérifiez-les svp avant de rapporter des [[hcalendar-issues|problématiques]].


=== Inspiration et Remerciements ===
Notez en particulier la [[dtend-issue-fr|problématique-dtend]] qui impacte les dates de fin. Les implémentations DEVRAIENT implémenter la résolution de cette question aussi rapidement que possible.
Merci à :
* Adam Bosworth pour avoir mené la [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars présentation FOO Camp 2004 HTML For Calendars presentation] qui a rassemblé une masse critique de parties intéressées.


La mise à jour hCalendar 1.0.1 est actuellement en développement et incorpore les corrections connues tout comme le [[value-class-pattern-fr|modèle-de-classe-value]].


== Introduction ==
Le standard iCalendar ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), a été très largement mis en œuvre avec interopérabilité (par exemple l'application "iCal" d'Apple intégrée dans MacOSX).


== Introduction ==
En outre, les blogueurs discutent souvent d'évènements sur leurs blogs --  événements à venir, compte-rendus des événements passés, etc. Avec simplement une tout petit peu de structure, les blogueurs peuvent discuter d'événements dans leurs blogs d'une manière telle que les spiders et autres agrégateurs puissent retrouver de tels événements, les convertir automatiquement vers iCalendar, et les utiliser dans n'importe quel service ou application iCalendar.
Le standard iCalendar ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), a été très largement mis en oeuvre avec interopérabilité (par exemple l'application "iCal" d'Apple intégrée dans MacOSX).


En outre, les blogueurs discutent souvent d'événements sur leurs blogs --  événements à venir, compte-rendus des événements passés, etc. Avec simplement une tout petit peu de structure, les blogueurs peuvent discuter d'événements dans leurs blogs d'une manière telle que les spiders et autres agrégateurs puissent retrouver de tels événements, les convertir automatiquement vers iCalendar, et les utiliser dans n'importe quel service ou application iCalendar.
Cette spécification présente le format '''hCalendar''', qui est une représentation 1:1 du standard iCalendar précité en HTML sémantique. Les blogueurs peuvent embarquer à la fois les événements hCalendar directement dans leurs pages web, et les styliser avec CSS pour les faire apparaître comme désiré. En outre, hCalendar permet aux applications de retrouver l'information sur de tels événements à partir de pages Web sans avoir à référencer un fichier distinct.


Cette spécification présente le format '''hCalendar''', qui est une représentation 1:1
{{rfc-2119-intro-fr}}
du standard iCalendar précité en XHTML sémantique. Les Blogueurs peuvent embarquer à la fois les événements hCalendar directement dans leurs pages web, et les styler avec CSS pour les faire apparaître comme désiré. En outre, hCalendar permet aux applications de retrouver l'information
sur de tels événements à partir de pages web sans avoir à référencer un fichier distinct.


== Principes de Design XHTML Sémantique  ==
== Principes de Design XHTML Sémantique  ==


{{semantic-xhtml-design-principles-fr}}
{{semantic-xhtml-design-principles-fr}}
Pour les implémentations pratiques, il devrait être noté que le support d'Internet Explorer pour styliser les éléments <code><nowiki><abbr></nowiki></code> est pauvre et peut obliger à emballer les éléments.


== Format ==
== Format ==
=== En Général ===
Le standard iCalendar ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]) constitue la base de hCalendar.
Note : l'éditeur et les auteurs de cette spécification sont en train de suivre l'[http://lists.osafoundation.org/pipermail/ietf-calsify/ effort "iCal-Basic"] et ont l'intention de fonder le profil noyau du hcalendar sur iCal-Basic. Voir les références pour un lien vers le brouillon en cours.
Le format basique de hCalendar est d'utiliser les noms d'objet/propriété en bas de casse pour les noms de classes, et de mapper l'imbrication des objets iCalendar directement à l'intérieur des éléments XHTML imbriqués.
=== Nom de Classe Racine ===
Le nom de classe racine pour hCalendar est "vcalendar". Un élément avec un nom de classe "vcalendar" est lui-même appelé un ''hCalendar''.
Le nom de classe racine pour les événements est "vevent". Un élément avec un nom de classe "vevent" est lui-même appelé un ''événement hCalendar''.


=== En Général ===
Pour la commodité de publication, tant "vevent" et "vcalendar" sont traités comme des noms de classes racine pour les objectifs de parsage. Si un document contient des éléments avec le nom de classe "vevent" mais pas "vcalendar", la totalité du document a un contexte implicite "vcalendar".
 
'''vevent''' devrait être considéré comme obligatoire pour chaque inscription d'événement.
 
=== Propriétés et sous-propriétés ===
Les propriétés d'un hCalendar sont représentées par des éléments à l'intérieur du hCalendar. Les éléments avec les noms de classes des propriétés listées représentent les valeurs de ces propriétés. Quelques propriétés ont des sous-propriétés, et celles-ci sont représentées par des éléments à l'intérieur des éléments pour les propriétés.
 
=== Liste des Propriétés ===
Les propriétés hCalendar (sous-propriétés entre parenthèses comme ceci)


Le standard iCalendar ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]) constitue la base de hCalendar.
'''Requis :'''
* '''dtstart''' ([[iso-8601-fr|ISO date]])
* '''summary'''
Optionnel :
* location
* url
* dtend (ISO date), duration (ISO date duration)
* rdate, rrule
* category, description
* uid
* geo (latitude, longitude)
* attendee (partstat, role), contact, organizer
* attach
* status
* ... note de l'auteur : cette liste est incomplète (une liste incomplète est mieux que pas de liste) et est en train d'être rédigée à partir de la RFC2445 vers ici. La liste au-dessus des propriétés sont celles qui sont souvent utilisées dans hCalendar sur le web.


Note : l'éditeur et les auteurs de cette spécification sont en train de suivre
=== Profil ===
l'[http://lists.osafoundation.org/pipermail/ietf-calsify/ effort "iCal-Basic"] et ont l'intention de fonder le profil noyau du hcalendar sur iCal-Basic. Voir les références pour un lien vers le brouillon en cours.
Le profil XMDP hCalendar est sur http://microformats.org/profile/hcalendar


Le format basique de hCalendar est d'utiliser les noms d'objet/propriété en bas de casse pour les noms de classes, et de mapper l'encapsulage des objets iCalendar directement à l'intérieur du XHTML imbriqué.  
Le contenu qui utilise hCalendar DEVRAIT référencer ce profil, c'est à dire :
<source lang=html4strict>
<head profile="http://microformats.org/profile/hcalendar">
</source>
ou
<source lang=html4strict>
<link rel="profile" href="http://microformats.org/profile/hcalendar">
</source>
ou
<source lang=html4strict>
Ce contenu utilise <a rel="profile" href="http://microformats.org/profile/hcalendar">hCalendar</a>.
</source>
Le contenu peut combiner les méthodes au-dessus.


=== Plus d'Equivalents Sémantiques ===
=== Plus d'Equivalents Sémantiques ===
 
Pour quelques propriétés il existe un équivalent plus sémantique, et par conséquent elles reçoivent un traitement particulier, par exemple :  
Néanmoins, pour quelques propriétés il existe un équivalent plus sémantique,  
* <code>URL</code> dans iCalendar devient  <code>&lt;a class="url" href="..."&gt;...&lt;/a&gt;</code> à l'intérieur de l'élément avec <code>class="vevent"</code> dans le hCalendar.
et par conséquent elles ont un traitement spécifique, c'est à dire :  
* <code>ATTENDEE</code>, <code>CONTACT</code>, et <code>ORGANIZER</code> dans le iCalendar PEUVENT être représentés par une [[hcard-fr|hCard]] dans le hCalendar .
* <code>URL</code> dans iCalendar devient  <code><a class="url" href="...">...</a></code> à l'intérieur de l'élément avec <code>class="vevent"</code> dans le hCalendar.
* Un lieu nommé <code>LOCATION</code> (potentiellement avec une adresse et/ou geo) dans iCalendar PEUT être représenté par une [[hcard-fr|hCard]] imbriquée dans le hCalendar.  De la même façon, une adresse <code>LOCATION</code> PEUT être représentée par un [[adr-fr|adr]] et un geo (latitude et longitude) <code>LOCATION</code> PEUT être représenté par un [[geo-fr|geo]].
* <code>ATTENDEE</code>, <code>CONTACT</code>, et <code>ORGANIZER</code> dans le iCalendar peuvent être représentés par une [[hcard-fr|hCard]] dans le hCalendar .
* Un lieu nommé <code>LOCATION</code> (potentiellement avec une adresse et/ou geo) dans iCalendar peut être représenté par une [[hcard-fr|hCard]] imbriquée dans le hCalendar.  De la même façon, une adresse <code>LOCATION</code> peut être représentée par un [[adr-fr|adr]] et un geo (latitude et longitude) <code>LOCATION</code> peut être représenté par un [[geo-fr|geo]].
* <code>UID</code> dans le iCalendar devient simplement une autre sémantique appliquée à un URL spécifique pour un événement hCalendar.
* <code>UID</code> dans le iCalendar devient simplement une autre sémantique appliquée à un URL spécifique pour un événement hCalendar.
* <code>ATTACH</code> dans iCalendar devient un élément img ou object (où la valeur est stocké dans/retrouvée à partir des attributs 'src' ou 'data' respectivement). Un <code>&lt;a class="attach" href="..."&gt;...&lt;/a&gt;</code> peut aussi être utilisé, auquel cas l'attribut href est utilisé pour la valeur de propriété.


=== Propriétés Singulier vs Pluriel ===
=== Propriétés Singulier vs Pluriel ===
Pour les propriétés qui sont singulières (par ex. "N" et "FN" extrait de vCard), le premier élément descendant avec cette classe-là devrait prendre effet, tous les autres étant ignorés.
Pour les propriétés qui sont singulières (par ex. "N" et "FN" extrait de vCard), le premier élément descendant avec cette classe-là devrait prendre effet, tous les autres étant ignorés.


Pour les propriétés qui peuvent être plurielles (par ex. "TEL" extrait de la vCard), chaque instance de classe devrait créer une instance de cette propriété.   
Pour les propriétés qui peuvent être plurielles (par ex. "TEL" extrait de la vCard), chaque instance de classe devrait créer une instance de cette propriété.   
Les propriétés plurielles avec des sous-types (par ex. TEL avec WORK, HOME, CELL extrait de la vCard) peuvent être optimisées pour partager un élément commun pour la propriété elle-même,  
Les propriétés plurielles avec des sous-types (par ex. TEL avec WORK, HOME, CELL extrait de la vCard) peuvent être optimisées pour partager un élément commun pour la propriété elle-même, avec chaque instance de sous-type étant un descendant proprement classé de l'élément propriété.
avec chaque instance de sous-type étant un descendant proprement classé de l'élément propriété.


==== Plusieurs Propriétés Singularisées ====
==== Propriétés Plurielles Singularisées ====
 
Parce que les noms de propriétés plurielles deviennent leurs équivalents singuliers, même si la propriété plurielle originale n'a permis seulement qu'une valeur unique avec plusieurs composants, ces composants-là multiples sont représentés chacun avec leurs propres singularités nommées propriété et la propriété a en fait plusieurs valeurs et est sujette au traitement ci-dessus des propriétés à plusieurs valeurs.
Parce que les noms de propriétés plurielles deviennent leurs équivalents singuliers,  
même si la propriété plurielle originale n'a permis seulement qu'une valeur unique avec plusieurs composants, ces composants-là multiples sont représentés chacun avec leurs propres singularités nommées propriété et la propriété a en fait plusieurs valeurs et est sujette au traitement ci-dessus des propriétés à plusieurs valeurs.


=== Lisible par des Humains vs Machines ===
=== Lisible par des Humains vs Machines ===
Si un élément <code><nowiki><abbr></nowiki></code> est utilisé pour une propriété, alors l'attribut '<code>title</code>' de l'élément <code><nowiki><abbr></nowiki></code> est la valeur de la propriété, au lieu des contenus de l'élément, qui fournit à la place uen version humaine présentable de la valeur.  Cette spécification recommande que de tels éléments <code><nowiki><abbr></nowiki></code> soient utilisés pour les propriétés suivantes iCalendar :  
Si un élément <code><nowiki><abbr></nowiki></code> est utilisé pour une propriété, alors l'attribut '<code>title</code>' de l'élément <code><nowiki><abbr></nowiki></code> est la valeur de la propriété, au lieu des contenus de l'élément, qui fournit à la place une version humainement présentable de la valeur.  Cette spécification recommande que de tels éléments <code><nowiki><abbr></nowiki></code> soient utilisés pour les propriétés suivantes iCalendar :  
* DTSTART, DTEND, DURATION, RDATE, RRULE
* DTSTART, DTEND, DURATION, RDATE, RRULE


== Exemple ==
== Exemples ==


Voilà un événement échantillon dans un iCalendar :
Voici un exemple échantillon avec plusieurs jours dans un iCalendar:
<pre><nowiki>
<source lang=text>
BEGIN:VCALENDAR
BEGIN:VCALENDAR
PRODID:-//XYZproduct//EN
PRODID:-//XYZproduct//EN
VERSION:2.0
VERSION:2.0
BEGIN:VEVENT
BEGIN:VEVENT
URL:http://www.web2con.com/
URL:http://conferences.oreillynet.com/pub/w/40/program.html
DTSTART:20051005
DTSTART:20051005
DTEND:20051008
DTEND:20051008
Line 96: Line 149:
END:VEVENT
END:VEVENT
END:VCALENDAR
END:VCALENDAR
</nowiki></pre>
</source>
et un équivalent en format hCalendar avec différents éléments optimisés de façon appropriée. 
Voir [[hcalendar-example1-steps-fr|étapes-hcalendar-exemple 1]] pour l'origine.


<pre><nowiki>
et un événement équivalent dans un format hCalendar avec différents éléments optimisés de façon appropriée. Voir [[hcalendar-example1-steps-fr|hCalendar-exemple1-étapes]] pour la dérivation.
<span class="vevent">
 
  <a class="url" href="http://www.web2con.com/">
<source lang=html4strict>
   <span class="summary">Web 2.0 Conference</span> :
<div class="vevent">
  <abbr class="dtstart" title="2005-10-05">5</abbr>-
  <a class="url" href="http://conferences.oreillynet.com/pub/w/40/program.html">
  <abbr class="dtend" title="2005-10-08">7</abbr>
   http://conferences.oreillynet.com/pub/w/40/program.html
  octobre à l'<span class="location">Hôtel Argent, San Francisco, CA</span>
  </a>
  </a>
</span>
<span class="summary">Web 2.0 Conference</span>:
</nowiki></pre>
<abbr class="dtstart" title="2005-10-05">October 5</abbr>-
qui pourrait être affiché comme :  
<abbr class="dtend" title="2005-10-07">7</abbr>,
at the <span class="location">Argent Hotel, San Francisco, CA</span>
</div>
</source>
 
 
Qui pourrait être affiché comme :  
 
<div class="vevent">
<span class="url">http://conferences.oreillynet.com/pub/w/40/program.html</span>&nbsp;<!-- note modifiée pour prendre en considération l'idiosyncrasie du logiciel wiki -->
<span class="summary">Web 2.0 Conference</span>:
<abbr class="dtstart" title="2005-10-05">October 5</abbr>-
<abbr class="dtend" title="2005-10-07">7</abbr>,
at the <span class="location">Argent Hotel, San Francisco, CA</span>
</div>
 
Note 1 : Remarquez que c'est un microformat hCalendar '''live''', qui sera trouvé sur cette page par les parseurs.


[http://www.web2con.com/ Web 2.0 Conference : 5-7 octobre, à l'Hôtel Argent, San Francisco, CA]
Note 2 : Cet exemple avait "2005-10-08" comme la valeur de dtend, mais selon la résolution de la [[dtend-issue-fr|problématique-dtend]], cette valeur a été modifié en "2005-10-07" afin d'encourager les éditeurs/implémenteurs à mettre à jour immédiatement leur code/marquage et le [http://ufxtract.com/testsuite/hcalendar/hcalendar1.htm le tester].


Note 3 : Remarquez que le iCalendar dans la première partie de l'exemple a le code <code>DTEND:20051008</code>. Ce "8" n'est pas une faute de typo. iCalendar utilise des dates de fin globales<em>exclusives</em> (valeurs DTEND) et par conséquent requiert que la valeur DTEND soit réglée sur le jour complet <em>après</em> ce que les auteurs de contenu affichent de manière visible comme la date de fin d'un événement. La convention des dates de fin exclusives de iCalendar s'est avérée comme [[dtend-issue-fr|problematique et déroutante]] pour les auteurs de contenus et les éditeurs. Par conséquent, selon la résolution de la [[dtend-issue-fr|problématique dtend]] dans le hCalendar, la date de fin est déclarée exactement comme ce que publient les événements existants comme dates de fin visibles pour les humains, avec une date de fin <em>inclusive</em> (valeur de propriété dtend), dans cet exemple, 2005-10-07.


=== Exemple de réunion ===
L'<span id="Exemple_2">exemple</span> suivant spécifie un rendez-vous programmé qui commence
le 12 mars 1998 à 08:30 EST et se termine à 09:30 EST le 12 mars 1998.


L'exemple suivant spécifie un rendez-vous programmé qui commence le 12 mars 1998 à
<source lang=text>
08:30 EST et se termine à 09:30 EST le 12 mars 1998.
BEGIN:VCALENDAR
BEGIN:VEVENT
UID:guid-1.host1.com
DTSTAMP:19980309T231000Z
DESCRIPTION:Project XYZ Review Meeting
SUMMARY:XYZ Project Review
DTSTART:19980312T133000Z
DTEND:19980312T143000Z
LOCATION:1CP Conference Room 4350
END:VEVENT
END:VCALENDAR
</source>


<pre><nowiki>
    BEGIN:VCALENDAR
    BEGIN:VEVENT
    UID:guid-1.host1.com
    DTSTAMP:19980309T231000Z
    DESCRIPTION:XYZ Réunion Bilan
    SUMMARY:Projet XYZ Réunion Bilan
    DTSTART:19980312T133000Z
    DTEND:19980312T143000Z
    LOCATION:1CP Salle de Conférence 4350
    END:VEVENT
    END:VCALENDAR
</nowiki></pre>


L'équivalent en hCalendar :
L'équivalent en hCalendar :


<pre><nowiki>
<source lang=html4strict>
<div class="vevent">
<div class="vevent">
<h3 class="summary">XYZ Réunion Bilan</h3>
<h3 class="summary">XYZ Project Review</h3>
<p class="description">Projet XYZ Réunion Bilan</p>
<p class="description">Project XYZ Review Meeting</p>
<p>programmé le <abbr class="dtstart" title="1998-03-12T08:30:00-05:00">12 mars 1998 à partir de 08:30 EST</abbr>  
<p>To be held on
jusqu'à <abbr class="dtend" title="1998-03-12T09:30:00-05:00">09:30 EST</abbr></p>
<span class="dtstart">
<p>Lieu : <span class="location">1CP Salle de Conférence 4350</span></p>
  <abbr class="value" title="1998-03-12>the 12th of March</abbr>
<small>Réservé par : <span class="uid">guid-1.host1.com</span> le <abbr class="dtstamp" title="19980309T231000Z">9 mars 1998 18:00</abbr></small>
  from <span class="value">8:30am</span> <abbr class="value" title="-0500">EST</abbr>
</span> until
<span class="dtend">
  <span class="value">9:30am</span> <abbr class="value" title="-0500">EST</abbr>
</span>
</p>
<p>Location: <span class="location">1CP Conference Room 4350</span></p>
<small>Booked by: <span class="uid">guid-1.host1.com</span> on
<span class="dtstamp">
  <abbr class="value" title="1998-03-09">the 9th</abbr> at <span class="value">6:00pm</span>
</span>
</small>
</div>
</div>
</nowiki></pre>
</source>


Ceci pourrait s'afficher comme  
Ceci pourrait s'afficher comme :


----
----


<div class="vevent">
<div class="vevent">
<h3 class="summary">XYZ Réunion Bilan</h3>
 
<p class="description">Projet XYZ Réunion Bilan</p>
<h3 class="summary">XYZ Project Review</h3>
<p>programmé le <abbr class="dtstart" title="1998-03-12T08:30:00-05:00">12 mars 1998 à partir de 08:30 EST</abbr>  
<p class="description">Project XYZ Review Meeting</p>
jusqu'à <abbr class="dtend" title="1998-03-12T09:30:00-05:00">09:30 EST</abbr></p>
<p>To be held on <time class="dtstart" datetime="1998-03-12 08:30:00-05:00">the 12th of March from 8:30am EST</time>  
<p>Lieu : <span class="location">1CP Salle de Conférence 4350</span></p>
until <time class="dtend" datetime="1998-03-12 09:30:00-05:00">9:30am EST</time></p>
<small>Réservé par : <span class="uid">guid-1.host1.com</span> le 
<p>Location: <span class="location">1CP Conference Room 4350</span></p>
<abbr class="dtstamp" title="19980309T231000Z">9 mars 1998 18:00</abbr></small></div>
<small>Booked by: <span class="uid">guid-1.host1.com</span> on <time class="dtstamp" datetime="1998-03-09 18:00">the 9th at 6:00pm</time></small></div>


----
----
Line 166: Line 245:
Note 3 : L'information de version n'est pas nécessaire directement dans la syntaxe hCalendar parce que la version sera définie par le profil de qui est utilisé/référencé dans l'attribut 'profile' de l'élément <head>.
Note 3 : L'information de version n'est pas nécessaire directement dans la syntaxe hCalendar parce que la version sera définie par le profil de qui est utilisé/référencé dans l'attribut 'profile' de l'élément <head>.


Note 4 : Les dates ISO8601 (requises par iCalendar) ne sont pas très humaines. En outre, l'année est souvent comprise implicitement par les humains à partir du contexte. Par conséquent les éléments <code><nowiki><abbr></nowiki></code> sont utilisés pour fournir simultanément une date humaine et/ou une heure dans les contenus visibles de l'élément, tout en plaçant respectivement l'heuredate ISO8601 parsable par les machines dans l'attribut 'title'. La notation YYYY-MM-DD devrait être utilisée pour une meileure lisibilité.
Note 4 : Les dates-horaires [[iso-8601-fr|ISO8601]] (requis par iCalendar) ne sont pas très humains. En outre, l'année est souvent comprise implicitement par les humains à partir du contexte. Par conséquent, le [[value-class-pattern-fr|modèle de classe value]] et les éléments <code><nowiki><abbr></nowiki></code> sont utilisés pour fournir simultanément des dates et/ou horaires compréhensibles par les humains dans les contenus visibles de l'élément, tout en plaçant respectivement des dates et horaires ISO8601 parsables par les machines si c'est nécessaire dans l'attribut 'title'. Selon le [[value-class-pattern-fr|modèle-de-classe-value]], les dates et horaires séparés DEVRAIENT être utilisés par les auteurs plutôt qu'un date-horaire complet ISO8601, et ce pour une meilleure lisibilité et écoute.


Note 5 : La différence entre la date DTEND ISO8601 (2005-10-08) et la date lisible par un humain (7) n'est PAS une erreur. [http://lists.osafoundation.org/pipermail/ietf-calsify/2005-September/000769.html DTEND est exclusif], voulant dire que l'événement finit simplement avant le DTEND. De ce fait pour les événements qui démarrent sur un jour et finissent sur un autre jour, la date DTEND doit être spécifiée comme le jour après le jour qu'un humain dirait que c'est le dernier jour de l'événement.
Note 5 : Selon la résolution [[dtend-issue-fr|dtend-problématique]], les dates DTEND sont fournies parce que les humains s'attendent à ce qu'elles soient (cohérentes avec le jour à laquelle un événement se termine), plutôt que la définition trompeuse de iCalendar (le jour d'après). De ce fait, les processeurs de hCalendar qui produisent des iCalendar doivent faire la transformation, ce qui revient à traiter une date de fin hCalendar globale <code>dtend</code> comme *inclusive*, et la convertir en une date de fin *[http://lists.osafoundation.org/pipermail/ietf-calsify/2005-September/000769.html DTEND exclusive]* au moment de produire iCalendar.


Note 6 : L'endroit (Location) dans cet exemple contient une structure implicite (nom du lieu de l'événement, ville, état) qui devrait être balisée explicitement sous une [[hcard-fr|hCard]].  Voir [http://microformats.org/wiki/hcalendar-brainstorming#hCard_locations hCalendar brainstorming: hCard locations] pour une explication sur la façon de faire ça.
Note 6 : L'endroit (Location) dans cet exemple contient une structure implicite (nom du lieu de l'événement, ville, état) qui devrait être balisée explicitement sous une [[hcard-fr|hCard]].  Voir [http://microformats.org/wiki/hcalendar-brainstorming-fr#hCard_locations hCalendar brainstorming: hCard locations] pour une explication sur la façon de faire ça.


Voir [[hcalendar-examples-fr|exemples hcalendar]] pour plus d'exemples hCalendar.
=== Plus d'exemples ===
Voir [[hcalendar-examples-fr|hCalendar exemples]] pour plus d'exemples, y compris des exemples extraits de la RFC 2445 iCalendar convertis en hCalendar.


== Exemples dans la jungle ==
== Exemples dans la jungle ==
Cette section est '''pour information'''.
Cette section est '''informative'''. Le nombre d'exemples hCalendar dans la jungle a grandi bien au-delà de la capacité de pouvoir être maintenus à l'intérieur de cette spécification. Ils ont été migrés vers une [[hcalendar-examples-in-wild-fr|page séparée]].


Les sites suivants ont implémenté le hCalendar, et sont par conséquent un endroit génial pour tous afin de commencer à regarder des exemples "dans la jungle" et essayer de parser, d'indexer, d'organiser, etc.
Voir [[hcalendar-examples-in-wild-fr|hCalendar Exemples dans la jungle]].
Si les événements sur vos pages sont balisés avec hCalendar, sentez-vous à l'aise pour les ajouter en haut de cette liste.
Une fois que la liste sera trop grande, nous produirons une page wiki distincte.
 
=== Nouveaux Exemples ===
SVP, ajoutez de nouveaux exemples à cette section.
* [http://climbtothestars.org Stephanie Booth] a annoncé [http://climbtothestars.org/archives/2006/09/14/microformats-et-bloggy-friday-doctobre/ un Bloggy Friday qui parlera de microformats pour octobre 2006] en utilisant hCalendar.
* [http://www.parisweb2006.org/ La conférence Paris Web 2006] utilise hCalendar sur sa page d'accueil et sur la [http://www.parisweb2006.org/planning.php page de planning] des deux journées.
* [http://webdirections.org/program/ La Conférence Web Directions (Sydney Australie)] utilise hCalendar pour son programe. Elle utilise l'axe et les titres pour les événements dans un tableau et démontre comme c'est facile de faire tout l'ensemble soit téléchargeable en utilisant X2V.
* [http://www.thestreet.org.au/ The Street Theatre (Canberra, Australie)] utilise maintenant hCalendar pour les pièces sur sa page [http://www.thestreet.org.au/whats_on.htm What's On].
* Le [http://www.westmidlandbirdclub.com/ West Midland Bird Club] en Grande Bretagne utilise hCal sur son  [http://www.westmidlandbirdclub.com/diary/ annuaire d'événements].
* [http://www.clacksweb.org.uk Clackmannanshire Council] utilise hCalendar sur sa  [http://www.clacksweb.org.uk/community/events/ page de listes d'événements] et les pages événements individuelles.
* [http://www.markthisdate.com/ le portail de calendrier MarkThisDate.com] utilise maintenant hCalendar pour tous les calendriers. Sur notre site web, les visiteurs peuvent ajouter des calendriers et télécharger des calendriers vers Outlook, Lotus Notes, iCal, Netvibes, 30Boxes, Google Calendar et bien d'autres. Plus de 600 calendriers ont déjà été téléchargés.
* [http://mogue.jp/ mogue] utilise hCalendar sur les pages [http://mogue.jp/event/1000/ de détail d'événement].
* [http://www.gustavus.edu/events/nobelconference/2006/schedule.cfm 2006 Nobel Conference] utilise hCalendar pour le programme de la conférence
* [http://www.geekinthepark.co.uk Geek in the Park] utilise hCalendar pour l'information événement. -- par [[User:Trovster|trovster]]
* [http://www.besancon.fr/ Le site officiel de Besançon (France)] pour ses événements
* [http://2006.dconstruct.org/schedule/ le programme de la conférence d.Construct 2006] est publié en utilisant hCalendar.
* [http://local.yahoo.com Yahoo Local] supporte maintenant hCalendar
* Nous avons utilisé hCalendar pour le [http://www.fuckparade.org/flyer/2006/ flyer F’parade 2006], une contre démonstration de la Love Parade à Berlin, et deux problématiques se sont posées : '''l'extention tails de Firefox''' n'obtient pas un résumé quand c'est un texte-alt dans une image. Aussi le '''charset par défaut''' au moment de créer un fichier iCal avec [[http://feeds.technorati.com/events/http://www.fuckparade.org/flyer/2006/ Technorati feed] est en  UTF-8, mais notre site web est ISO-8859-15. Y'a t'il un moyen de définir un 'charset' différent, ou pourquoi l'API ne respecte pas le jeu de caractères donné par le site web en premier lieu. (dans notre cas c'est dans le header HTTP dans la déclaration XML, ''et'' le méta tag) ?
* [http://www.thesession.org/events/ The Session events] utilise hCalendar pour baliser les concerts, festivals et atelier en rapport avec la musique Irlandaise traditionnelle.
* [http://rubyandrails.org/usergroups/newcastle ncl.rb] utilise hCalendar pour baliser les nouvelles réunions.
* [http://www.worldcupkickoff.com/ World Cup KickOff] où vous pouvez télécharger et garder toutes les "fixtures" qui vous intéresse afin que vous ne ratiez pas un seul match de la Coupe du Monde de football 2006 !
** Ce lien était sur le [http://www.lifehacker.com/software/sports/world-cup-start-times-for-ical-etc-175393.php site Lifehackers] et a fait son chemin vers les site de news yahoo :
 
Lundi 22 mai, 4:00 PM ET
La Coupe du Monde, l'un des événements sportifs les plus regardés dans le monde est presque parmi nous. Si vous avez déjà essayé de suivre votre équipe favorité à travers la Coupe, vous savez que ce peut être parfois difficile de savoir quand ils jouent. World Cup Kickoff peut aider.
 
World Cup KickOff est tout ce dont vous avez besoin pour connaître les détails des matches à venir pour la Coupe du Monde 2006. Que vous utilisiez votre téléphone mobile, MS outlook, Apple iCal ou le calendrier Mozilla vous pouvez télécharger et conserver toutes les rencontres qui vous intéresse de façon à ce que vous ne ratiez pas une seule partie !
 
PUBLICITE
Prochain truc ? Nous vous montrerons comme vous lever à 2 heures du matin pour regarder vos matches. ;0) Merci à Tom pour le truc !
 
* [http://gross.org.za/calendar GROSSUG Calendar] - Utilise hCalendar pour baliser les réunions et autres événements.
* [http://www.socaltech.com socalTECH] est un site d'actualités et d'information. Son listing d'événements en page d'accueil est marqué avec hCalendar.
* [http://www.webanalyticsassociation.org/en/calendarevents/search.asp  Web Analytics Association] - le microformat hCalendar est en place sur tous les sites Tendenci sur les pages de recherche d'événements calendrier et la page de liste consolidée.
* [http://www.tendenci.com/en/calendarevents/search.asp Tendenci Calendar Events] avec hCalendar
* [http://www.argolon.com/2006/04/17/web20-conference-in-dublin/ Web2.0 Conference à Dublin] événement hCalendar
* [http://www.meetup.com/ Meetup.com] a balisé les [http://nightlife.meetup.com/cities/fr/paris/ calendriers d'événements des villes], [http://photo.meetup.com/100/events/ les listes des événements de groupe] et les [http://www.meetup.com/ pages personnelles enregistrées] avec hCalendar.
* [http://ukwindsurfing.com/ ukwindsurfing.com] a balisé les événements à venir avec hCalendar et la [http://ukwindsurfing.com/events/ page événements] dans une table.
* [http://ocono.com/ ocono.com] a balisé sa liste des "Upcoming Events" avec hCalendar.
* [http://www.austinbloggers.org/ Austin Bloggers] a balisé sa boîte des "Upcoming Events" avec hCalendar ([http://www.austinbloggers.org/blog/a/001123.html announcement]).
* L'application cloneable Group de Ning a une syntaxe [[hcalendar-fr|hCalendar]] sur son [http://group.ning.com/index.php?controller=event&action=list calendrier d'événéments] et [http://group.ning.com/index.php?controller=event&action=view&id=727220 ses pages de détails d'événéments].
* [http://tantek.com/microformats/2006/03-01-TechPlenAgenda.html Agenda: W3C Technical Plenary Day, March 1 2006] a une syntaxe [[hcard-fr|hCard]] et [[hcalendar-fr|hCalendar]]. ([http://www.w3.org/2006/03/01-TechPlenAgenda.html original ici]).
* The National Arbor Day Foundation a commencé à utiliser les hCalendars pour leurs [http://arborday.org/programs/conferences/communityforestry/index.cfm prochaines] [http://arborday.org/programs/conferences/hazardtrees-treeplanting/ conférences].
* [http://www.multipack.co.uk The Multipack] affiche un vevent pour l'information sur la prochaine réunion.
* [http://www.stateofflux.com/ State of Flux street art site] a commencé à ajouter des événements en format hCalendar.
* La [http://barcamp.org/#BarCamps page d'accueil du BarCamp liste les BarCamp à venir avec une syntaxe hCalendar] et a même un lien "Subscribe...".
* [http://www.w3.org/2005/12/allgroupoverview.html 2006 W3C Technical Plenary Week] has marked up the schedule and events for the week with hCalendar.
* [http://www.code4lib.org/2006/schedule code4lib Conference 2006 Schedule] est balisé avec hCalendar comme [http://www.code4lib.org/node/65 annoncé sur son blog].
* [http://grouper.ieee.org/groups/754 IEEE 754 Working Group] - essaye le hCalendar pour les réunions à venir.
* [http://www.pehuen.org/node/494  Elecciones 2005 Chile] - le premier hcalendar espagnol trouvé dans le wild.
* [http://www.codewitch.org/it/2005/11/17/no-creative-commons-no-party/ Giocolando » No Creative Commons? No Party!] est marqué avec hcalendar
* [http://www.cmprofessionals.org/events/calendar.html CM Pros Events Calendar] de Bob Doyle
* [http://www.midgard-project.org/community/events/ Midgard CMS Event calendar] - comme [http://bergie.iki.fi/blog/new-event-calendar-for-midcom.html blogué par Henri Bergius]
* [http://www.iowamilitaryveteransband.com/schedule/ Iowa Military Veterans Band Schedule] - balisage hCalendar [http://weblog.randomchaos.com/archive/2005/10/24/Microformats/ ajouté par Scott Reynen]
* [http://www.funfairgames.net/weblog/posts/00000011.html événements à venir sur Jason A.R. Moody Amusements Weblog] posté par Jason Moody le 15 Oct 2005. [http://www.funfairgames.net/weblog/index.html Son weblog] en général a des événements hCalendar postés à l'intérieur des billets de blog.
* [http://tantek.com/microformats/2005/syndicate/tracks-sessions-schedule.html Syndicate - Tracks &amp; Sessions]
* [http://tantek.com/microformats/2005/web2/program.html Web 2.0 Conference schedule page marked up with hCalendar]
* [http://www.thisiscmon.com/ C'MON] est un groupe de rock du Canada, et ses [http://www.thisiscmon.com/shows/ dates de concerts] ont été marquées par [http://www.d2digitalmedia.com/ Ray Dickman] avec hCalendar.
* [http://ifreebusy.com/ ifreebusy.com] will affichera l'information "freebusy" en utilisant hCalendar. Voir cet [http://ifreebusy.com/neiljensen/freebusy/ exemple].
* [http://we05.com/ Web Essentials 05] a marqué son [http://we05.com/program.cfm tableau de programmes avec hCalendar], en utilisant les attributs 'axis' et 'headers'.
* [http://www.asdvbonaparte.nl/ ASDV Bonaparte] est une société littéraire Hollandaise. Son calendrier d'événements est marqué avec les conventions hCalendar.
* [http://chocnvodka.blogware.com/blog Suw Charman] a marqué [http://suw.org.uk/archives/category/events/ ses événements] avec hCalendar.
* [http://www.blogbusinesssummit.com/ Blog Business Summit] a publié ses [http://www.blogbusinesssummit.com/details.htm détails d'événements] avec une syntaxe hCalendar.
* [http://eventful.com Eventful.com] publie tous les événements avec hCalendar et les particpants avec [[hcard-fr|hCard]].  Cela leur a pris seulement 15 minutes pour implémenter les deux ! Son fil Atom contient aussi les hCalendar/hCard.
* [http://upcoming.org Upcoming.org] publie tous les événements et les listes d'événements avec hCalendar. Cela leur a pris seulement une heure pour ajouter le support hCalendar au site.
* The [http://laughingsquid.com/squidlist/calendar/ Laughing Squid Calendar] events, [http://laughingsquid.com/squidlist/calendar/9949/2005/5/9 e.g. this party], supporte maintenant hCalendar.
* Le site de [http://paulschreiber.com/ Paul] Schreiber, [http://concerts.shrub.ca/ Sunnyvale House Concerts] publie l'information des événements pour les concerts à venir en hcalendar.  En outre la page des [http://concerts.shrub.ca/shows Past Shows] contient les événements hCalendar pour tous les concerts passés.
* Le site de [http://paulschreiber.com/ Paul] Schreiber  [http://iceoasis.shrub.ca/ unofficial schedule site] publie une information hcalendar pour les jeux de hockey à venir sur [http://www.iceoasis.com/ Ice Oasis]
* [http://www.complexspiral.com/ Complex Spiral Consulting], à la fois dans la boîte "Events" sur le côté gauche, et la page séparée [http://www.complexspiral.com/events/ Events].
* [http://tantek.com/log Tantek's Thoughts], tout spécialement le roll "Events" dans la colonne la plus à droite.
* [http://suda.co.uk/projects/holidays/ Lesser Known Holidays], liste de vacances sur [http://suda.co.uk suda.co.uk] qui peut être importée via iCal et hCal de façon à ce que vous puissiez voir la transformation versus l'objectif.
* [http://norman.walsh.name/2005/itinerary/ Norm Walsh's travel schedule] utilise hCalendar tout comme GRDDL.
* [http://www.policyawareweb.org/2005/ftf2/paw-mtg Policy Aware Web (PAW) Project Meeting] utilise hCalendar pour enregistrer les décisions par date et utilise un microformat vtodo pour enregistrer les items d'actions.
* [http://www.kiez-ev.de/ Kiez] est un petit cinéma et a publié son [http://www.kiez-ev.de/programm.htm programme] marqué avec hCalendar.
* Le [http://lufgi4.informatik.rwth-aachen.de Laboratory for Dependable Distributed Systems] publie sa [http://lufgi4.informatik.rwth-aachen.de/cfps 'list of notable CfPs on dependability and security'] avec des éléments hCalendar-todo.
* La [http://laughingsquid.com/laughing-squid-10th-anniversary-party/ Laughing Squid 10th Anniversary Party] a une page hcalendar.
* SPRACI a des versions hcalendar de ses listes de nightlife/clubbing/gigs/festivals pour beaucoup de villes dans le monde - par ex. : [http://www.spraci.com/listhcalendar.php?parea=sydney&category=all Events in Sydney] (regardez les [http://www.spraci.com/api/ API] pages dans la section faq de [http://www.spraci.com/ SPRACI] pour plus d'informations à propos des mots clés de la ville et les tags de catégories à utiliser pour obtenir des données pour votre ville/catégories.
* WWF-Australia events calendars: [http://wwf.org.au/act/events/ What's on], [http://wwf.org.au/act/volunteer/ Volunteer]
* [http://rubyholic.com rubyholic] utilise hCalendar pour publier des calendriersp pour les groupes ruby.
* [http://www.bath.ac.uk/whats-on/ University of Bath What's On] utilise hCalendar sur les pages événements individuelles.
 
=== Exemples avec quelques problèmes ===
* [http://www.bokle.de/ s'Bokle] est un pub allemand de musique. Son calendrier d'événements a été marqué avec hCalendar.
** usage impropre de rrule --[[User:RyanKing|RyanKing]] 16:04, 6 Jan 2006 (PST)


== Implémentations ==
== Implémentations ==
Cette section est '''pour information'''.
Cette section est '''à des fins d'étude'''. Le nombre d'implémentations hCalendar a grandi bien au delà des capacités de pouvoir les maintenir dans la page. Elles ont été migrées vers une [[hcalendar-implementations-fr|page séparée]].


Les implémentations suivantes ont été développées qui soit génère ou parse les hCalendars.
Voir [[hcalendar-implementations-fr|hCalendar Implementations]].
Si vous avez une implémentation hCalendar, sentez-vous libre de l'ajouter en haut de cette liste.
Une fois que la liste sera devenue trop grosse, nous produirons une page séparée.


=== Publier ===
== Articles ==
Les implémentations que vous pouvez utiliser pour rédiger, créer et publier des événements hCalendar.
Cette section est <strong>à des fins d'étude</strong>.  


==== Outils de Blog et CMS  ====
Voir : [[hcalendar-articles-fr|articles-hCalendar]].
;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]


;Drupal module : [http://hybernaut.com/upcoming-hcal Drupal Upcoming.org syndication module emits hCalendar]
==Boutons==
;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.
Cette section est <strong>à des fins d'étude</strong>. N'oubliez pas que vous pouvez ajouter un de nos [[buttons-fr#hCalendar|boutons]] vers la page, pour indiquer la présence de microformats hCalendar. Par exemple : http://www.boogdesign.com/images/buttons/microformat_hcalendar.png. Si vous pouvez le lier vers cette page (ou même sur une page sur votre site web, à propos de votre utilisation des microformats), plus il y en aura, mieux ce sera !
;Textpattern plug-in : [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].


==== Scripts et plugins pour Navigateurs  ====
Plugins navigateurs qui fonctionnent avec les outils de publication existants :
; 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]).
; 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.
; 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].


==== Outil de Publication de Bureau  ====
=== Copyright ===
;Dreamweaver Extension : [http://www.webstandards.org/action/dwtf/microformats/ Extension suite] pour Dreamweaver 8 tirée du [http://webstandards.org/ Web Standards Project].
Selon la parution dans le domaine public sur les pages utilisateur des auteurs ([[User:Tantek|Tantek Çelik]], [[User:Brian|Brian Suda]]), cette spécification est tombée dans le domaine public.
;xfy :
dans la [https://www.xfytec.com/community/ Communauté xfy], il existe quelques implémentatons hCalendar.


* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=15&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.
{{MicroFormatPublicDomainContributionStatement-fr}}
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=19&lid=23 hCalendar Marker XVCD] aide à marquer une information événement en document XHTML avec hCalendar.
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=15&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.


=== Recherche et Découverte ===
=== Brevets ===
 
{{MicroFormatPatentStatement-fr}}
* [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].
 
=== Conversion et Importation ===
Les implémentations que vous pouvez utiliser pour l'importation dans une application calendrier, généralement en convertissant hCalendar vers iCalendar/vCalendar.
 
==== Web Services ====
Ceux-ci renvoient des formats iCalendar (.ics) et d'autres foramts de calendrier à l'intérieur de programmes typiques de calendriers ou autre traitement.
* [http://feeds.technorati.com/events Technorati Events Feed service] utilise la librairie X2V pour parser hCalendar et renvoyer iCalendar (.ics).  Notez l'URL facile à retenir, par ex. http://feeds.technorati.com/events/http%3A//microformats.org
* [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.
* [http://lifelint.net/ Life Lint Parser] parse hCalendar et produit des informations .ics, .rdf et de débuggage 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.
* [http://spanningsalesforce.com/ Spanning Salesforce] produit des fils RSS hCalendar et des calendriers .ics extraits de Salesforce.com.
 
==== Firefox Greasemonkey Plugins ====
* [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].
* [http://inside.glnetworks.de/ Martin Rehfeld] a mis à jour les travaux de [http://blogmatrix.blogmatrix.com/ David Janes] et produit un [[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].
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+.''
 
==== Agrégateurs ====
* [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.
Regardez la photo d'écran en bas de la page.
 
=== Browsing ===
Les implémentations qui détectent, affichent et autrement soulignent les événements hCalendar dans les pages.
* Dans la [http://www.xfytec.com/community/ xfy Community], il existe quelques implémentations hCalendar. "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.
* [http://web.mit.edu/glasser/www/JSCalendar/ JSCalendar] parse hCalendar et produit un calendrier basé su du HTML table/CSS.
 
==== Extension Firefox ====
[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.
 
==== Extension Flock ====
[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.
 
=== Librairies ===
Les librairies open source des parsers hCalendar et autres codes aparentés pour construire des implémentations hCalendar.
; Javascript : [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats parseur simple hCalendar] par [http://virtuelvis.com/ Arve Bersvendsen]
; PHP : [http://randomchaos.com/microformats/base/ Microformat Base] est un crawler d'agrégation de microformat open-source PHP, reconnaissant actuellement hreview, hcalendar et hcard.
; Ruby : [http://opensource.reevoo.com/2006/03/08/release-uformats-12/ uformats] est une librairie ruby qui peut parser [[hCalendar]], [[hCard]], [[hReview]] et [[rel-tag]]
; XSLT :
* X2V est disponible en tant que librairie XSLT
* [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent] de [[User:DanC]] comprent  toICal.xsl et des contenus de tests ;
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.


=== Implémentations potentielles ===
Ce sont des projets open source qui pourrait être améliorés potentiellement pour supporter hCalendar :
* [http://www.k5n.us/webcalendar.php?topic=About WebCalendar]
* [http://phpicalendar.net/documentation/index.php?title=Main_Page PHP iCalendar]
* [http://www.vcalendar.org VCalendar]
* Investigation: [http://wiki.mozilla.org/Calendar_Talk:Lightning#hCalendar_publish_and_subscribe_support Mozilla Calendar / Lightning / Sunbird hCalendar support discussion]


== Références ==
== Références ==
=== Références Normatives===
=== Références Normatives ===
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]
* [[hcard-fr|hCard]]
* [[hcard-fr|hCard]]
* [http://www.ietf.org/rfc/rfc2445.txt iCalendar RFC2445]
* [http://www.ietf.org/rfc/rfc2445.txt iCalendar RFC2445]
* [[iso-8601-fr|ISO8601]]


=== Références Informatives ===
=== Références Informatives ===
* [http://w3.org/TR/REC-CSS1 CSS1]
* [http://w3.org/TR/REC-CSS1 CSS1]
* [http://tantek.com/log/2004/09.html#hcalendar terme hCalendar introduit et défini sur le Web, 30 septembre 2004]
* [http://tantek.com/log/2004/09.html#hcalendar terme hCalendar présenté et défini sur le Web, 20040930]
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 Présentation HTML For Calendars, 11 septembre 2004]
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation, 20040911]
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Présentation : Simple Semantic Formats, 10 septembre 2004]
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 20040910]
* [http://www.ietf.org/internet-drafts/draft-royer-ical-basic-04.txt iCal-Basic draft 04]
* [http://ietfreport.isoc.org/idref/draft-royer-ical-basic/ iCal-Basic (latest)] [http://www.faqs.org/ftp/pub/pub/internet-drafts/draft-royer-ical-basic-04.txt (draft 04)]
* [http://www.w3.org/TR/NOTE-datetime W3C Note sur les Formats de Dates et d'Heure]
* [http://www.imc.org/pdi/ Internet Mail Consortium Personal Data Interchange vCard and vCalendar]
* Contributed from http://developers.technorati.com/wiki/hCalendar
* Contributed from http://developers.technorati.com/wiki/hCalendar
* [http://www.w3.org/TR/xhtml11 XHTML 1.1]


=== Travail similaire ===
==== Spécifications qui utilisent hCalendar ====
* [[xoxo-fr]]
* [[hreview-fr|hReview]]
 
 
== Pages Apparentées  ==
* [http://microformats.org/code/hcalendar/creator hCalendar creator] ([[hcalendar-creator-feedback-fr|feedback]]) - créez vos propres événements hCalendar.
* [[hcalendar-authoring-fr|hCalendar authoring]] - apprenez comment ajouter du balisage hCalendar à vos événements existants.
* [[hcalendar-faq-fr|hCalendar FAQ]] - Si vous avez quelque question à propos du hCalendar, regardez cette page, et si vous ne trouvez pas de réponses, ajoutez vos questions !
* [[hcalendar-parsing-fr|parsage hCalendar]] - Détails normatifs sur la manière de parser hCalendar.
* [[hcalendar-issues-fr|problématiques hcalendar]] - SVP ajoutez tous les problèmes que vous avez avec les spécifications sur le document problématiques
* [[hcalendar-profile-fr|hCalendar profile]] - Le profil XMDP pour hCalendar
 
Cette spécification est un chantier en cours. Au fur et à mesure que des aspects supplémentaires sont discutés, compris et écrits, ils seront ajoutés. Ces pensées, problématiques et questions sont maintenues dans des pages séparées.
 
* [[hcalendar-brainstorming-fr|hCalendar Brainstorming]] - l'endroit où nous maintenons nos brainstorms et autres explorations en rapport avec hCalendar
* [[hcalendar-tests-fr|hCalendar tests]] - une page wiki avec de vrais événements embarqués hCalendar pour faire des essais de parsage.
* [[icalendar-implementations-fr|implémentations iCalendar]]


==== Travaux en rapport ====
* [http://lists.osafoundation.org/pipermail/ietf-calsify/ IETF-calsify archives]
* [http://www.softwarestudio.org/iCal/2445Issues.html RFC2445 Issues List]
* [http://ietf.webdav.org/calsify/ CALSIFY WG Links And Resources]


== Pour aller plus loin  ==
== Pour aller plus loin  ==
* [http://www.livejournal.com/users/jwz/444651.html jwz - Hula] (required reading)
* [http://www.livejournal.com/users/jwz/444651.html jwz - Hula] (à lire)
* [http://www.jwz.org/doc/groupware.html Groupware Bad de Jamie Zawinski] critallise la raison pour hCalendar ('''emphase''' ajoutée ) :
* [http://www.jwz.org/doc/groupware.html Groupware Bad de Jamie Zawinski] critallise la raison pour hCalendar ('''emphase''' ajoutée ) :
<blockquote>"A cette heure, les gens font cela en publiant des fichiers .ics, mais ce n'est pas trivial de faire ainsi, et c'est du travail de la part des autres personnes pour les regarder. '''If it's not HTML hanging off our friend's home page  that can be viewed in any browser on a public terminal in a library,  the bar to entry is too high and it's useless.'''"</blockquote>
<blockquote>"A cette heure, les gens font cela en publiant des fichiers .ics, mais ce n'est pas trivial de faire ainsi, et c'est du travail de la part des autres personnes pour les regarder. '''If it's not HTML hanging off our friend's home page  that can be viewed in any browser on a public terminal in a library,  the bar to entry is too high and it's useless.'''"</blockquote>
Line 392: Line 315:
* [http://weblog.infoworld.com/udell/2006/01/11.html#a1368 Moving forward with microformats] de [http://weblog.infoworld.com/udell Jon Udell] fournit un exemple hCalendar et quelque discussion.
* [http://weblog.infoworld.com/udell/2006/01/11.html#a1368 Moving forward with microformats] de [http://weblog.infoworld.com/udell Jon Udell] fournit un exemple hCalendar et quelque discussion.
* Voir aussi les [http://www.technorati.com/cosmos/referer.html blogs qui discutent de cette page] et le [http://technorati.com/tags/hcalendar tag hCalendar]
* Voir aussi les [http://www.technorati.com/cosmos/referer.html blogs qui discutent de cette page] et le [http://technorati.com/tags/hcalendar tag hCalendar]
* [http://fr.wikipedia.org/wiki/HCalendar article Wikipedia sur hCalendar] (requiert un remaniement, une expansion et une traduction)
* [http://www.ablognotlimited.com/articles/getting-semantic-with-microformats-part-4-hcalendar/ Getting Semantic With Microformats, Part 4: hCalendar] par [http://www.ablognotlimited.com/ Emily Lewis] - ([http://microformateurs.org/2008/10/18/emily-lewis-parvenir-a-la-semantique-avec-les-microformats-4eme-partie-hcalendar/ Traduction en français])
* [http://www.peachpit.com/guides/content.aspx?g=webdesign&seqNum=356 Microformats: The Art of Markup: hCalendar] par [http://www.stuffandnonsense.co.uk/ Andy Clarke]
* [http://forabeautifulweb.com/blog/about/a_tribute_to_microformats_a_reader_question_answered/ A tribute to Microformats (a reader question answered)] par [http://www.stuffandnonsense.co.uk/ Andy Clarke]
=== Inspiration et Remerciements ===
Merci à :
* Adam Bosworth pour avoir mené la [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars présentation FOO Camp 2004 HTML For Calendars presentation] qui a rassemblé une masse critique de personnes intéressées.
== Pages Apparentées  ==
{{hcalendar-related-pages-fr}}
== Traductions ==
Lisez la spécification hCalendar dans d'autres <span id="languages-fr">langues</span> :
* [[hcalendar|anglais-US]] - seule version normative de référence.
* [[hcalendar-ja|日本語]] (japonais)
* [[hcalendar-pl|Polski]] (polonais)
* [[hcalendar-ru|Русский]] (russe)
[[Category:Specifications]]
[[Category:hCalendar]]

Latest revision as of 16:24, 18 July 2020

Tantek Çelik (Editeur, Auteur), Brian Suda (Auteur) (Traduction : Christophe Ducamp : hCalendar - Seule la spécification originale fait référence)


hCalendar est un format simple, ouvert pour publier des événements sur le web en utilisant une représentation 1:1 des propriétés VEVENT iCalendar (RFC2445) et valeurs en HTML. hCalendar est l'un des nombreux microformats standards ouverts adaptable pour l'embarquement de données dans le HTML/HTML5, et Atom/RSS/XHTML ou autre XML.

Les déclarations de Copyright et brevets sont en vigueur. Voir les remerciements.

Exemple

Voici un évènement simple en prose :

Le site microformats.org a été lancé le 2005-06-20 lors de la Conférence Supernova à San Francisco, CA, USA.

marqué avec hCalendar

<span class="vevent">
 <span class="summary">Le site microformats.org a été lancé</span>
 le <span class="dtstart">2005-06-20</span> 
 lors de la Conférence Supernova 
à <span class="location">San Francisco, CA, USA</span>.
</span>

Vous voulez démarrer par écrire un événement hCalendar ? Utilisez le hCalendar creator pour écrire un événement et le publier, ou suivez les trucs de publication hCalendar pour ajouter de la syntaxe hCalendar à votre page d'évènements à venir ou des événements que vous mentionnez dans vos billets de blogs, wikis, etc.


Statut

hCalendar 1.0 est une spécification microformats.org. La discussion publique sur hCalendar a pris place sur hcalendar-feedback, le canal irc #microformats sur irc.freenode.net, et la liste de discussion microformats-discuss.

Langues disponibles

La version anglaise de cette spécification est la seule version normative. Pour les traductions de ce document, voir la section #traductions.

Errata et Mises à Jour

Les erreurs connues et problématiques dans cette spécification sont corrigées dans les problématiques résolues et fermées. Vérifiez-les svp avant de rapporter des problématiques.

Notez en particulier la problématique-dtend qui impacte les dates de fin. Les implémentations DEVRAIENT implémenter la résolution de cette question aussi rapidement que possible.

La mise à jour hCalendar 1.0.1 est actuellement en développement et incorpore les corrections connues tout comme le modèle-de-classe-value.

Introduction

Le standard iCalendar (RFC2445), a été très largement mis en œuvre avec interopérabilité (par exemple l'application "iCal" d'Apple intégrée dans MacOSX).

En outre, les blogueurs discutent souvent d'évènements sur leurs blogs -- événements à venir, compte-rendus des événements passés, etc. Avec simplement une tout petit peu de structure, les blogueurs peuvent discuter d'événements dans leurs blogs d'une manière telle que les spiders et autres agrégateurs puissent retrouver de tels événements, les convertir automatiquement vers iCalendar, et les utiliser dans n'importe quel service ou application iCalendar.

Cette spécification présente le format hCalendar, qui est une représentation 1:1 du standard iCalendar précité en HTML sémantique. Les blogueurs peuvent embarquer à la fois les événements hCalendar directement dans leurs pages web, et les styliser avec CSS pour les faire apparaître comme désiré. En outre, hCalendar permet aux applications de retrouver l'information sur de tels événements à partir de pages Web sans avoir à référencer un fichier distinct.

Les mots-clés "DOIT", "NE DOIT PAS", "OBLIGATOIRE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDÉ", "PEUT" et "OPTIONNELLE" dans ce document doivent être interprétés comme décrits dans la RFC 2119.

Principes de Design XHTML Sémantique

Note : les Principes de Design XHTML Sémantique ont été écrits initialement dans le contexte de développement de hCard et hCalendar, par conséquent il peut être plus facile de comprendre ces principes dans le contexte de la méthodologie de design hCard (ce qui veut dire, lisez ça d'abord). Tantek

XHTML est construit sur du XML, et par conséquent les formats fondés sur XHTML peuvent être utilisés non seulement pour une présentation d'affichage pratique, mais aussi à des fins d'échanges de données. A bien des façons, les formats fondés sur XHTML illustrent le meilleur des mondes tant du HTML que du XML. Néanmoins au moment de construire des formats basés sur XHTML, cela aide d'avoir un ensemble de principes directeurs.

  1. Réutilisez autant que possible le schéma (noms, objets, propriétés, valeurs, types, hiérarchies, contraintes) à partir des standards de référence établis et bien supportés. Evitez de redéclarer les contraintes exprimées dans le standard source. Des mentions à titre d'information peuvent passer.
    1. Pour les types avec plusieurs composants, utilisez des éléments imbriqués avec des noms de classe équivalents aux noms des composants.
    2. Les composants pluriels sont produits au singulier, et par conséquent plusieurs éléments imbriqués sont utilisés pour représenter plusieurs valeurs de texte qui sont délimitées par des virgules.
  2. Utilisez la sémantique XHTML la plus précise pour construire des blocs pour chaque objet, etc.
  3. Autrement utilisez un élément générique structurel (par ex. <span> ou <div>), ou l'élément contextuel approprié (par ex. un <li> dans un <ul> ou <ol>).
  4. Utilisez des noms de classes basés sur des noms extraits du schéma original, à moins que le XHTML sémantique de construction de bloc ne représente précisément cette partie du schéma original. Si les noms dans le schéma original ne sont pas sensibles la casse, alors mettez tout dans un équivalent en bas de casse. Les noms de composants implicites en prose (plutôt qu'explicites dans le schéma défini) devraient aussi utiliser les équivalents bas de casse pour une facilité d'utilisation. Les espaces dans les noms des composants deviennent des caractères tiret '-'.
  5. Pour finir, si le format de la donnée selon le schéma original est trop long et/ou non amical sur le plan humain, utilisez <abbr> au lieu d'un élément générique structurel, et placez les données littérales dans l'attribut 'title' (là où vont les expansions abbr), et l'équivalent le plus bref et le plus lisible humainement dans l'élément lui-même. De plus amples explications de cet usage de <abbr> : Human vs. ISO8601 dates problem solved

Pour les implémentations pratiques, il devrait être noté que le support d'Internet Explorer pour styliser les éléments <abbr> est pauvre et peut obliger à emballer les éléments.


Format

En Général

Le standard iCalendar (RFC2445) constitue la base de hCalendar.

Note : l'éditeur et les auteurs de cette spécification sont en train de suivre l'effort "iCal-Basic" et ont l'intention de fonder le profil noyau du hcalendar sur iCal-Basic. Voir les références pour un lien vers le brouillon en cours.

Le format basique de hCalendar est d'utiliser les noms d'objet/propriété en bas de casse pour les noms de classes, et de mapper l'imbrication des objets iCalendar directement à l'intérieur des éléments XHTML imbriqués.


Nom de Classe Racine

Le nom de classe racine pour hCalendar est "vcalendar". Un élément avec un nom de classe "vcalendar" est lui-même appelé un hCalendar.

Le nom de classe racine pour les événements est "vevent". Un élément avec un nom de classe "vevent" est lui-même appelé un événement hCalendar.

Pour la commodité de publication, tant "vevent" et "vcalendar" sont traités comme des noms de classes racine pour les objectifs de parsage. Si un document contient des éléments avec le nom de classe "vevent" mais pas "vcalendar", la totalité du document a un contexte implicite "vcalendar".

vevent devrait être considéré comme obligatoire pour chaque inscription d'événement.

Propriétés et sous-propriétés

Les propriétés d'un hCalendar sont représentées par des éléments à l'intérieur du hCalendar. Les éléments avec les noms de classes des propriétés listées représentent les valeurs de ces propriétés. Quelques propriétés ont des sous-propriétés, et celles-ci sont représentées par des éléments à l'intérieur des éléments pour les propriétés.

Liste des Propriétés

Les propriétés hCalendar (sous-propriétés entre parenthèses comme ceci)

Requis :

Optionnel :

  • location
  • url
  • dtend (ISO date), duration (ISO date duration)
  • rdate, rrule
  • category, description
  • uid
  • geo (latitude, longitude)
  • attendee (partstat, role), contact, organizer
  • attach
  • status
  • ... note de l'auteur : cette liste est incomplète (une liste incomplète est mieux que pas de liste) et est en train d'être rédigée à partir de la RFC2445 vers ici. La liste au-dessus des propriétés sont celles qui sont souvent utilisées dans hCalendar sur le web.

Profil

Le profil XMDP hCalendar est sur http://microformats.org/profile/hcalendar

Le contenu qui utilise hCalendar DEVRAIT référencer ce profil, c'est à dire :

<head profile="http://microformats.org/profile/hcalendar">

ou

<link rel="profile" href="http://microformats.org/profile/hcalendar">

ou

Ce contenu utilise <a rel="profile" href="http://microformats.org/profile/hcalendar">hCalendar</a>.

Le contenu peut combiner les méthodes au-dessus.

Plus d'Equivalents Sémantiques

Pour quelques propriétés il existe un équivalent plus sémantique, et par conséquent elles reçoivent un traitement particulier, par exemple :

  • URL dans iCalendar devient <a class="url" href="...">...</a> à l'intérieur de l'élément avec class="vevent" dans le hCalendar.
  • ATTENDEE, CONTACT, et ORGANIZER dans le iCalendar PEUVENT être représentés par une hCard dans le hCalendar .
  • Un lieu nommé LOCATION (potentiellement avec une adresse et/ou geo) dans iCalendar PEUT être représenté par une hCard imbriquée dans le hCalendar. De la même façon, une adresse LOCATION PEUT être représentée par un adr et un geo (latitude et longitude) LOCATION PEUT être représenté par un geo.
  • UID dans le iCalendar devient simplement une autre sémantique appliquée à un URL spécifique pour un événement hCalendar.
  • ATTACH dans iCalendar devient un élément img ou object (où la valeur est stocké dans/retrouvée à partir des attributs 'src' ou 'data' respectivement). Un <a class="attach" href="...">...</a> peut aussi être utilisé, auquel cas l'attribut href est utilisé pour la valeur de propriété.

Propriétés Singulier vs Pluriel

Pour les propriétés qui sont singulières (par ex. "N" et "FN" extrait de vCard), le premier élément descendant avec cette classe-là devrait prendre effet, tous les autres étant ignorés.

Pour les propriétés qui peuvent être plurielles (par ex. "TEL" extrait de la vCard), chaque instance de classe devrait créer une instance de cette propriété. Les propriétés plurielles avec des sous-types (par ex. TEL avec WORK, HOME, CELL extrait de la vCard) peuvent être optimisées pour partager un élément commun pour la propriété elle-même, avec chaque instance de sous-type étant un descendant proprement classé de l'élément propriété.

Propriétés Plurielles Singularisées

Parce que les noms de propriétés plurielles deviennent leurs équivalents singuliers, même si la propriété plurielle originale n'a permis seulement qu'une valeur unique avec plusieurs composants, ces composants-là multiples sont représentés chacun avec leurs propres singularités nommées propriété et la propriété a en fait plusieurs valeurs et est sujette au traitement ci-dessus des propriétés à plusieurs valeurs.

Lisible par des Humains vs Machines

Si un élément <abbr> est utilisé pour une propriété, alors l'attribut 'title' de l'élément <abbr> est la valeur de la propriété, au lieu des contenus de l'élément, qui fournit à la place une version humainement présentable de la valeur. Cette spécification recommande que de tels éléments <abbr> soient utilisés pour les propriétés suivantes iCalendar :

  • DTSTART, DTEND, DURATION, RDATE, RRULE

Exemples

Voici un exemple échantillon avec plusieurs jours dans un iCalendar:

BEGIN:VCALENDAR
PRODID:-//XYZproduct//EN
VERSION:2.0
BEGIN:VEVENT
URL:http://conferences.oreillynet.com/pub/w/40/program.html
DTSTART:20051005
DTEND:20051008
SUMMARY:Web 2.0 Conference
LOCATION:Argent Hotel\, San Francisco\, CA
END:VEVENT
END:VCALENDAR

et un événement équivalent dans un format hCalendar avec différents éléments optimisés de façon appropriée. Voir hCalendar-exemple1-étapes pour la dérivation.

<div class="vevent">
 <a class="url" href="http://conferences.oreillynet.com/pub/w/40/program.html">
  http://conferences.oreillynet.com/pub/w/40/program.html
 </a>
 <span class="summary">Web 2.0 Conference</span>: 
 <abbr class="dtstart" title="2005-10-05">October 5</abbr>-
 <abbr class="dtend" title="2005-10-07">7</abbr>,
 at the <span class="location">Argent Hotel, San Francisco, CA</span>
</div>


Qui pourrait être affiché comme :

http://conferences.oreillynet.com/pub/w/40/program.html  Web 2.0 Conference: October 5- 7, at the Argent Hotel, San Francisco, CA

Note 1 : Remarquez que c'est un microformat hCalendar live, qui sera trouvé sur cette page par les parseurs.

Note 2 : Cet exemple avait "2005-10-08" comme la valeur de dtend, mais selon la résolution de la problématique-dtend, cette valeur a été modifié en "2005-10-07" afin d'encourager les éditeurs/implémenteurs à mettre à jour immédiatement leur code/marquage et le le tester.

Note 3 : Remarquez que le iCalendar dans la première partie de l'exemple a le code DTEND:20051008. Ce "8" n'est pas une faute de typo. iCalendar utilise des dates de fin globalesexclusives (valeurs DTEND) et par conséquent requiert que la valeur DTEND soit réglée sur le jour complet après ce que les auteurs de contenu affichent de manière visible comme la date de fin d'un événement. La convention des dates de fin exclusives de iCalendar s'est avérée comme problematique et déroutante pour les auteurs de contenus et les éditeurs. Par conséquent, selon la résolution de la problématique dtend dans le hCalendar, la date de fin est déclarée exactement comme ce que publient les événements existants comme dates de fin visibles pour les humains, avec une date de fin inclusive (valeur de propriété dtend), dans cet exemple, 2005-10-07.

Exemple de réunion

L'exemple suivant spécifie un rendez-vous programmé qui commence le 12 mars 1998 à 08:30 EST et se termine à 09:30 EST le 12 mars 1998.

BEGIN:VCALENDAR
BEGIN:VEVENT
UID:guid-1.host1.com
DTSTAMP:19980309T231000Z
DESCRIPTION:Project XYZ Review Meeting
SUMMARY:XYZ Project Review
DTSTART:19980312T133000Z
DTEND:19980312T143000Z
LOCATION:1CP Conference Room 4350
END:VEVENT
END:VCALENDAR


L'équivalent en hCalendar :

<div class="vevent">
<h3 class="summary">XYZ Project Review</h3>
<p class="description">Project XYZ Review Meeting</p>
<p>To be held on 
 <span class="dtstart">
  <abbr class="value" title="1998-03-12>the 12th of March</abbr> 
  from <span class="value">8:30am</span> <abbr class="value" title="-0500">EST</abbr>
 </span> until 
 <span class="dtend">
  <span class="value">9:30am</span> <abbr class="value" title="-0500">EST</abbr>
 </span>
</p>
<p>Location: <span class="location">1CP Conference Room 4350</span></p>
<small>Booked by: <span class="uid">guid-1.host1.com</span> on 
 <span class="dtstamp">
  <abbr class="value" title="1998-03-09">the 9th</abbr> at <span class="value">6:00pm</span>
 </span>
</small>
</div>

Ceci pourrait s'afficher comme :


XYZ Project Review

Project XYZ Review Meeting

To be held on until

Location: 1CP Conference Room 4350

Booked by: guid-1.host1.com on

Note 1 : L'information produit n'est pas nécessaire parce que le hCalendar est un format interchangeable. Quand hCalendar est transformé en iCalendar, le moteur transformant devrait ajouter sa propre ID produit.

Note 2 : Un élément entourant le <span class="vcalendar"> est optionnel et laissé comme ceci. Il est optionnel parce que le contexte d'un vcalendar est implicite quand un vevent est rencontré. Le contexte/étendue implicite est celui du document. Les auteurs peuvent explicitement utiliser des éléments avec class="vcalendar" pour emballer les ensembles de vevents qui appartiennent tous au même calendrier, par exemple au moment de publier plusieurs calendriers sur la même page.

Note 3 : L'information de version n'est pas nécessaire directement dans la syntaxe hCalendar parce que la version sera définie par le profil de qui est utilisé/référencé dans l'attribut 'profile' de l'élément <head>.

Note 4 : Les dates-horaires ISO8601 (requis par iCalendar) ne sont pas très humains. En outre, l'année est souvent comprise implicitement par les humains à partir du contexte. Par conséquent, le modèle de classe value et les éléments <abbr> sont utilisés pour fournir simultanément des dates et/ou horaires compréhensibles par les humains dans les contenus visibles de l'élément, tout en plaçant respectivement des dates et horaires ISO8601 parsables par les machines si c'est nécessaire dans l'attribut 'title'. Selon le modèle-de-classe-value, les dates et horaires séparés DEVRAIENT être utilisés par les auteurs plutôt qu'un date-horaire complet ISO8601, et ce pour une meilleure lisibilité et écoute.

Note 5 : Selon la résolution dtend-problématique, les dates DTEND sont fournies parce que les humains s'attendent à ce qu'elles soient (cohérentes avec le jour à laquelle un événement se termine), plutôt que la définition trompeuse de iCalendar (le jour d'après). De ce fait, les processeurs de hCalendar qui produisent des iCalendar doivent faire la transformation, ce qui revient à traiter une date de fin hCalendar globale dtend comme *inclusive*, et la convertir en une date de fin *DTEND exclusive* au moment de produire iCalendar.

Note 6 : L'endroit (Location) dans cet exemple contient une structure implicite (nom du lieu de l'événement, ville, état) qui devrait être balisée explicitement sous une hCard. Voir hCalendar brainstorming: hCard locations pour une explication sur la façon de faire ça.

Plus d'exemples

Voir hCalendar exemples pour plus d'exemples, y compris des exemples extraits de la RFC 2445 iCalendar convertis en hCalendar.

Exemples dans la jungle

Cette section est informative. Le nombre d'exemples hCalendar dans la jungle a grandi bien au-delà de la capacité de pouvoir être maintenus à l'intérieur de cette spécification. Ils ont été migrés vers une page séparée.

Voir hCalendar Exemples dans la jungle.

Implémentations

Cette section est à des fins d'étude. Le nombre d'implémentations hCalendar a grandi bien au delà des capacités de pouvoir les maintenir dans la page. Elles ont été migrées vers une page séparée.

Voir hCalendar Implementations.

Articles

Cette section est à des fins d'étude.

Voir : articles-hCalendar.

Boutons

Cette section est à des fins d'étude. N'oubliez pas que vous pouvez ajouter un de nos boutons vers la page, pour indiquer la présence de microformats hCalendar. Par exemple : microformat_hcalendar.png. Si vous pouvez le lier vers cette page (ou même sur une page sur votre site web, à propos de votre utilisation des microformats), plus il y en aura, mieux ce sera !


Copyright

Selon la parution dans le domaine public sur les pages utilisateur des auteurs (Tantek Çelik, Brian Suda), cette spécification est tombée dans le domaine public.

Obligation de Contribution dans le Domaine Public. Du fait que le(s) auteur(s) aient publié leurs travaux dans le domaine public, afin de maintenir le statut de ce travail dans le domaine public, tous les contributeurs sur cette page sont aussi d'accord pour publier leurs contributions dans le domaine public. Les contributeurs peuvent indiquer leur consentement en ajoutant le modèle "public-domain-release" sur leur page utilisateur selon les instructions de Déclarations d'être Volontaire pour le Domaine Public. Les contributions non publiées dans le domaine public peuvent être défaites/retirées.

Brevets

Cette spécification est sujette à une politique de brevets libres de droits, par ex. pour la Politique de Brevet du W3C, IETF RFC3667 et RFC3668.


Références

Références Normatives

Références Informatives

Spécifications qui utilisent hCalendar

Travaux en rapport

Pour aller plus loin

"A cette heure, les gens font cela en publiant des fichiers .ics, mais ce n'est pas trivial de faire ainsi, et c'est du travail de la part des autres personnes pour les regarder. If it's not HTML hanging off our friend's home page that can be viewed in any browser on a public terminal in a library, the bar to entry is too high and it's useless."

Inspiration et Remerciements

Merci à :

Pages Apparentées

Cette spécification est un chantier en cours. Au fur et à mesure que les aspects additionnels sont discutés, compris et écrits, ils seront ajoutés. Ces idées et questions sont maintenues sur des pages séparées.

Traductions

Lisez la spécification hCalendar dans d'autres langues :