ICalendar
Un article de Wikipédia, l'encyclopédie libre.
- Pour les articles homonymes, voir iCal (homonymie).
En raison de limitations techniques, la typographie souhaitable du titre, « iCalendar », n'a pu être restituée correctement ci-dessus.
Vous venez d'apposer le bandeau {{Demande de traduction}}
du Projet:Traduction/*/Demandes.
Veuillez créer (exemple détaillé) la sous-page qui assurera le suivi du processus de traduction en cliquant sur Projet:Traduction/ICalendar.
Puis suivez les instructions fournies sur la page ainsi créée.
iCalendar est un standard (RFC 2445) pour les échanges de données de calendrier. Ce standard est aussi connu sous le nom d'iCal.
iCalendar permet aux utilisateurs d'envoyer des demandes de rendez-vous, et de les transmettre à d'autres utilisateurs via emails. Les destinataires de l'email contenant l'iCalendar (s'ils possèdent un logiciel le supportant) peuvent facilement répondre à l'expéditeur ou proposer une autre date/heure de rendez-vous.
Il est implémenté/supporté par un large nombre de logiciels, tels que : iCal d'Apple, Chandler, Lotus Notes, ScheduleWorld, KOrganizer, Mozilla Calendar (y compris Mozilla Sunbird), Mulberry, Ximian Evolution, Windows Calendar et, via une extension, Microsoft Outlook (voir ci-dessous).
Les données iCalendar sont typiquement échangées en utilisant le traditionnel email, mais le standard a été conçu pour être indépendant du protocole de transport. Par exemple, il peut aussi bien être partagé et édité en utilisant un serveur WebDAV. Les serveurs web simplistes (ne proposant que le protocole HTTP) sont souvent utilisés pour distribuer des données iCalendar concernant un évenement et pour publier les temps de travail d'un individu. Les sites d'événements sur le web embarquent souvent des données iCalendar dans leurs pages web en utilisant le protocole hCalendar, une représentation 1:1 d'iCalendar, mais écrit en XHTML.
Sommaire |
[modifier] Spécifications de Base
La spécification iCalendar est le résultat du travail de l'Internet Engineering Task Force Calendaring and Scheduling Working Group (présidé par Anik Ganguly de l'Open Text Inc.), et a été écrit par Frank Dawson de Lotus Development Corporation et Derik Stenerson de Microsoft Corporation. iCalendar est fortement basé sur la récente spécification industrielle vCalendar du Internet Mail Consortium (IMC). Après qu'iCalendar ait été publié, IMC a déclaré qu'il "espère que tous les réalisateurs de vCalendar profitent de ces nouveaux standards ouverts et rendent leurs logiciels compatibles avec vCalendar 1.0 et iCalendar."
Les données iCalendar ont comme type-MIME text/calendar. L'extension ".ics" est utilisé pour désigner un fichier contenant un ensemble arbitraire d'informations de calendrier ou de planification cohérent avec ce type de contenu MIME. L'extension de fichier ".ifb" sert pour désigner un fichier contenant des informations de disponibilité cohérentes avec ce type-MIME. Le type de fichier "iCal" est destiné aux systèmes d'exploitation d'Apple Macintosh pour désigner un fichier contenant des informations de date et planification. Le type de fichier "iFBf" est utilisé dans les systèmes d'exploitation d'Apple Macintosh pour désigner un fichier contenant des informations de disponibilité.
[modifier] Core object
L'objet de plus haut-niveau dans iCalendar est le « Calendaring and Scheduling Core Object ». C'est une collection d'informations sur les calendaring and scheduling. Typiquement, cette information consiste en un unique objet iCalendar. Cependant, plusieurs objets de type iCalendar peuvent séquentiellement être regroupés ensembles. La première ligne doit être "BEGIN: VCALENDAR", et la dernière doit être "END: VCALENDAR"; le contenu qui se trouve entre ces deux lignes est appelé "icalbody". Le corps d'un objet iCalendar (le "icalbody") consiste en une suite de propriétés de calendrier et un ou plus composants de calendrier. Les propriétés du calendrier sont des attributs qui s'appliquent à la totalité du calendrier. Les composants du calendrier sont une collection de propriétés qui suivent une syntaxe particulière. Par exemple, le composant peut spécifier un événement, une tâche, une entrée de journal, une information sur le fuseau horaire, une plage de temps libre ou occupé ou encore une alarme.
Voilà un exemple simple (depuis la RFC 2445) d'un objet iCalendar qui définit un événement "Bastille Day Party" qui se déroule entre le 14 Juillet 1997 à 17h00 (UTC) jusqu'au 15 Juillet 1997 à 03h59m59s (UTC) :
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT DTSTART:19970714T170000Z DTEND:19970715T035959Z SUMMARY:Bastille Day Party END:VEVENT END:VCALENDAR
Il existe différents types de composants défini dans la norme. Ils sont décrits ci-dessous.
[modifier] Evénements (VEVENT)
Un composant "VEVENT" offre un panel de propriétés qui décrivent un évènement comme représentant une quantité de temps planifiée sur un calendrier. En temps normal, un évènement valide rendra ce temps occupé, mais il est possible de le configurer en mode "Transparent", pour changer cette interprétation.
Les propriétés classiques d'un composant VEVENT sont :
- DTSTART: Date de début de l'évènement
- DTEND: Date de fin de l'évènement
- SUMMARY: Titre de l'évènement
- LOCATION: Lieu de l'évènement
- CATEGORIES: Catégorie de l'évènement (ex: Conférence, Fête, ...)
- STATUS: Statut de l'évènement (TENTATIVE, CONFIRMED, CANCELLED)
- DESCRIPTION: Description de l'évènement
Un composant VEVENT peut contenir un composant VALARM pour définir des alarmes. De tels évenements ont une propriété DTSTART property qui définit sa date et son heure de début, et une propriété DTEND définissant sa date et son heure de fin. Si l'évènement est périodique, DTSTART définit le début du premier évenement.
Les évènements périodique sans heure spécifique, comme les anniversaires ou les rappels périodiques, sont aussi représentés en utilisant des VEVENT. Ces événements devraient avoir une valeur de type DATE pour la propriété "DTSTART" à la place d'un type DATE-TIME par défaut, et ne doivent pas inclure une propriété "DTEND".
[modifier] To-do (VTODO)
Le composant "VTODO" décrit un objet "à faire", c'est à dire, un objet-action ou une tâche.
Ce qui suit est un exemple d'un "to-do" dont l'échéance est le 15 avril 1998, selon la RFC 2445. Une alarme sonore a été spécifiée pour avertir l'utilisateur du calendrier à midi, le jour précédent la tâche à effectuer. L'alarme sera répétée 4 fois supplémentaires avec un intervalle d'une heure. La définition du "to-do" à été modifiée deux fois depuis sa création initiale.
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VTODO DTSTAMP:19980130T134500Z SEQUENCE:2 UID:uid4@host1.com ORGANIZER:MAILTO:unclesam@us.gov ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com DUE:19980415T235959 STATUS:NEEDS-ACTION SUMMARY:Submit Income Taxes BEGIN:VALARM ACTION:AUDIO TRIGGER:19980403T120000 ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio- files/ssbanner.aud REPEAT:4 DURATION:PT1H END:VALARM END:VTODO END:VCALENDAR
[modifier] Entrée Journal (VJOURNAL)
Le composant VJOURNAL décrit une entrée journal. Il lie simplement un texte descriptif à une date particulière, et peut être utilisé pour enregistrer l'activité journalière ou l'accomplissement de tâches. Un composant "VJOURNAL", n'occupe pas de temps, il n'a donc aucun effet sur le temps libre ou occupé (comme les entrées "TRANSPARENT"). En pratique, seulement quelques implémentations du format iCalendar supportent les entrées "VJOURNAL".
L'exemple suivant est un celui d'une écriture d'un journal, selon la RFC 2445:
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VJOURNAL DTSTAMP:19970324T120000Z UID:uid5@host1.com ORGANIZER:MAILTO:jsmith@host.com STATUS:DRAFT CLASS:PUBLIC CATEGORY:Project Report, XYZ, Weekly Meeting DESCRIPTION:Project xyz Review Meeting Minutes\n Agenda\n1. Review of project version 1.0 requirements.\n2. Definition of project processes.\n3. Review of project schedule.\n Participants: John Smith, Jane Doe, Jim Dandy\n-It was decided that the requirements need to be signed off by product marketing.\n-Project processes were accepted.\n -Project schedule needs to account for scheduled holidays and employee vacation time. Check with HR for specific dates.\n-New schedule will be distributed by Friday.\n- Next weeks meeting is cancelled. No meeting until 3/23. END:VJOURNAL END:VCALENDAR
[modifier] Temps libre/occupé (VFREEBUSY)
Un composant "VFREEBUSY" décrit soit une requête concernant du temps libre/occupé, soit une réponse à une requête, ou publie un ensemble de temps occupé.
Comme décrit dans la RFC 2445:
When used to request free/busy time information, the "ATTENDEE" property specifies the calendar users whose free/busy time is being requested; the "ORGANIZER" property specifies the calendar user who is requesting the free/busy time; the "DTSTART" and "DTEND" properties specify the window of time for which the free/busy time is being requested; the "UID" and "DTSTAMP" properties are specified to assist in proper sequencing of multiple free/busy time requests.
When used to reply to a request for free/busy time, the "ATTENDEE" property specifies the calendar user responding to the free/busy time request; the "ORGANIZER" property specifies the calendar user that originally requested the free/busy time; the "FREEBUSY" property specifies the free/busy time information (if it exists); and the "UID" and "DTSTAMP" properties are specified to assist in proper sequencing of multiple free/busy time replies.
When used to publish busy time, the "ORGANIZER" property specifies the calendar user associated with the published busy time; the "DTSTART" and "DTEND" properties specify an inclusive time window that surrounds the busy time information; the "FREEBUSY" property specifies the published busy time information; and the "DTSTAMP" property specifies the date/time that iCalendar object was created.
Ce qui suit est un exemple d'une publication de temps occupé selon la RFC 2445. L'objet iCalendar devrait être placé à une certaine URL avec l'extension ".ifb" :
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//RDU Software//NONSGML HandCal//EN BEGIN:VFREEBUSY ORGANIZER:MAILTO:jsmith@host.com DTSTART:19980313T141711Z DTEND:19980410T141711Z FREEBUSY:19980314T233000Z/19980315T003000Z FREEBUSY:19980316T153000Z/19980316T163000Z FREEBUSY:19980318T030000Z/19980318T040000Z URL:http://www.host.com/calendar/busytime/jsmith.ifb END:VFREEBUSY END:VCALENDAR
[modifier] Les autres composants
D'autres composants définis dans le standard sont "VTIMEZONE" (pour définir des fuseaux horaires), et "VALARM" (pour définir des alarmes). On peut remarquer que certains composants incluent d'autres composants ("VALARM" est souvent inclus dans d'autres composants), et que certains composants sont définis pour gérer d'autres composants définis après eux ("VTIMEZONE" est souvent utilisé de cette manière).
[modifier] L'échange de données avec iCalendar
Le format iCalendar est conçu pour décrire des données calendaires (comme des évènements), et intentionnellement, ne décrit pas ce qu'il faut faire avec des données "classiques"(textes, etc.).
Un compagnon, "iCalendar Transport-Independent Interoperability" (iTIP) (RFC 2446), définit un protocole pour l'échange d'objet iCalendar dans un but de grouper les informations calendaires et de planification entre les "Calendar Users" (CUs); quiconque débute l'échange de données prend le rôle de "l'organisateur". Ce standard définit des méthodes comme PUBLISH, REQUEST, REPLY, ADD, CANCEL, REFRESH, COUNTER (pour négocier une modification d'un entrée) et DECLINE-COUNTER (pour refuser la contre-proposition).
Un autre compagnon, "iCalendar Message-based Interoperability Protocol (IMIP)" (RFC 2447), définit une méthodologie standard pour implémenter iTIP dans le protocole de transport, comme celui des emails.
Le "Guide to Internet Calendaring" (RFC 3283) décrit la relation entre iCalendar et divers standards apparentés (présents et futurs).
Le format iCalendar a été conçu pour assurer l'interopérabilité des données calendaires ; tandis que les fonctionnalités les plus souvent utilisées par les utilisateurs sont largement supportées par les implémentations d'iCalendar et peuvent communiquer, les opérations entre les implémentations de fonctionnalités plus avancées sont "boiteuses".
"Calendar Access Protocol" (RFC 4324) provides a provides a universal methodology for implementing real-time calendaring.
The IETF Calendaring and Scheduling (calsch) Working Group has in the past worked on various extensions to, and supporting protocols for, iCalendar. Officially the working group has been closed in September 2004 as an IETF working group (so that it can be reorganized); its mailing list continues to be used for calendar-related discussions. [1] [2]
[modifier] Microsoft Outlook
Microsoft Outlook supporte aussi la norme iCalendar, même si de nombreux bugs interviennent dans ce support (beaucoup d'entre eux sont corrigeables par de simples patches) [3]; en particulier, les utilisateurs de Outlook 2000 ne peuvent utiliser les fichiers iCalendar créé à partir de Outlook 2002 sans patcher leur application (la version 2000 contient une erreur dans son implémentation de la norme iCalendar) [4]. Les utilisateurs d'Outlook doivent configurer leur outil de mail de manière à utiliser le standard Internet à la place du format propriétaire Microsoft. [5] [6] [7] Les utilisateurs de Microsoft Outlook 2003 peuvent aussi installer RemoteCalendars, ( another link) de manière à souscrire, supprimer ou recharger un iCalendar générique via le web.
La nouvelle version Microsoft Outlook 2007 permet maintenant de s'abonner à des calendriers iCal et de synchroniser l'affichage avec le contenu en ligne du ou des calendriers ciblés [8]
[modifier] Voir aussi
- vCalendar
- vCard
- hCard
- iCal
- CalDAV
- xCal
- Scheduling OSID provides a software interface abstraction for using calendaring protocols
[modifier] Liens externes
(en)* GroupDAV
- Apple: iSync
- iCal Events widget for Dashboard
- Internet Calendaring and Scheduling Core Object Specification (iCalendar) - RFC 2445 - IETF. November 1998
- Article "Microsoft Outlook Interoperability with RFC2445" by Mark Swanson
- Dawson, F., Mansour, S. and S. Silverberg, "iCalendar Message-based Interoperability Protocol (IMIP)", RFC 2447, November 1998.
- Silverberg, S., Mansour, S., Dawson, F. and R. Hopson, "iCalendar Transport-Independent Interoperability Protocol (iTIP) : Scheduling Events, Busy Time, To-dos and Journal Entries", RFC 2446, November 1998.
- Internet Mail Consortium (IMC). "Personal Data Interchange: vCard and vCalendar". This describes the relationship of vCard, vCalendar, and iCalendar, and includes IMC's request for implementors to support both vCalendar and iCalendar.
- "Guide to Internet Calendaring". RFC 3283.
- "Calendar Access Protocol". RFC 4324.
- iCalendar in XML Format (xCal-Basic)
- University of California at Berkeley July 28-30, 2004. Calconnect IV Interoperability Testing of RFC 2445, RFC 2446 and RFC 2447
- iCalendar DTD Document (xCal)
- Support for iCalendar and vCard in Domino
- iCalendar Files on Mac OS X
- iCal::Parser by Rick Frankel
- iCal4j
- JiCal - Java iCalendar Toolset and Group Scheduler by Stuart Guthrie
- RemoteCalendars, a plugin for Microsoft Outlook 2003, for subscribing an iCalendar through the Web.
- Article "Using PHP to Make Basic vCalendar/iCalendar Events" by Shu-wai Chow
- Bennu - PHP iCalendar library
- vobject - Python iCalendar library
- iCalendar package for Python
- Internet calendaring, Ruby style
- Project24 - site for downloading / subscribeing dynamically generated calendars