Internet, le 5 avril 2008,
Ce document qui est une traduction du document RFC 2445 de l'IETF (Internet Engineering Task Force) peut comporter des erreurs ou en introduire de nouvelles. Seul le document original trouvé à ftp://ftp.rfc-editor.org/in-notes/rfc2445.txt fait référence.
La traduction est disponible sous licence Creative Commons (http://creativecommons.org/licenses/by/2.0/fr/)
Traduit par Jean-Jacques Solari.

RFC 2445

Network Working Group                                          F. Dawson
Document RFC : 2445 (errata)                                       Lotus
Categorie    : Standards Track                              D. Stenerson
                                                               Microsoft
                                                           Novembre 1998

Spécification de l'objet central de la gestion d'agenda et de planification (iCalendar)

Statut de ce mémoire

Ce document définit un protocole du circuit des standards Internet de la communauté Internet, et il appelle le débat et des suggestions d'amélioration. Veuillez consulter l'édition courante du document Internet Official Protocol Standards (STD 1) pour l'état de standardisation et le statut de ce protocole. La distribution de ce mémoire est libre.

Notice de droits d'auteur

Copyright (C) The Internet Society (1998). All Rights Reserved.

Résumé

Il existe un besoin clair de fournir et déployer des services interopérables de gestion d'agenda (calendaring) et de planification (scheduling) pour Internet. Aujourd'hui, les produits courants de planification de groupes et de gestion d'informations personnelles, ou PIM (Personal Information Management), sont étendus pour être utilisés à travers Internet selon des modes propriétaires. Ce mémoire se caractérise par la définition d'un format commun pour échanger des informations de gestion d'agenda et de planification à travers Internet de manière transparente.

Ce mémoire est formaté comme l'enregistrement d'un type de média MIME selon le [RFC 2048]. Toutefois, le format de ce mémoire est également utilisable ailleurs que dans un type de contenu de message MIME.

La valeur de type de média proposée est "text/calendar". Cette chaîne étiquetterait un type de média contenant des informations de gestion d'agenda et de planification codées comme du texte formaté de la façon décrite ensuite.

Ce type de média MIME propose un type de contenu standard pour capturer des informations de calendrier d'événements, de tâches et d'écritures de journal. Il peut aussi servir à communiquer des informations de temps libre ou occupé. Le type de contenu convient comme entité de message MIME à transférer par des systèmes de courrier électronique fondés sur les extensions MIME, en utilisant le protocole HTTP ou un autre transport Internet. De plus, le type de contenu peut servir d'objet d'interaction entre des applications bureautiques en utilisant les capacités de presse-papiers, de glisser-déposer ou de gestion de fichiers du système d'exploitation.

Ce mémoire se fonde sur des travaux précédents pour la spécification vCalendar concernant l'échange d'informations personnelles de gestion d'agenda et de planification. Afin d'éviter la confusion avec les travaux cités, ce mémoire sera connu sous le nom de spécification iCalendar.

Ce mémoire définit le format de description de méthodes d'objet iCalendar. Une méthode d'objet iCalendar est un ensemble de contraintes d'utilisation pour l'objet iCalendar. Par exemple, ces méthodes peuvent définir des messages de planification pour demander la planification d'un événément, pour répondre à une demande d'événement, pour envoyer un avis d'annulation d'un événement, pour modifier ou remplacer la définition d'un événement, pour fournir une contre-proposition par rapport à une demande d'événement originale, pour déléguer une demande d'événement à une autre personne, pour demander les temps libres ou occupés, pour répondre à une demande de temps libre ou occupé, ou pour fournir des messages de planification similaires pour un composant de calendrier d'histoire ou d'écriture de journal. Le protocole iTIP (iCalendar Transport-indendent Interoperability Protocol) défini dans [ITIP] est un tel protocole de planification.

Table des matières

  1. 1. Introduction
  2. 2. Grammaire de base et conventions
    1. 2.1. Conventions de formatage
    2. 2.2. Mémoires associés
    3. 2.3. Observations internationales
  3. 3. Informations d'enregistrement
    1. 3.1. Type de contenu
    2. 3.2. Paramètres
    3. 3.3. Champs d'en-tête du contenu
    4. 3.4. Observations de codage
    5. 3.5. Observations de sécurité
    6. 3.6. Observations d'interopérabilité
    7. 3.7. Applications utilisant ce type de média
    8. 3.8. Autres informations
    9. 3.9. Numéros magiques
    10. 3.10. Extensions de fichiers
    11. 3.11. Personnes à contacter pour d'autres renseignements
    12. 3.12. Utilisation prévue
    13. 3.13. Auteurs et contrôleurs des changements
  4. 4. Spécification de l'objet iCalendar
    1. 4.1. Lignes de contenu
      1. 4.1.1. Séparateurs de listes et de champs
      2. 4.1.2. Valeurs multiples
      3. 4.1.3. Contenu binaire
      4. 4.1.4. Jeu des caractères
    2. 4.2. Paramètres de propriétés
      1. 4.2.1. Représentation textuelle secondaire
      2. 4.2.2. Nom commun
      3. 4.2.3. Type d'utilisateur de calendrier
      4. 4.2.4. Délégants
      5. 4.2.5. Délégataires
      6. 4.2.6. Référence d'entrée de répertoire
      7. 4.2.7. Codage incorporé
      8. 4.2.8. Type de format
      9. 4.2.9. Type de temps libre ou occupé
      10. 4.2.10. Langue
      11. 4.2.11. Adhésion à un groupe ou une liste
      12. 4.2.12. Statut de participation
      13. 4.2.13. Portée de l'identificateur de récurrence
      14. 4.2.14. Relation de déclenchement d'alerte
      15. 4.2.15. Type de relation
      16. 4.2.16. Rôle de participation
      17. 4.2.17. Attente RSVP
      18. 4.2.18. Expéditeur
      19. 4.2.19. Identificateur de fuseau horaire
      20. 4.2.20. Types de données des valeurs
    3. 4.3. Types de données des valeurs de propriétés
      1. 4.3.1. Binaire
      2. 4.3.2. Booléen
      3. 4.3.3. Adresse d'utilisateur de calendrier
      4. 4.3.4. Date
      5. 4.3.5. Date et heure
      6. 4.3.6. Durée
      7. 4.3.7. Flottant
      8. 4.3.8. Entier
      9. 4.3.9. Période de temps
      10. 4.3.10. Règle de récurrence
      11. 4.3.11. Texte
      12. 4.3.12. Heure
      13. 4.3.13. Adresse URI
      14. 4.3.14. Décalage UTC
    4. 4.4. Objet iCalendar
    5. 4.5. Propriété
    6. 4.6. Composants de calendrier
      1. 4.6.1. Composant d'évévement
      2. 4.6.2. Composant de tâche
      3. 4.6.3. Composant de journal
      4. 4.6.4. Composant de temps libre ou occupé
      5. 4.6.5. Composant de fuseau horaire
      6. 4.6.6. Composant d'alerte
    7. 4.7. Propriétés de calendrier
      1. 4.7.1. Système de calendrier
      2. 4.7.2. Méthode
      3. 4.7.3. Identificateur de produit
      4. 4.7.4. Version
    8. 4.8. Propriétés des composants
      1. 4.8.1. Propriétés de composant descriptives
        1. 4.8.1.1. Fichier joint
        2. 4.8.1.2. Catégories
        3. 4.8.1.3. Classification
        4. 4.8.1.4. Commentaire
        5. 4.8.1.5. Description
        6. 4.8.1.6. Position géographique
        7. 4.8.1.7. Lieu
        8. 4.8.1.8. Pourcentage de réalisation
        9. 4.8.1.9. Priorité
        10. 4.8.1.10. Ressources
        11. 4.8.1.11. Statut
        12. 4.8.1.12. Résumé
      2. 4.8.2. Propriétés de composant de date et d'heure
        1. 4.8.2.1. Date et heure de réalisation
        2. 4.8.2.2. Date et heure de fin
        3. 4.8.2.3. Date et heure d'échéance
        4. 4.8.2.4. Date et heure de début
        5. 4.8.2.5. Durée
        6. 4.8.2.6. Temps libre ou occupé
        7. 4.8.2.7. Transparence du temps
      3. 4.8.3. Propriétés de composant de fuseau horaire
        1. 4.8.3.1. Identificateur du fuseau horaire
        2. 4.8.3.2. Nom du fuseau horaire
        3. 4.8.3.3. Décalage de fuseau horaire depuis
        4. 4.8.3.4. Décalage de fuseau horaire vers
        5. 4.8.3.5. Adresse URL de fuseau horaire
      4. 4.8.4. Propriétés de composant de relation
        1. 4.8.4.1. Adhérent
        2. 4.8.4.2. Coordonnées
        3. 4.8.4.3. Gestionnaire
        4. 4.8.4.4. Identificateur de récurrence
        5. 4.8.4.5. Relation
        6. 4.8.4.6. Adresse URL
        7. 4.8.4.7. Identificateur unique
      5. 4.8.5. Propriétés de composant de récurrence
        1. 4.8.5.1. Exceptions de dates et heures
        2. 4.8.5.2. Règle d'exception
        3. 4.8.5.3. Dates et heures de récurrence
        4. 4.8.5.4. Règle de récurrence
      6. 4.8.6. Propriétés de composant d'alerte
        1. 4.8.6.1. Action
        2. 4.8.6.2. Compte des répétitions
        3. 4.8.6.3. Déclenchement
      7. 4.8.7. Propriétés de composant de gestion des changements
        1. 4.8.7.1. Date et heure de création
        2. 4.8.7.2. Estampille
        3. 4.8.7.3. Dernière modification
        4. 4.8.7.4. Numéro de séquence
      8. 4.8.8. Propriétés de composant diverses
        1. 4.8.8.1. Propriétés non standards
        2. 4.8.8.2. État de la demande
  5. 5. Exemples d'objets iCalendar
  6. 6. Pratiques recommandées
  7. 7. Enregistrement des éléments de type de contenu
    1. 7.1. Enregistrement des méthodes d'objets iCalendar nouvelles et modifiées
    2. 7.2. Enregistrement des nouvelles propriétés
      1. 7.2.1. Définir la propriété
      2. 7.2.2. Publier la définition de la propriété
      3. 7.2.3. Accorder un délai pour les commentaires
      4. 7.2.4. Soumettre la propriété pour approbation
    3. 7.3. Contrôle des modifications de propriétés
  8. 8. Références
  9. 9. Remerciements
  10. 10. Coordonnées des auteurs et des présidents
  11. 11. Full Copyright Statement

1. Introduction

Le recours à la gestion d'agenda et à la planification s'est considérablement accrû au cours de la décennie. L'économie des entreprises dépend de plus en plus de la planification rapide des événements et des actions utilisant cette technologie de l'information. En revanche, la croissance à long terme de la gestion d'agenda et de la planification est pour l'instant limitée par l'absence de standards Internet pour les types de contenus des messages au cœur de ces applications de connaissances (knowledgeware applications). Ce mémoire se propose de faire avancer le niveau d'interopérabilité possible entre des applications de gestion d'agenda et de planification dissemblables. Il définit un type de contenu MIME pour l'échange électronique de données de gestion d'agenda et de planification. La spécification de l'objet central de gestion d'agenda et de planification, ou objet iCalendar, permet la capture et l'échange d'informations stockées habituellement au sein d'une application de gestion d'agenda et de planification, tels qu'un gestionnaire d'informations personnelles, ou PIM (Personal Information Manager), ou un produit de planification de groupes (Group Scheduling).

Le format iCalendar convient pour les échanges entre applications ou systèmes. Le format est défini en fonction d'un type de contenu MIME. Cela permet d'échanger l'objet au moyen de plusieurs méthodes de transport, comprenant mais pas seulement les protocoles SMTP et HTTP, les systèmes de fichiers, les protocoles interactifs bureautiques tels que l'utilisation d'un presse-papiers (clipboard) à mémoire ou des interactions de glisser-déposer (drag/drop), la communication asynchrone point-à-point, le transport par réseau cablé ou éventuellement par une forme sans fil tel l'infrarouge.

Le mémoire pourvoit également la définition de méthodes d'objets iCalendar qui associeront ce type de contenu à un ensemble de messages pour aider des opérations de gestion d'agenda et de planification tels que solliciter, répondre à, modifier et annuler des réunions ou des rendez-vous, des tâches (to-do) et des écritures de journaux (journal entries). Les méthodes de l'objet iCalendar peuvent être utilisées pour définir d'autres opérations de gestion d'agenda et de planificaiton tels que solliciter des informations de temps libre ou occupé et y répondre. Le protocole iTIP (iCalendar Transport-independent Interoperability Protocol) défini dans [ITIP] est un tel protocole de planification.

Le mémoire contient également une grammaire formelle du type de contenu fondée sur du code ABNF Internet défini dans le [RFC 2234]. Cette définition ABNF doit obligatoirement être observée pour la mise en œuvre des analyseurs syntaxiques (parsers) et elle constitue la référence définitive en cas d'ambiguïtés ou de problèmes soulevés dans l'interprétation du texte descriptif de la définition du mémoire.

2. Grammaire de base et conventions

Les mots-clés « DOIT », « NE DOIT PAS », « OBLIGATOIRE », « DEVRA », « NE DEVRA PAS », « DEVRAIT », « NE DEVRAIT PAS », « RECOMMANDÉ », « NON RECOMMANDÉ », « PEUT » et « OPTIONNEL » dans ce document doivent être interprétés selon le [RFC 2119].

Ce mémoire emploie à la fois un texte descriptif et une notation plus formelle pour définir le format de gestion d'agenda et de planification.

La notation utilisée dans ce mémoire est la notation ABNF décrite par le [RFC 2234]. Les lecteurs désireux de mettre en œuvre le format défini dans ce mémoire devraient être familiers de cette notation pour interpréter correctement les indications qui y sont contenues.

Toutes les valeurs numériques et hexadécimales utilisées dans ce mémoire sont données en notation décimale.

Tous les noms de propriétés, de paramètres de propriété, de valeurs de propriété énumérée et de valeurs de paramètres de propriété sont indépendants de la casse. Par contre, toutes les autres valeurs de propriétés dépendent de la casse, sauf indication contraire.

Remarque : Toutes les notes en retrait, comme celle-ci, fournissent des informations supplémentaires au lecteur. Ces informations ne sont pas essentielles pour élaborer une mise en œuvre conforme de ce mémoire. Elles sont destinées à mettre en exergue une fonction ou une caractéristique particulières du mémoire.

Le format de l'objet iCalendar est bâti sur la syntaxe du type de contenu décrit dans le [RFC 2425]. Bien que l'objet iCalendar ne soit pas un profil du type de contenu du [RFC 2425], il réutilise en effet plusieurs éléments de la spécification [RFC 2425].

2.1. Conventions de formatage

Les mécanismes définis dans ce mémoire sont décrits textuellement. Plusieurs termes employés pour les décrire ont une utilisation courante qui diffère de celle normale de ce mémoire. Au sein du mémoire, des conventions de formatage signalent les éléments du modèle de gestion d'agenda et de planification, le thème central (ce mémoire) ou le protocole d'interopérabilité [ITIP]. Les rôles de gestion d'agenda et de planification sont indiqués par des chaînes de texte entre guillemets doubles avec une capitalisation initiale de chaque mot. Par exemple, le terme "Organizer" se rapporte à celui de "Calendar User" dans le protocole de planification défini par [ITIP]. Les composants de calendrier définis par ce mémoire sont indiqués par des chaînes de texte en majuscules entre des guillemets doubles. Tous les composants de calendrier commencent par la lettre "V". Par exemple, "VEVENT" se rapporte au composant de calendrier d'événement, "VTODO" se rapporte au composant de calendrier de tâche (to-do) et "VJOURNAL" au composant de calendrier de journal quotidien. Les méthodes de planification définies par le protocole [ITIP] sont signalées par des chaînes de texte en majuscules entre des guillemets doubles. Par exemple, "REQUEST" se rapporte à la méthode pour demander la création ou la modification d'un composant de calendrier de planification, "REPLY" se rapporte à la méthode utilisée par le destinataire d'une demande pour rafraîchir son statut auprès du gestionnaire (Organizer) du composant de calendrier.

Les propriétés définies par ce mémoire sont indiquées par des chaînes de texte en majuscules entre des guillemets doubles, précédées du mot « propriété ». Par exemple, la propriété "ATTENDEE" se rapporte à la propriété iCalendar utilisée pour communiquer l'adresse du calendrier d'un utilisateur de calendrier (Calendar User). Les paramètres de propriété définis par ce mémoire sont indiqués par des chaînes de texte en minuscules entre guillemets doubles précédées du mot « paramètre ». Par exemple, le paramètre "value" se rapporte au paramètre de propriété iCalendar utilisé pour écraser le type de données par défaut d'une valeur de propriété. Les valeurs énumérées définies par ce mémoire sont indiquées par une chaîne en majuscules, soit seule soit précédée du mot « valeur ». Par exemple, la valeur MINUTELY est utilisée avec le composant de règle FREQ de type de données RECUR pour indiquer des composants se répétant à intervalle d'une minute ou plus.

2.2. Mémoires associés

Les développeurs devront se familiariser avec d'autres mémoires, lesquels forment avec celui-ci un cadre d'applications des standards de gestion d'agenda et de planification Internet. Ce mémoire [ICAL] définit un objet central, des types de données, des propriétés et des paramètres de propriété.

[ITIP]
Ce mémoire définit un protocole d'interopérabilité de planification entre des mises en œuvre différentes ;
[IMIP]
Ce mémoire définit une liaison de courrier électronique Internet pour [ITIP].

Ce mémoire n'essaye pas de répéter la spécification des concepts ou des définitions de ces autres mémoires. Lorsque c'est possible, des références sont établies vers le mémoire pourvoyant la spécification de ces concepts ou définitions.

2.3. Observations internationales

Dans le reste de ce document, les descriptions des caractères sont de la forme « NOM DU CARACTÈRE (point de code) », où « point de code » provient du jeu de caractères US-ASCII. Le « NOM DE CARACTÈRE » est la description officielle et « (point de code) » est une référence à ce caractère dans le jeu US-ASCII, ou les jeux compatibles US-ASCII (par exemple, la famille ISO-8859-x, UTF-8, ISO-2022-xx, KOI8-R). Si un jeu de caractères non compatible US-ASCII est utilisé, un point de code approprié de ce jeu de caractères DOIT être choisi à la place. L'utilisation de jeux de caractères non compatibles US-ASCII N'EST PAS RECOMMANDÉE.

3. Informations d'enregistrement

La spécification de l'objet central de gestion d'agenda et de planification est prévue pour être utilisée comme un type de contenu MIME. En revanche, la mise en œuvre du mémoire n'est en rien limitée à un seul type de contenu MIME.

3.1. Type de contenu

La relation suivante est celle de l'enregistrement de ce mémoire en tant que type de contenu MIME "text/calendar".

     To: ietf-types@uninett.no

     Subject: Registration of MIME content type text/calendar.

     MIME media type name: text

     MIME subtype name: calendar

3.2. Paramètres

   Required parameters: none

   Optional parameters: charset, method, component et optinfo

Le paramètre "charset" est défini dans le [RFC 2046] pour d'autres parties corps (body parts). Il sert à identifier le jeu de caractères par défaut utilisé dans la partie corps.

Le paramètre "method" sert à communiquer la méthode d'objet iCalendar ou la sémantique de transaction de l'information de gestion d'agenda et de planification. C'est également un identificateur de l'ensemble restreint des propriétés et valeurs constituant l'objet iCalendar. Le paramètre doit servir de guide pour les applications interprétant l'information contenue dans la partie corps. Il NE DEVRAIT PAS être utilisé pour exclure ou demander des bouts d'information particuliers à moins que la définition de la méthode identifiée appelle spécifiquement ce comportement. Sauf interdiction spécifique par une définition de méthode, un contenu de type text/calendar peut contenir un ensemble quelconque de propriétés permises par la spécification de l'objet central de gestion d'agenda et de planification. Le paramètre "method" DOIT avoir la même valeur que celle indiquée dans la propriété de composant "METHOD" dans l'objet iCalendar. Si l'un est présent, l'autre DOIT l'être aussi.

La définition de la valeur du paramètre "method" est la suivante :

        method  = 1*(ALPHA / DIGIT / "-")
        ; méthode de l'objet iCalendar enregistrée auprès de l'IANA

Le paramètre "component" communique le type du composant de calendrier iCalendar au sein de la partie corps. Si l'objet iCalendar contient plusieurs types de composant de calendrier, alors des paramètres de composant multiples DOIVENT être indiqués.

La définition de la valeur du paramètre "component" est la suivante :

        component       = ("VEVENT" / "VTODO" / "VJOURNAL" / "VFREEBUSY"
                        / "VTIMEZONE" / x-name / iana-token)

Le paramètre "optinfo" communique des informations optionnelles à propos de l'objet iCalendar dans la partie corps. Ce paramètre peut seulement décrire une sémantique déjà définie par l'objet iCalendar et qui sinon peut être déterminée en analysant la partie corps. De plus, l'information optionnelle indiquée par ce paramètre DOIT être cohérente avec celle définie par l'objet iCalendar. Par exemple, il peut être utilisé pour communiquer le statut "Attendee" en réponse à une demande de réunion. La valeur de paramètre est une chaîne.

Le paramètre peut être défini à plusieurs reprises.

Ce paramètre PEUT seulement indiquer une sémantique déjà définie par l'objet iCalendar et qui sinon peut être déterminée en analysant la partie corps.

La définition de la valeur du paramètre "optinfo" est la suivante :

        optinfo = infovalue / qinfovalue

        infovalue       = iana-token / x-name

        qinfovalue      = DQUOTE (infovalue) DQUOTE

3.3. Champs d'en-tête du contenu

Champs optionnels d'en-tête du contenu : tous les champs d'en-tête définis par le [RFC 2045].

3.4. Observations de codage

Ce type de contenu MIME peut recevoir des caractères 8bit, et il sera donc peut-être nécessaire d'utiliser les codages de transfert de contenu MIME quoted-printable ou BASE64 pour transférer les objets iCalendar à travers des protocoles contraints au répertoire 7bit. Notez qu'une propriété à valeur textuelle dans l'entité de contenu peut également avoir un codage de contenu des caractères spéciaux par une technique de formatage (escapement technique) utilisant le caractère BARRE OBLIQUE INVERSÉE, (code décimal 92 US-ASCII). Cela signifie que les valeurs de contenu peuvent se trouver codées deux fois.

3.5. Observations de sécurité

Mystification (spoofing) :
Dans ce mémoire, le gestionnaire (Organizer) est la seule personne autorisée à effectuer des changements dans les composants de calendrier existants "VEVENT", "VTODO" ou "VJOURNAL", et à redistribuer les mises à jour aux adhérents (Attendee) . Une autre personne que le gestionnaire peut construire un objet iCalendar qui modifie ou annule un composant de calendrier existant "VEVENT", "VTODO", "VJOURNAL" ou "VFREEBUSY" et l'envoyer aux adhérents. Dans ce mémoire, hormis le gestionnaire, il est défini un adhérent dans un composant de calendrier "VEVENT", "VTODO" ou "VJOURNAL" comme seule autre personne autorisée à mettre à jour un paramètre de leur propriété "ATTENDEE" et à l'envoyer au gestionnaire. Quelqu'un d'autre que cet adhérent authentique peut construire un objet iCalendar, changer malicieusement les paramètres de la propriété "ATTENDEE" et les envoyer au gestionnaire.
Alertes procédurales :
On peut créer un objet iCalendar contenant un composant de calendrier "VEVENT" ou "VTODO" avec des composants de calendrier "VALARM". Le composant de calendrier "VALARM" peut être de type PROCEDURE et avoir un fichier joint contenant un programme exécutable. Les mises en œuvre qui incorporent ces types d'alerte sont susceptibles d'être infectées par un virus ou d'être la cible d'attaques malveillantes en conséquence de l'exécution du fichier joint.
Fichiers joints :
Un objet iCalendar peut contenir des références vers des adresses URL de ressources programmées.

Les développeurs et les utilisateurs de ce mémoire devraient tenir compte des implications pour la sécurité des réseaux à accepter et interpréter de telles informations. En outre, les mesures de sécurité observées dans les mises en œuvre de systèmes de courrier électronique devraient être adoptées pour ce mémoire.

3.6. Observations d'interopérabilité

Ce type de contenu MIME définit un format commun pour l'échange d'informations de gestion d'agenda et de planification entre des systèmes différents. Il s'inspire fortement de la spécification antérieure [VCAL] du secteur (industry).

3.7. Applications utilisant ce type de média

Ce type de contenu est conçu pour une large utilisation par les applications de gestion d'agenda et de planification Internet. En outre, il pourrait s'appliquer aux applications dans le secteur de la gestion de flux de travaux (workflow) et de documents. Les protocoles Internet [ITIP] et [IMIP] utilisent aussi directement ce type de contenu. Les travaux futurs sur un protocole d'accès aux calendriers Internet l'utiliseront également.

3.8. Autres informations

Ce mémoire définit ce type de contenu.

3.9. Numéros magiques

Aucun.

3.10. Extensions de fichiers

On doit utiliser l'extension de fichier "ics" pour désigner un fichier contenant des données (ou un ensemble arbitraire de données) de gestion d'agenda et de planification en accord avec ce type de contenu MIME.

On doit utiliser l'extension de fichier "ifb" pour désigner un fichier contenant des informations de temps libre ou occupé en acccord avec ce type de contenu MIME.

Codes de types de fichiers Macintosh : on doit utiliser le code de type de fichier "iCal" dans les environnements avec système d'exploitation Macintosh d'Apple pour désigner un fichier contenant des informations de gestion d'agenda et de planification en accord avec ce type de média MIME.

On doit utiliser le code de type de fichier "iFBf" dans les environnements avec système d'exploitation Macintosh d'Apple pour désigner un fichier contenant des informations de temps libre ou occupé en accord avec ce type de média MIME.

3.11. Personnes à contacter pour d'autres informations

Frank Dawson
6544 Battleford Drive
Raleigh, NC 27613-3502
919-676-9515 (Telephone)
919-676-9564 (Data/Facsimile)
Frank_Dawson@Lotus.com (Internet Mail)
Derik Stenerson
One Microsoft Way
Redmond, WA 98052-6399
425-936-5522 (Telephone)
425-936-7329 (Facsimile)
deriks@microsoft.com (Internet Mail)

3.12. Utilisation prévue

Commune.

3.13. Auteurs et contrôleurs des changements

Frank Dawson
6544 Battleford Drive
Raleigh, NC 27613-3502
919-676-9515 (Telephone)
919-676-9564 (Data/Facsimile)
Frank_Dawson@Lotus.com (Internet Mail)
Derik Stenerson
One Microsoft Way
Redmond, WA 98052-6399
425-936-5522 (Telephone)
425-936-7329 (Facsimile)
deriks@microsoft.com (Internet Mail)

4. Spécification de l'objet iCalendar

Les sections suivantes détaillent la spécification de l'objet central de gestion d'agenda et de planification. Ces informations font partie intégrante de l'enregistrement du type de contenu MIME. En outre, ces informations peuvent être utilisées indépendamment de cet enregistrement de contenu. En particulier, ce mémoire est directement applicable comme format d'échange de gestion d'agenda et planification dans des mécanismes de transport par des fichiers, par un stockage en mémoire ou par des réseaux.

4.1. Lignes de contenu

L'objet iCalendar est arrangé en lignes de texte individuelles appelées des lignes de contenu (content lines). Les lignes de contenu sont délimitées par des sauts de ligne, c'est-à-dire une séquence CRLF (code décimal 13 US-ASCII suivi du code décimal 10 US-ASCII).

Les lignes de texte NE DEVRAIENT PAS faire plus de 75 octets de long, le saut de ligne exclu. Les longues lignes de contenu DEVRAIENT être découpées en une représentation sur plusieurs lignes à l'aide d'une technique dite de « pliage » (folding) des lignes. C'est-à-dire la coupure d'une longue ligne entre deux caractères en insérant une séquence CRLF suivie immédiatement d'un seul caractère blanc (whitespace) linéaire, à savoir un caratère ESPACE (code décimal 32 US-ASCII) ou TABULATION HORIZONTALE (code décimal 9 US-ASCII). Toute séquence CRLF suivie immédiatement d'un seul caractère blanc linéaire est ignorée (c'est-à-dire supprimée) au traitement du type de contenu.

Par exemple, la ligne suivante :

     DESCRIPTION:Voici une longue description sur une seule longue ligne.

Celle-ci peut se représenter par :

     DESCRIPTION:Voici une lo
      ngue description
       sur une seule longue ligne.

Le processus consistant à changer cette représentation sur plusieurs lignes pliées en une représentation d'une seule ligne est appelé « dépliage » (unfolding). Le dépliage est réalisé en supprimant la séquence CRLF et le caractère blanc linéaire immédiatement après.

Lors de l'analyse d'une ligne de contenu, les lignes pliées DOIVENT d'abord être dépliées conformément à la procédure décrite précédemment. Lors de la génération d'une ligne de contenu, les lignes plus longues que 75 octets DEVRAIENT être pliées conformément à la procédure de pliage décrite précédemment.

L'information de contenu associée à un objet iCalendar est formatée à l'aide d'une syntaxe similaire à celle définie par le [RFC 2425]. C'est-à-dire que l'information de contenu est constituée de lignes de contenu séparées par des séquences CRLF.

La notation suivante définit les lignes de contenu dans un objet iCalendar :

     contentline        = name *(";" param ) ":" value CRLF
        ; ce code ABNF est juste une définition générale de l'analyse
        ;  initiale d'une ligne de contenu selon ses nom de propriété,
        ;  liste de paramètres et chaîne de valeur

        ; pour l'analyse d'une ligne de contenu, les lignes pliées
        ;  DOIVENT d'abord être dépliées selon la procédure
        ;  de dépliage décrite précédemment.
        ;  pour la génération d'une ligne de contenu, les lignes de
        ;  plus de 75 octets de long DEVRAIENT être pliées
        ;  selon la procédure de pliage décrite précédemment.

     name               = x-name / iana-token

     iana-token = 1*(ALPHA / DIGIT / "-")
        ; identificateur iCalendar enregistré auprès de l'IANA

     x-name             = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-")
        ; réservé pour une utilisation expérimentale. Non prévu pour
        ;  être utilisé dans des produits livrés.

     vendorid   = 3*(ALPHA / DIGIT)
        ; identification du vendeur

     param              = param-name "=" param-value
                          *("," param-value)
        ; chaque propriété indique la définition ABNF des paramètres
        ;  admis sur la propriété. Reportez-vous aux propriétés
        ;  pour la définition ABNF précise des paramètres.

     param-name = iana-token / x-token

     param-value        = paramtext / quoted-string

     paramtext          = *SAFE-CHAR

     value              = *VALUE-CHAR

     quoted-string      = DQUOTE *QSAFE-CHAR DQUOTE

     NON-US-ASCII       = %x80-F8
        ; utilisation contrainte par le paramètre charset sur
        ;  l'objet MIME englobant (UTF-8 souhaité)

     QSAFE-CHAR         = WSP / %x21 / %x23-7E / NON-US-ASCII
        ; tout caractère sauf les caractères CTL et DQUOTE

     SAFE-CHAR          = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E
                          / NON-US-ASCII
        ; tout caractère sauf les caractères CTL, DQUOTE, ";", ":", ","

     VALUE-CHAR         = WSP / %x21-7E / NON-US-ASCII
        ; tout caractère textuel

     CR                 = %x0D
        ; retour chariot (carriage return)

     LF                 = %x0A
        ; saut de ligne (line feed)

     CRLF               = CR LF
        ; nouvelle ligne standard Internet

     CTL                = %x00-08 / %x0A-1F / %x7F
        ; caractères de contrôle

     ALPHA              = %x41-5A / %x61-7A
        ; A-Z / a-z

     DIGIT              = %x30-39
        ; 0-9

     DQUOTE             = %x22
        ; guillemet double

     WSP                = SPACE / HTAB

     SPACE              = %x20

     HTAB               = %x09

Le composant valeur de propriété d'une ligne de contenu a un format qui est propre à la propriété. Consultez la section décrivant chaque propriété pour une définition de ce format.

Tous les noms des propriétés, des paramètres de propriété, des valeurs de propriété énumérée et des valeurs de paramètres de propriété sont indépendants de la casse. Par contre, toutes les autres valeurs de propriété sont dépendantes de la casse, sauf indication contraire.

4.1.1. Séparateurs de listes et de champs

Quelques propriétés et paramètres admettent une liste de valeurs. Les valeurs dans une liste DOIVENT être séparées par un caractère VIRGULE (code décimal 44 US-ASCII). L'ordre des valeurs n'a aucune importance dans une liste. Pour les valeurs de paramètres (telles celles indiquant des adresses URI) indiquées comme des chaînes entre guillemets doubles, les chaînes individuelles entre guillemets sont séparées par des caractères VIRGULE (code décimal 44 US-ASCII).

Certaines valeurs de propriété sont définies en fonction de parties multiples. Ces valeurs de propriété structurées DOIVENT avoir leurs parties séparées par des caractères POINT-VIRGULE (code décimal 59 US-ASCII).

Certaines propriétés admettent une liste de paramètres. Chaque paramètre de propriété dans une liste de paramètres de propriété DOIT être séparé par un caractère POINT-VIRGULE (code décimal 59 US-ASCII).

Les paramètres de propriété avec des valeurs contenant des caractères DEUX-POINTS, POINT-VIRGULE ou VIRGULE DOIVENT être placés dans un texte entre guillemets.

Par exemple, dans les propriétés suivantes, on utilise des caractères POINT-VIRGULE pour séparer les paramètres de propriété l'un de l'autre, et des caractères VIRGULE pour séparer les valeurs de propriétés dans une liste de valeurs.

     ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:MAILTO:
      jsmith@host.com

     RDATE;VALUE=DATE:19970304,19970504,19970704,19970904
4.1.2. Valeurs multiples

Quelques propriétés définies dans l'objet iCalendar peuvent avoir des valeurs multiples. La règle générale de codage d'éléments à valeur multiple est simplement de créer une nouvelle ligne de contenu pour chaque valeur, dont le nom de la propriété. En revanche, on remarquera que certaines propriétés permettent le codage de valeurs multiples dans une seule propriété en les séparant par des caractères VIRGULE (code décimal 44 US-ASCII). Il faut donc consulrer les définitions individuelles des propriétés pour déterminer si la propriété en question admet des valeurs multiples et dans laquelle des deux formes.

4.1.3. Contenu binaire

L'information de contenu binaire dans un objet iCalendar DEVRAIT être référencée par une adresse URI dans une valeur de propriété. C'est-à-dire que l'information de contenu binaire DEVRAIT être placée dans une entité MIME extérieure que l'on peut invoquer au travers d'une adresse URI depuis l'objet iCalendar. Dans les applications où cela n'est pas faisable, l'information de contenu binaire peut être incluse dans l'objet iCalendar mais en la codant au préalable avec la méthode de codage "BASE64" définie dans le [RFC 2045]. On ne DEVRAIT utiliser un contenu binaire incorporé (inline) que dans les applications où des circonstances spéciales réclament l'expression de l'objet iCalendar en une seule entité. Une propriété contenant une information binaire incorporée DOIT comporter le paramètre de propriété "ENCODING". L'information de contenu binaire placé à l'extérieur de l'objet iCalendar DOIT être référencée par un identificateur de ressource uniforme (adresse URI).

L'exemple suivant définit une propriété "ATTACH" qui rérérence un fichier extérieur à l'objet iCalendar avec un appel URI :

     ATTACH:http://xyz.com/public/quarterly-report.doc

L'exemple suivant définit une propriété "ATTACH" avec une information de contenu incorporée codée en binaire :

     ATTACH;FMTTYPE=image/basic;ENCODING=BASE64;VALUE=BINARY:
      MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1U
      EBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIE
        <...reste des données binaires codées en "BASE64"...>
4.1.4. Jeu des caractères

Il n'existe pas de paramètre de propriété pour déclarer le jeu de caractère utilisé dans une valeur de propriété. Le jeu de caractères par défaut d'un objet iCalendar est UTF-8, défini dans le [RFC 2279].

On peut utiliser le paramètre "charset" du champ Content-Type dans les transports MIME pour indiquer un autre jeu de caractères enregistré auprès de l'IANA.

4.2. Paramètres de propriétés

Des attributs peuvent être associés à une propriété. Ces « paramètres de propriétés » contiennent des métainformations à propos de la propriété ou de sa valeur. Les paramètres de propriété sont utilisés pour fournir des informations telles que l'emplacement d'une représentation de texte secondaire pour la valeur de propriété, la langue d'une valeur de propriété textuelle, le type de données de la valeur de propriété et d'autres attributs.

Les valeurs de paramètres de propriété contenant des caractères de séparation DEUX-POINTS (code décimal 58 US-ASCII), POINT-VIRGULE (code décimal 59 US-ASCII) ou VIRGULE (code décimal 44 US-ASCII) DOIVENT être spécifiées comme des valeurs textuelles entre guillemets. Les valeurs de paramètres de propriété NE DOIVENT PAS contenir le caractère GUILLEMET ANGLAIS (code décimal 22 US-ASCII). Le caractère GUILLEMET ANGLAIS sert de délimiteur pour les valeurs de paramètres contenant des caractères restreints ou une adresse URI. Par exemple :

     DESCRIPTION;ALTREP="http://www.wiz.org":The Fall'98 Wild Wizards
       Conference - - Las Vegas\, NV\, USA

Les valeurs de paramètres de propriété non contenues dans des chaînes entre guillemets sont indépendantes de la casse.

Les paramètres de propriété généraux définit par ce mémoire sont décrits selon la notation suivante :

     parameter  = altrepparam       ; représentation du texte de
                                    ;  remplacement
                / cnparam           ; nom commun
                / cutypeparam       ; type d'utilisateur de
                                    ; calendrier
                / delfromparam      ; délégant
                / deltoparam        ; délégataire
                / dirparam          ; entrée de répertoire
                / encodingparam     ; codage incorporé
                / fmttypeparam      ; type de format
                / fbtypeparam       ; type de temps libre/occupé
                / languageparam     ; langue du texte
                / memberparam       ; adhésion à un groupe
                                    ;  ou à une liste
                / partstatparam     ; statut de participation
                / rangeparam        ; portée de l'identificateur
                                    ;  de récurrence
                / trigrelparam      ; relation de déclenchement
                                    ;  d'alerte
                / reltypeparam      ; type de relation
                / roleparam         ; rôle de participation
                / rsvpparam         ; attente RSVP
                / sentbyparam       ; expéditeur
                / tzidparam         ; référence à un objet de
                                    ;  fuseau horaire
                / valuetypeparam    ; type de données de la valeur
                                    ;  de propriété
                / ianaparam         ; un certain paramètre iCalendar
                                    ;  enregistré auprès de l'IANA.
                / xparam            ; un caractère expérimental
                                    ;  non standard.

     ianaparam  = iana-token "=" param-value *("," param-value)

     xparam     = x-name "=" param-value *("," param-value)
4.2.1. Représentation textuelle secondaire
Nom du paramètre :

ALTREP

But :

Définir une représentation textuelle secondaire (alternate text representation) pour la valeur de propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     altrepparam        = "ALTREP" "=" DQUOTE uri DQUOTE
Description :

Le paramètre définit une adresse URI qui pointe vers une représentation secondaire d'une valeur de propriété textuelle. Une propriété indiquant ce paramètre DOIT aussi inclure une valeur qui reflète la représentation par défaut de la valeur textuelle. Chaque valeur d'adresse URI individuelle DOIT être indiquée par une chaîne entre guillemets.

Exemple :

     DESCRIPTION;ALTREP="CID:<part3.msg.970415T083000@host.com>":Project
       XYZ Review Meeting will include the following agenda items: (a)
       Market Overview\, (b) Finances\, (c) Project Management

La valeur du paramètre de propriété "ALTREP" pourrait pointer vers un bloc de contenu de type "text/html".

     Content-Type:text/html
     Content-Id:<part3.msg.970415T083000@host.com>

     <html>
     <body>
     <p><b>Project XYZ Review Meeting</b> will include the following
     agenda items:</p>
     <ol>
     <li>Market Overview</li>
     <li>Finances</li>
     <li>Project Management</li>
     </ol>
     </body>
     </html>
4.2.2. Nom commun
Nom du paramètre :

CN

But :

Définir le nom commun à associer à l'utilisateur de calendrier défini par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     cnparam    = "CN" "=" param-value
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Le paramètre définit le nom commun à associer à l'utilisateur de calendrier indiqué par la propriété. La valeur du paramètre est du texte. La valeur du paramètre peut servir à afficher un texte à associer à l'adresse de calendrier indiquée par la propriété.

Exemple :

     ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com
4.2.3. Type d'utilisateur de calendrier
Nom du paramètre :

CUTYPE

But :

Définir le type d'utilisateur de calendrier indiqué par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     cutypeparam        = "CUTYPE" "="
                         ("INDIVIDUAL"       ; un individu
                        / "GROUP"            ; un groupe d'individus
                        / "RESOURCE"         ; une ressource physique
                        / "ROOM"             ; une ressource de place
                        / "UNKNOWN"          ; inconnu par ailleurs
                        / x-name             ; un type expérimental
                        / iana-token)        ; un autre type enregistré
                                             ;  auprès de l'IANA
     ; la valeur par défaut est INDIVIDUAL
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Le paramètre identifie le type d'utilisateur de calendrier indiqué par la propriété. Si le paramètre est absent d'une propriété réceptive, la valeur par défaut est INDIVIDUAL.

Exemple :

     ATTENDEE;CUTYPE=GROUP:MAILTO:ietf-calsch@imc.org
4.2.4. Délégants
Nom du paramètre :

DELEGATED-FROM

But :

Définir les utilisateurs de calendrier qui ont délégué leur participation à l'utilisateur de calendrier indiqué par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     delfromparam       = "DELEGATED-FROM" "=" DQUOTE cal-address DQUOTE
                          *("," DQUOTE cal-address DQUOTE)
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Ce paramètre indique les utilisateurs de calendrier qui ont délégué leur participation dans un événement ou une tâche planifiés de groupe à l'utilisateur de calendrier indiqué par la propriété. La valeur DOIT être une adresse URI de type MAILTO comme définie dans le [RFC 1738]. Chaque valeur de paramètre d'adresse de calendrier individuelle DOIT être indiquée dans une chaîne entre guillemets.

Exemple :

     ATTENDEE;DELEGATED-FROM="MAILTO:jsmith@host.com":MAILTO:
      jdoe@host.com
4.2.5. Délégataires
Nom du paramètre :

DELEGATED-TO

But :

Définir les utilisateurs de calendrier auxquels l'utilisateur de calendrier indiqué par la propriété a délégué sa participation.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     deltoparam = "DELEGATED-TO" "=" DQUOTE cal-address DQUOTE
                  *("," DQUOTE cal-address DQUOTE)
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Ce paramètre indique les utilisateurs à qui l'utilisateur de calendrier indiqué par la propriété a délégué sa participation dans un événement ou une tâche planifiés de groupe. La valeur DOIT être une adresse URI de type MAILTO comme définie dans le [RFC 1738]. Chaque valeur de paramètre d'adresse de calendrier individuelle DOIT être indiquée dans une chaîne entre guillemets.

Exemple :

     ATTENDEE;DELEGATED-TO="MAILTO:jdoe@host.com","MAILTO:jqpublic@
      host.com":MAILTO:jsmith@host.com
4.2.6. Référence d'entrée de répertoire
Nom du paramètre :

DIR

But :

Définir une référence vers une entrée de répertoire associée à l'utilisateur de calendrier indiqué par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     dirparam   = "DIR" "=" DQUOTE uri DQUOTE
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Ce paramètre indique une référence vers l'entrée de répertoire associée à l'utilisateur de calendrier indiqué par la propriété. La valeur du paramète est une adresse URI. Chaque valeur de paramètre URI individuelle DOIT être indiquée dans une chaîne entre guillemets.

Exemple :

     ORGANIZER;DIR="ldap://host.com:6666/o=eDABC%20Industries,c=3DUS??
      (cn=3DBJim%20Dolittle)":MAILTO:jimdo@host1.com
4.2.7. Codage incorporé
Nom du paramètre :

ENCODING

But :

Définir un codage incorporé de remplacement pour la valeur de propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     encodingparam      = "ENCODING" "="
                          ("8BIT"
        ; le codage de texte "8bit" est défini dans le [RFC 2045]
                        / "BASE64"
        ; le format de codage binaire "BASE64" est défini dans le
        ;  [RFC 2045]
                        / iana-token
        ; un autre type de codage iCalendar enregistré auprès de l'IANA
                        / x-name)
        ; un type de codage expérimental non standard
Description :

Le paramètre de propriété identifie le codage incorporé utilisé dans une valeur de propriété. Le codage par défaut est "8BIT", correspondant à une valeur de propriété constituée de texte. Le type de codage "BASE64" correspond à une valeur de propriété codée à l'aide du codage "BASE64" défini dans le [RFC 2045].

Si le paramètre de type de valeur est ";VALUE=BINARY", le paramètre de codage incorporé DOIT être indiqué avec la valeur ";ENCODING=BASE64".

Exemple :

     ATTACH;FMTTYPE=IMAGE/JPEG;ENCODING=BASE64;VALUE=BINARY:MIICajC
      CAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDA
      qBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRw
      <...reste des données binaires codées en "BASE64"...>
4.2.8. Type de format
Nom du paramètre :

FMTTYPE

But :

Définir le type de contenu d'un objet référencé.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     fmttypeparam    = "FMTTYPE" "="
                        iana-token
                        ; un type de contenu enregistré auprès de l'IANA
                        / x-name
                        ; un type de contenu non standard
Description :

Ce paramètre peut apparaître sur les propriétés utilisées pour référencer un objet. Le paramètre indique le type de contenu de l'objet référencé. Par exemple, sur la propriété "ATTACH", une adresse URI de type FTP ne communique pas nécessairement en soi le type de contenu associé à la ressource. La valeur de paramètre DOIT être la valeur littérale d'un type de contenu enregistré auprès de l'IANA ou bien un type de contenu non standard.

Exemple :

      ATTACH;FMTTYPE=application/binary:ftp://domain.com/pub/docs/
       agenda.doc
4.2.9. Type de temps libre ou occupé
Nom du paramètre :

FBTYPE

But :

Définir le type de temps libre ou occupé.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     fbtypeparam        = "FBTYPE" "=" ("FREE" / "BUSY"
                        / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
                        / x-name
                          ; un type de données iCalendar expérimental.
                        / iana-token)
                          ; un autre type de données enregistré auprès
                          ;  de l'IANA.
Description :

Le paramètre définit le type de temps libre ou occupé. La valeur FREE indique que l'intervalle de temps est libre pour la planification. La valeur BUSY indique que l'intervalle de temps est occupé car un ou plusieurs événements ont été prévus pour cet intervalle. La valeur BUSY-UNAVAILABLE indique que l'intervalle de temps est occupé et que l'intervalle ne peut pas être replanifié. Si ce paramètre est absent d'une propriété réceptive, la valeur par défaut est BUSY.

Voici un exemple de ce paramètre sur une propriété FREEBUSY :

     FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z
4.2.10. Langue
Nom du paramètre :

LANGUAGE

But :

Définir la langue des valeurs textuelles dans une propriété ou un paramètre de propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     languageparam =    "LANGUAGE" "=" language

     language = <Code identifiant la langue, défini dans le [RFC 1766]>
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur textuelle. Le paramètre identifie la langue du texte dans la valeur de la propriété ou du paramètre de propriété. La valeur du paramètre de propriété "language" est celle définie dans le [RFC 1766].

Pour le transport dans une entité MIME, on peut utiliser le champ d'en-tête Content-Language pour établir la langue par défaut de la partie corps en entier. Il n'est présumé aucune langue par défaut sinon.

Exemples :

     SUMMARY;LANGUAGE=us-EN:Company Holiday Party

     LOCATION;LANGUAGE=en:Germany
     LOCATION;LANGUAGE=no:Tyskland

L'exemple suivant utilise un codage quoted-printable pour représenter des caractères non-ASCII :

     LOCATION;LANGUAGE=da:K=F8benhavn
     LOCATION;LANGUAGE=en:Copenhagen
4.2.11. Adhésion à un groupe ou une liste
Nom du paramètre :

MEMBER

But :

Définir l'adhésion à un groupe ou une liste d'un utilisateur de calendrier indiqué par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     memberparam        = "MEMBER" "=" DQUOTE cal-address DQUOTE
                          *("," DQUOTE cal-address DQUOTE)
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Le paramètre identifie l'adhésion à des groupes ou des listes de l'utilisateur de calendrier indiqué par la propriété. La valeur de paramètre est soit une seule adresse de calendrier dans une chaîne entre guillemets, soit une liste d'adresses de calendrier séparées par des caractères VIRGULE (code décimal 44 US-ASCII), chacune dans une chaîne entre guillemets. Chaque valeur d'adresse de calendrier individuelle DOIT être indiquée dans une chaîne entre guillemets.

Exemple :

     ATTENDEE;MEMBER="MAILTO:ietf-calsch@imc.org":MAILTO:jsmith@host.com

     ATTENDEE;MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host.
      com":MAILTO:janedoe@host.com
4.2.12. Statut de participation
Nom du paramètre :

PARTSTAT

But :

Définir le statut de participation de l'utilisateur de calendrier indiqué par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     partstatparam      = "PARTSTAT" "="
                         ("NEEDS-ACTION"     ; l'événement nécessite
                                             ;  une action
                        / "ACCEPTED"         ; l'événement est accepté
                        / "DECLINED"         ; l'événement est décliné

                        / "TENTATIVE"        ; l'événement est accepté
                                             ;  provisoirement
                        / "DELEGATED"        ; l'événement est délégué
                        / x-name             ; un statut expérimental
                        / iana-token)        ; un autre statut
                                             ;  enregistré
                                             ;  auprès de l'IANA
     ; les statuts de participation ci-dessus s'appliquent aux
     ;  composants "VEVENT". La valeur par défaut est NEEDS-ACTION.

     partstatparam      /= "PARTSTAT" "="
                         ("NEEDS-ACTION"     ; la tâche nécessite une
                                             ;  action
                        / "ACCEPTED"         ; la tâche est acceptée
                        / "DECLINED"         ; la tâche est déclinée
                        / "TENTATIVE"        ; la tâche est acceptée
                                             ;  provisoirement
                        / "DELEGATED"        ; la tâche est déléguée
                        / "COMPLETED"        ; la tâche est achevée.
                                             ;  la propriété COMPLETED
                                             ;  a une date/heure
                                             ;  d'achèvement.
                        / "IN-PROCESS"       ; la tâche est en passe
                                             ;  d'être achevée
                        / x-name             ; un statut expérimental
                        / iana-token)        ; un autre statut
                                             ;  enregistré
                                             ;  auprès de l'IANA
     ; les statuts de participation ci-dessus s'appliquent aux
     ;  composants "VTODO". La valeur par défaut est NEEDS-ACTION.

     partstatparam      /= "PARTSTAT" "="
                         ("NEEDS-ACTION"     ; le journal nécessite
                                             ;  une action
                        / "ACCEPTED"         ; le journal est accepté
                        / "DECLINED"         ; le journal est décliné
                        / x-name             ; un statut expérimental
                        / iana-token)        ; un autre statut
                                             ;  enregistré
                                             ;  auprès de l'IANA
     ; les status de participation ci-dessus s'appliquent aux
     ;  composants "VJOURNAL". La valeur par défaut est NEEDS-ACTION.
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Le paramètre identifie le statut de participation de l'utilisateur de calendrier indiqué par la valeur de propriété. Les valeurs de paramètres diffèrent selon qu'ils sont associés à un groupe planifié "VEVENT", "VTODO" ou "VJOURNAL". Les valeurs DOIVENT correspondre à l'une de celles admises pour le composant de calendrier donné. Si le paramètre est absent d'une propriété réceptive, la valeur par défaut est NEEDS-ACTION.

Exemple :

     ATTENDEE;PARTSTAT=DECLINED:MAILTO:jsmith@host.com
4.2.13. Portée de l'identificateur de récurrence
Nom du paramètre :

RANGE

But :

Définir la portée effective des instances de récurrence à partir de l'instance définie par l'identificateur de récurrence indiqué par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     rangeparam = "RANGE" "=" ("THISANDPRIOR"
        ; pour indiquer toutes les instances antérieures de
        ;  l'identificateur de récurrence
                / "THISANDFUTURE")
        ; pour indiquer l'instance définit par l'identificateur de
        ;  récurrence et toutes les instances de récurrence suivantes
Description :

Le paramètre peut apparaître sur une propriété définissant un identificateur de récurrence. Le paramètre définit la portée effective des instances de récurrence qui est indiquée par la propriété. La portée effective commence à partir de l'identificateur de récurrence indiqué par la propriété. Si le paramètre est absent d'une propriété réceptive, la valeur par défaut est alors la seule instance indiquée par la valeur d'indicateur de récurrence de la propriété. La valeur de paramètre peut être THISANDPRIOR pour indiquer une portée définie par la valeur d'identificateur de récurrence de la propriété et toutes les instances antérieures. La valeur de paramètre peut aussi être THISANDFUTURE pour indiquer une portée définie par l'identificateur de récurrence et toutes les instances suivantes.

Exemple :

     RECURRENCE-ID;RANGE=THISANDPRIOR:19980401T133000Z
4.2.14. Relation de déclenchement d'alerte
Nom du paramètre :

RELATED

But :

Définir la relation du déclencheur d'alerte en fonction du début ou de la fin du composant de calendrier.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     trigrelparam       = "RELATED" "="
                         ("START"       ; déclenchement au début
                        / "END")        ; déclenchement à la fin
Description :

Le paramètre peut apparaître sur les propriétés définissant un déclenchement d'alerte avec une valeur de type DURATION. Le paramètre indique si l'alerte se déclenche par rapport au début ou à la fin du composant de calendrier. La valeur de paramètre START déclenchera l'alerte au début du composant de calendrier, la valeur de paramètre END déclenchera l'alerte à la fin du composant de calendrier. Si le paramètre est absent d'une propriété réceptive, la valeur par défaut est alors START.

Exemple :

     TRIGGER;RELATED=END:PT5M
4.2.15. Type de relation
Nom du paramètre :

RELTYPE

But :

Pour définir le type de la relation hiérarchique associée au composant de calendrier indiqué par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     reltypeparam       = "RELTYPE" "="
                         ("PARENT"      ; relation de parent (défaut).
                        / "CHILD"       ; relation d'enfant
                        / "SIBLING"     ; relation de frère
                        / iana-token    ; autre type de relation
                                        ;  iCalendar enregistré auprès
                                        ;  de l'IANA
                        / x-name)       ; type de relation
                                        ;  expérimental non standard
Description :

Ce paramètre peut apparaître sur une propriété référençant un autre calendrier lié. Le paramètre indique le type de relation hiérarchique du composant de calendrier référencé par la propriété. La valeur de paramètre peut être PARENT pour indiquer que le composant de calendrier référencé est un composant de calendrier supérieur, CHILD pour indiquer que le composant de calendrier référencé est un composant de calendrier subordonné, SIBLING pour indiquer que le composant référencé est un pair du composant de calendrier. Si ce paramètre est absent d'une propriété réceptive, le type de relation par défaut est PARENT.

Exemple :

     RELATED-TO;RELTYPE=SIBLING:<19960401-080045-4000F192713@host.com>
4.2.16. Rôle de participation
Nom du paramètre :

ROLE

But :

Définir le rôle de participation de l'utilisateur de calendrier indiqué par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     roleparam  = "ROLE" "="
                 ("CHAIR"               ; indique le président de
                                        ;  l'entité de calendrier
                / "REQ-PARTICIPANT"     ; indique une personne dont la
                                        ;  participation est nécessaire
                / "OPT-PARTICIPANT"     ; indique une personne dont la
                                        ;  participation est optionnelle
                / "NON-PARTICIPANT"     ; indique une personne en copie
                                        ;  seulement pour information
                / x-name                ; un rôle expérimental
                / iana-token)           ; un autre rôle de l'IANA

     ; la valeur par défaut est REQ-PARTICIPANT
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Le paramètre indique le rôle de participation de l'utilisateur de calendrier indiqué par la propriété dans le composant de calendrier de planification de groupe. Si le paramètre est absent d'une propriété réceptive, la valeur par défaut est REQ-PARTICIPANT.

Exemple :

     ATTENDEE;ROLE=CHAIR:MAILTO:mrbig@host.com
4.2.17. Attente RSVP
Nom du paramètre :

RSVP

But :

Définir s'il existe une attente de réponse de la part de l'utilisateur de calendrier indiqué par la valeur de la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")
     ; la valeur par défaut est FALSE
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Le paramètre identifie l'attente d'une réponse de l'utilisateur de calendrier indiqué par la valeur de propriété. Ce paramètre est utilisé par le gestionnaire (Organizer) pour demander le statut de participation d'un adhérent (Attendee) à un événément ou une tâche programmés de groupe. Si le paramètre est absent d'une propriété réceptive, la valeur par défaut est FALSE.

Exemple :

     ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host.com
4.2.18. Expéditeur
Nom du paramètre :

SENT-BY

But :

Définir l'utilisateur de calendrier qui agit au nom de l'utilisateur de calendrier indiqué par la propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     sentbyparam        = "SENT-BY" "=" DQUOTE cal-address DQUOTE
Description :

Ce paramètre peut apparaître sur les propriétés avec une valeur de type CAL-ADDRESS. Le paramètre indique l'utilisateur de calendrier agissant au nom de l'utilisateur de calendrier indiqué par la propriété. La valeur de paramètre DOIT être une adresse URI de type MAILTO comme définie dans le [RFC 1738]. Chaque valeur de paramètre d'adresse de calendrier individuelle DOIT être indiquée dans une chaîne entre guillemets.

Exemple :

     ORGANIZER;SENT-BY="MAILTO:sray@host.com":MAILTO:jsmith@host.com
4.2.19. Identificateur de fuseau horaire
Nom du paramètre :

TZID

But :

Définir l'identificateur de la définition de fuseau horaire d'un composant horaire dans la valeur de propriété.

Définition de format :

Le paramètre de propriété est défini par la notation suivante :

     tzidparam  = "TZID" "=" [tzidprefix] paramtext CRLF

     tzidprefix = "/"
Description :

Le paramètre DOIT apparaître sur les propriétés "DTSTART", "DTEND", "DUE", "EXDATE" et "RDATE" soit lorsqu'une valeur de type DATE-TIME ou TIME est indiquée, soit lorsque la valeur n'est ni un temps UTC ni un temps « flottant ». Consultez les définitions des types de valeurs DATE-TIME ou TIME pour une description des formats de temps UTC et « flottant ». Ce paramètre de propriété définit une valeur textuelle qui identifie de manière unique le composant de calendrier "VTIMEZONE" à utiliser pour l'évaluation de la partie horaire de la propriété. La valeur du paramètre de propriété TZID sera égale à la valeur de la propriété TZID de la définition du fuseau horaire correspondant. On DOIT définir un composant de calendrier "VTIMEZONE" individuel pour chaque valeur de paramètre "TZID" unique définie dans l'objet iCalendar.

Le paramètre DOIT apparaître sur les propriétés avec une valeur de type DATE-TIME, si leur valeur DATE-TIME ne comporte ni une heure UTC ni une heure « flottante ».

La présence du caractère BARRE OBLIQUE (code décimal 47 US-ASCII) en préfixe indique que ce TZID représente un identificateur unique dans un registre de fuseau horaire défini globalement (lorque ce registre est défini).

Remarque : Ce document ne définit pas de conventions d'écriture pour identificateurs de fuseaux horaires. Les développeurs peuvent utiliser les conventions d'écriture décrites dans les spécifications de fuseaux horaires existantes telle que la base de données Olson [TZ] dans le domaine public. La définition d'identificateurs de fuseaux horaires globalement uniques n'est pas abordée par ce document et est laissée pour des travaux futurs.

Voici des exemples de ce paramètre de propriété :

     DTSTART;TZID=US-Eastern:19980119T020000

     DTEND;TZID=US-Eastern:19980119T030000

Le paramètre de propriété TZID NE DOIT PAS être appliqué aux propriétés de type DATE-TIME ou TIME dont les valeurs horaires sont indiquées en temps UTC.

L'utilisation du temps local dans une valeur de type DATE-TIME ou TIME sans paramètre de propriété TZID doit être interprétée comme une valeur de temps local, indépendamment de l'existence de composants de calendrier "VTIMEZONE" dans l'objet iCalendar.

Pour plus de renseignements, cf. les sections à propos des types de données DATE-TIME et TIME.

4.2.20. Types de données des valeurs
Nom du paramètre :

VALUE

But :

Définir explicitement le format de type de données de la valeur d'une propriété.

Définition de format :

Le paramètre de propriété "VALUE" est défini par la notation suivante :

     valuetypeparam = "VALUE" "=" valuetype

     valuetype  = ("BINARY"
                / "BOOLEAN"
                / "CAL-ADDRESS"
                / "DATE"
                / "DATE-TIME"
                / "DURATION"
                / "FLOAT"
                / "INTEGER"
                / "PERIOD"
                / "RECUR"
                / "TEXT"
                / "TIME"
                / "URI"
                / "UTC-OFFSET"
                / x-name
                ; un type de données iCalendar expérimental.
                / iana-token)
                ; un autre type de données iCalendar enregistré auprès
                ;  de l'IANA.
Description :

Le paramètre définit le type de données et le format de la valeur de propriété. Les valeurs de propriété DOIVENT être d'un seul type. Par exemple, une propriété "RDATE" ne peut pas avoir une combinaison de valeurs de types DATE-TIME et TIME.

Si la valeur de la propriété est de type par défaut, alors ce paramètre n'a pas besoin d'être indiqué. Par contre, si le type par défaut de la valeur est écrasé par un autre type de valeur admissible, alors ce paramètre DOIT être indiqué.

4.3. Types de données des valeurs de propriétés

Les propriétés dans un objet iCalendar sont fortement typées. La définition de chaque propriété contraint la valeur à avoir un des types de données, ou simplement un des types de valeurs, définis dans cette section. Le type de la valeur d'une propriété sera indiqué implicitement comme type de valeur par défaut, ou bien explicitement avec le paramètre "VALUE". Si le type de valeur d'une propriété est l'un des autres types valides, alors il DOIT l'être explicitement par le paramètre "VALUE".

4.3.1. Binaire
Nom de valeur :

BINARY

But :

Ce type de valeur est utilisé pour identifier les propriétés contenant un codage des caractères de données binaires incorporées. Par exemple, on peut incorporer le fichier joint d'un code d'objet dans un objet iCalendar.

Définition formelle :

Le type de valeur est défini par la notation suivante :

     binary     = *(4b-char) [b-end]
     ; une chaîne de caractères codée en "BASE64", comme défini par
     ;  le [RFC 2045].

     b-end      = (2b-char "==") / (3b-char "=")

     b-char = ALPHA / DIGIT / "+" / "/"
Description :

Les valeurs de propriété avec ce type de valeur DOIVENT aussi inclure la séquence de paramètre de codage incorporé ";ENCODING=BASE64". À savoir, toutes les données binaires incorporées DOIVENT d'abord être codées à l'aide de la méthode de codage "BASE64" définie dans le [RFC 2045]. Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemple :

Voici un exemple abrégé de données de valeur binaire codées en "BASE64".

     ATTACH;VALUE=BINARY;ENCODING=BASE64:MIICajCCAdOgAwIBAgICBEUwDQY
      JKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlI
      ENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZv
        <...reste des données binaires codées en "BASE64"...>
4.3.2. Booléen
Nom de valeur :

BOOLEAN

But :

Ce type de valeur est utilisé pour identifier les propriétés contenant une valeur booléenne soit "TRUE", soit "FALSE".

Définition formelle :

Le type de valeur est défini par la notation suivante :

     boolean    = "TRUE" / "FALSE"
Description :

Ces valeurs ne dépendent pas de la casse. Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemple :

Voici un exemple de propriété hypothétique avec le type de valeur BOOLEAN :

   GIBBERISH:TRUE
4.3.3. Adresse d'utilisateur de calendrier
Nom de valeur :

CAL-ADDRESS

But :

Ce type de valeur est utilisé pour identifier les propriétés contenant une adresse d'utilisateur de calendrier.

Définition formelle :

Le type de valeur est défini par la notation suivante :

     cal-address        = uri
Description :

La valeur est une adresse URI comme définie par le [RFC 1738] ou toute autre forme d'adresse URI enregistrée auprès de l'IANA. Lorsqu'elle est utilisée pour une adresse de transport de courrier électronique Internet, la valeur DOIT être une adresse URI de type MAILTO, comme définie par le [RFC 1738]. Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemple :

     ATTENDEE:MAILTO:jane_doe@host.com
4.3.4. Date
Nom de valeur :

DATE

But :

Ce type de valeur est utilisé pour identifier les valeurs contenant une date de calendrier.

Définition formelle :

Le type de valeur est défini par la notation suivante :

     date               = date-value

     date-value         = date-fullyear date-month date-mday

     date-fullyear      = 4DIGIT
     date-month         = 2DIGIT        ; 01-12
     date-mday          = 2DIGIT        ; 01-28, 01-29, 01-30, 01-31
                                        ;  selon le mois ou l'année
Description :

Si la propriété l'autorise, les valeurs "date" multiples sont indiquées par une liste de valeurs séparées par des caractères VIRGULE (code décimal 44 US-ASCII). Le format du type de valeur est exprimé dans celui de base d'une représentation complète ["+"] pour une date de calendrier. Le format textuel indique une année de quatre chiffres, un mois de deux chiffres et un jour de deux chiffres. Il n'y a pas de caractères de séparation entre l'année, le mois et le jour du texte composé.

Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemple :

La chaîne suivante représente le 14 juillet 1997 :

     19970714
4.3.5. Date et heure
Nom de valeur :

DATE-TIME

But :

Ce type de valeur est utilisé pour identifier les valeurs indiquant la date et l'heure du jour précises d'un calendrier.

Définition formelle :

Le type de valeur est défini par la notation suivante :

     date-time  = date "T" time ; comme décrit dans les définitions des
                                ;  valeurs de date et d'heure
Description :

Si la propriété l'autorise, les valeurs "date-time" multiples sont indiquées par une liste de valeurs séparées par des caractères VIRGULE (code décimal 44 US-ASCII). Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Le type de données DATE-TIME sert à identifier les valeurs contenant la date et l'heure du jour précises d'un calendrier. Le format est fondé sur celui de base d'une représentation complète [ISO 8601] pour une date et heure de jour de calendrier. Le format texte est une concaténation de la date suivie de l'indicateur d'heure, le caractère LETTRE MAJUSCULE LATINE T (code décimal 84 US-ASCII), suivi de l'heure.

Le type de données DATE-TIME exprime des valeurs de temps en trois formes :

On NE DOIT PAS utiliser la forme de date et heure avec décalage UTC. Par exemle, voici une valeur de date et heure invalide :

     DTSTART:19980119T230000-0800       ; format de temps invalide

FORME n° 1 : Date avec heure locale

La forme de date avec heure locale est simplement une valeur de date et heure qui ne contient pas d'indicateur UTC ni d'indication de fuseau horaire. Par exemple, voici la représentation du 18 janvier 1998 à 23h00 :

     DTSTART:19980118T230000

Les valeurs de date et heure de ce type sont dites « flottantes » (floating) et ne sont pas liées à un fuseau horaire particulier. Elles sont utilisées pour représenter la même valeur, heures, minutes et secondes, indépendamment du fuseau horaire observé. Par exemple, on peut définir un événement indiquant qu'une personne est occupée tous les jours de 11:00 à 13:00, qu'importe le fuseau horaire dans lequel elle se trouve. Le destinataire d'un objet iCalendar avec une valeur de propriété représentant une heure locale, sans information de fuseau horaire associée, DEVRAIT interpréter la valeur comme étant liée au fuseau horaire où l'adhérent (ATTENDEE) se trouve à un moment donné. Cela signifie que deux adhérents, dans des fuseaux horaires différents, recevant la même définition d'événement en heure flottante, peuvent y participer à des heures réelles différentes. On ne DEVRAIT utiliser une heure flottante que là où ce comportement est raisonnable.

Dans la plupart des cas, on préférera une heure fixe. Pour communiquer correctement une heure fixe dans une valeur de propriété, on DOIT indiquer soit une heure UTC, soit une heure locale avec une référence de fuseau horaire.

L'utilisation d'une heure locale dans une valeur DATE-TIME sans paramètre de propriété TZID doit être interprétée comme une heure flottante, indépendamment de l'existence de composants de calendrier "VTIMEZONE" dans l'objet iCalendar.

FORME n° 2 : Date avec heure UTC

Une date avec heure UTC, ou heure absolue, est identifiée par un suffixe LETTRE MAJUSCULE LATINE Z (code décimal 90 US-ASCII), l'indicateur UTC, ajouté à la fin de la valeur d'heure. Par exemple, voici la représentation du 19 janvier 1998 à 07:00 UTC :

     DTSTART:19980119T070000Z

On NE DOIT PAS appliquer le paramètre de propriété TZID aux propriétés de type DATE-TIME dont les valeurs horaires sont indiquées en UTC.

FORME n° 3 : Date avec heure locale et référence de fuseau horaire

Une date et heure locale avec référence à un fuseau horaire se caractérise par l'utilisation du paramètre de propriété TZID pour référencer la définition de fuseau horaire appropriée. La propriété TZID est traitée en détails dans la section sur les fuseaux horaires. Par exemple, voici une représentation du 19 janvier 1998 à 02:00 à New York :

          DTSTART;TZID=US-Eastern:19980119T020000

Exemple :

Voici les représentations du 14 juillet 1997, à 13:30, à New York dans chacun des trois formats de temps, en utilisant la propriété "DTSTART".

     DTSTART:19970714T133000            ; heure locale
     DTSTART:19970714T173000Z           ; heure UTC
     DTSTART;TZID=US-Eastern:19970714T133000
                                        ; heure locale et référence
                                        ;  de fuseau horaire

Une valeur de temps DOIT SEULEMENT indiquer 60 secondes pour signifier la « seconde de bascule » (leap second) dans la valeur d'heure. Par exemple :

     COMPLETED:19970630T235960Z
4.3.6. Durée
Nom de valeur :

DURATION

But :

Ce type de valeur est utilisé pour identifier les propriétés contenant une durée.

Définition formelle :

Le type de valeur est défini par la notation suivante :

     dur-value  = (["+"] / "-") "P" (dur-date / dur-time / dur-week)

     dur-date   = dur-day [dur-time]
     dur-time   = "T" (dur-hour / dur-minute / dur-second)
     dur-week   = 1*DIGIT "W"
     dur-hour   = 1*DIGIT "H" [dur-minute]
     dur-minute = 1*DIGIT "M" [dur-second]
     dur-second = 1*DIGIT "S"
     dur-day    = 1*DIGIT "D"
Description :

Si la propriété l'autorise, les valeurs "dur-value" multiples sont indiquées par une liste de valeurs séparées par des caractères VIRGULE (code décimal 44 US-ASCII). Le format est exprimé dans celui de base d'une durée [ISO 8601]. Le format peut représenter des durées en fonction de semaines, de jours, d'heures et de secondes.

Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemples :

Voici une durée de 15 jours, 5 heures et 20 secondes :

     P15DT5H0M20S

Voici une durée de 7 semaines :

     P7W
4.3.7. Flottant
Nom de valeur :

FLOAT

But :

Ce type de valeur est utilisé pour identifier les propriétés contenant une valeur réelle (real number).

Définition formelle :

Le type de valeur est défini par la notation suivante :

     float      = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]
Description :

Si la propriété l'autorise, les valeurs "float" multiples sont indiquées par une liste de valeurs séparées par des caractères VIRGULE (code décimal 44 US-ASCII).

Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemple :

     1000000.0000001
     1.333
     -3.14
4.3.8. Entier
Nom de valeur :

INTEGER

But :

Ce type de valeur est utilisé pour identifier les propriétés contenant une valeur entière signée.

Définition formelle :

Le type de valeur est défini par la notation suivante :

     integer    = (["+"] / "-") 1*DIGIT
Description :

Si la propriété l'autorise, les valeurs "integer" multiples sont indiquées par une liste de valeurs séparées par des caractères VIRGULE (code décimal 44 US-ASCII). L'intervalle valide pour "integer" est de -2147483648 à 2147483647. Si le signe n'est pas indiqué, alors la valeur est supposée positive.

Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemple :

     1234567890
     -1234567890
     +1234567890
     432109876
4.3.9. Période de temps
Nom de valeur :

PERIOD

But :

Ce type de valeur est utilisé pour identifier les propriétés contenant une période de temps précise.

Définition formelle :

Le type de données est défini par la notation suivante :

     period     = period-explicit / period-start

     period-explicit = date-time "/" date-time
     ; le format de base d'une représentation complète [ISO 8601] pour
     ;  une période de temps consistant en un début et une fin. Le début
     ;  DOIT être avant la fin.

     period-start = date-time "/" dur-value
     ; le format de base d'une représentation complète [ISO 8601] pour
     ;  une période de temps constituée d'un début et d'une
     ;  durée positive.
Description :

Si la propriété l'autorise, les valeurs "period" multiples sont indiquées par une liste de valeurs séparées par des caractères VIRGULE (code décimal 44 US-ASCII). Il y a deux formes de période de temps. La première se caractérise par un début et une fin. Ce format est exprimé dans celui de base d'une représentation complète [ISO 8601] pour le début de la période de type DATE-TIME, suivi d'un caractère BARRE OBLIQUE (code décimal 47 US-ASCII), suivi de la fin de période de type DATE-TIME. Le début de la période DOIT être antérieur à la fin de la période. La deuxième se caractérise par un début et une durée positive. Le format est exprimé dans celui de base d'une représentation complète [ISO 8601] pour le début de la période de type DATE-TIME, suivi d'un caractère BARRE OBLIQUE (code décimal 47 US-ASCII), suivi du format de base [ISO 8601] pour la durée de la période de type DURATION.

Exemples :

Voici une période commençant à 18:00:00 UTC, le 1 janvier 1997 et se terminant à 07:00:00 UTC le 2 janvier 1997 :

     19970101T180000Z/19970102T070000Z

Voici une période commençant à 18:00:00 le 1 janvier 1997 et d'une durée de 5 heures et 30 minutes :

     19970101T180000Z/PT5H30M

Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

4.3.10. Règle de récurrence
Nom de valeur :

RECUR

But :

Ce type de valeur est utilisé pour identifier les propriétés contenant une définition de règle de récurrence.

Définition formelle :

Le type de valeur est défini par la notation suivante :

     recur      = "FREQ"=freq *(

                ; les mots-clés UNTIL ou bien COUNT peuvent apparaître
                ;  dans une règle 'recur', mais ils NE DOIVENT PAS
                ;  apparaître dans la même

                ( ";" "UNTIL" "=" enddate ) /
                ( ";" "COUNT" "=" 1*DIGIT ) /

                ; les mots-clés restants sont OPTIONNELS,
                ;   mais NE DOIVENT PAS apparaître plus d'une fois

                ( ";" "INTERVAL" "=" 1*DIGIT )          /
                ( ";" "BYSECOND" "=" byseclist )        /
                ( ";" "BYMINUTE" "=" byminlist )        /
                ( ";" "BYHOUR" "=" byhrlist )           /
                ( ";" "BYDAY" "=" bywdaylist )          /
                ( ";" "BYMONTHDAY" "=" bymodaylist )    /
                ( ";" "BYYEARDAY" "=" byyrdaylist )     /
                ( ";" "BYWEEKNO" "=" bywknolist )       /
                ( ";" "BYMONTH" "=" bymolist )          /
                ( ";" "BYSETPOS" "=" bysplist )         /
                ( ";" "WKST" "=" weekday )              /
                ( ";" x-name "=" text )
                )

     freq       = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
                / "WEEKLY" / "MONTHLY" / "YEARLY"

     enddate    = date
     enddate    =/ date-time            ; une valeur UTC

     byseclist  = seconds / ( seconds *("," seconds) )

     seconds    = 1DIGIT / 2DIGIT       ; 0 à 59

     byminlist  = minutes / ( minutes *("," minutes) )

     minutes    = 1DIGIT / 2DIGIT       ; 0 à 59

     byhrlist   = hour / ( hour *("," hour) )

     hour       = 1DIGIT / 2DIGIT       ; 0 à 23

     bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) )

     weekdaynum = [([plus] ordwk / minus ordwk)] weekday

     plus       = "+"

     minus      = "-"

     ordwk      = 1DIGIT / 2DIGIT       ; 1 à 53

     weekday    = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
     ; correspondant aux jours de la semaine dimanche (sunday),
     ;  lundi (monday), mardi (tuesday), mercredi (wednesday),
     ;  jeudi (thursday), vendredi (friday) et samedi (saturday).

     bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) )

     monthdaynum = ([plus] ordmoday) / (minus ordmoday)

     ordmoday   = 1DIGIT / 2DIGIT       ; 1 à 31

     byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) )

     yeardaynum = ([plus] ordyrday) / (minus ordyrday)

     ordyrday   = 1DIGIT / 2DIGIT / 3DIGIT      ; 1 à 366

     bywknolist = weeknum / ( weeknum *("," weeknum) )

     weeknum    = ([plus] ordwk) / (minus ordwk)

     bymolist   = monthnum / ( monthnum *("," monthnum) )

     monthnum   = 1DIGIT / 2DIGIT       ; 1 à 12

     bysplist   = setposday / ( setposday *("," setposday) )

     setposday  = yeardaynum
Description :

Si la propriété l'autorise, les valeurs "recur" multiples sont indiquées par une liste de valeurs séparées par des caractères VIRGULE (code décimal 44 US-ASCII). Le type de valeur est une valeur structurée consistant en une liste composée d'un ou de plusieurs éléments de la grammaire de récurrence. Chaque composant de règle est défini par un couple « nom=valeur ». Les composants de règle ne sont pas rangés selon une séquence particulière. Les composants de règle individuels ne DOIVENT être définis qu'une seule fois.

Le composant de règle FREQ identifie le type de la règle de récurrence. Ce composant de règle DOIT apparaître dans la règle de récurrence. Les valeurs valides comprennent SECONDLY, pour qualifier des événements se répétant à intervalle d'une seconde ou plus, MINUTELY, pour des répétitions à intervalle d'une minute ou plus, HOURLY, pour des des intervalles d'une heure ou plus, DAILY, pour des intervalles d'un jour ou plus, WEEKLY, pour des intervalles d'une semaine ou plus, MONTHLY, pour des intervalles d'un mois ou plus et YEARLY, pour qualifier des événements se répétant à intervalle d'une année ou plus.

Le composant de règle INTERVAL contient un entier positif indiquant le nombre de fois où la règle de récurrence se répète. La valeur par défaut est "1", signifiant chaque seconde pour une règle SECONDLY, chaque minute pour MINUTELY, chaque heure pour HOURLY, chaque jour pour DAILY, chaque semaine pour WEEKLY, chaque mois pour MONTHLY et chaque année pour une règle YEARLY.

Le composant de règle UNTIL définit une valeur de date et heure (date-time) qui contraint la règle de récurrence de façon inclusive. Si la valeur indiquée par UNTIL est synchronisée à la récurrence définie, cette date, ou date et heure, est celle de dernière instance de la récurrence. Si la valeur indiquée est de type date et heure, alors elle DOIT l'être dans un format de temps UTC. Si ce composant de règle est absent et le composant de règle COUNT aussi, la règle RRULE est censée se répéter indéfiniment.

Le composant de règle COUNT définit le nombre de fois auquel associer la récurrence. La valeur de propriété "DTSTART", si indiquée, compte comme première apparition (occurrence).

Le composant de règle BYSECOND définit une liste de secondes dans une minute, séparées par des caractères VIRGULE (code décimal 44 US-ASCII). Les valeurs valides s'échelonnent de 0 à 59. Le composant de règle BYMINUTE indique une liste de minutes dans une heure, séparées par des caractères VIRGULE. Les valeurs valides s'échelonnent de 0 à 59. Le composant de règle BYHOUR indique une liste d'heures dans la journée, séparées par des caractères VIRGULE. Les valeurs valides s'échelonnent de 0 à 23.

Le composant de règle BYDAY définit une liste de jours dans la semaine, séparées par des caractères VIRGULE (code décimal 44 US-ASCII). La valeur MO correspond au lundi, TU au mardi, WE au mercredi, TH au jeudi, FR au vendredi, SA au samedi et SU au dimanche.

Chaque valeur BYDAY peut également être précédée d'un entier positif (+n) ou négatif (-n). Si présent, il indique la nième apparition du jour spécifique dans une règle RRULE de type MONTHLY ou YEARLY. Par exemple, dans une règle MONTHLY, +1MO (ou simplement 1MO) représente le premier lundi du mois, tandis que -1MO représente le dernier lundi du mois. Si aucun modificateur entier n'est présent, cela correspond à tous les jours de ce type dans la fréquence indiquée. Par exemple, dans une règle MONTHLY, MO représente tous les lundis du mois.

Le composant de règle BYMONTHDAY définit une liste de jours dans le mois, séparés par des caractères VIRGULE (code décimal 44 US-ASCII). Les valeurs valides s'échelonnent de 1 à 31, ou de -31 à -1. Par exemple, -10 représente représente l'intervalle du dixième au dernier jour du mois.

Le composant de règle BYYEARDAY définit une liste de jours dans l'année, séparés par des caractères VIRGULE (code décimal 44 US-ASCII). Les valeurs valides s'échelonnent de 1 à 366, ou de -366 à -1. Par exemple, -1 représente le dernier jour de l'année (le 31 décembre) et -306 représente l'intervalle du 306ème (le 1er mars) au dernier jour de l'année.

Le composant de règle BYWEEKNO définit une liste d'ordinaux indiquant les semaines de l'année, sépérés par des caractères VIRGULE (code décimal 44 US-ASCII). Les valeurs valides s'échelonnent de 1 à 53, ou de -53 à -1. Elles correspondent aux semaines selon la numérotation des semaines définie par la norme [ISO 8601]. Une semaine est définie comme une période de 7 jours, commençant le jour de la semaine défini comme début de semaine (cf. la règle WKST). La semaine numéro 1 de l'année civile est la première semaine contenant au moins 4 jours dans cette année civile. Ce composant de règle n'est valide que pour les règles YEARLY. Par exemple, 3 représente la troisième semaine de l'année.

Remarque : En supposant une semaine commençant le lundi, la semaine 53 ne peut exister que si le 1er janvier est un mardi, ou un mercredi dans le cas d'une année bissextile.

Le composant de règle BYMONTH définit une liste de mois dans l'année, séparés par des caractères VIRGULE (code décimal 44 US-ASCII). Les valeurs valides s'échelonnent de 1 à 12.

Le composant de règle WKST définit le jour où commence la semaine. Les valeurs valides sont MO, TU, WE, TH, FR, SA et SU. Cela revêt une importance lorsqu'une règle RRULE de type WEEKLY a un intervalle supérieur à 1 et qu'une règle BYDAY est définie. Cela importe aussi pour une règle RRULE de type YEARLY lorsqu'un composant de règle BYWEEKNO est défini. La valeur par défaut est MO.

Le composant de règle BYSETPOS définit une liste de valeurs, séparées par des caractères VIRGULE (code décimal 44 US-ASCII), qui correspondent à la nième apparition dans l'ensemble des événements définis par la règle. Les valeurs valides s'échelonnent de 1 à 366, ou de -366 à -1. On ne DOIT l'utiliser qu'avec un autre composant de règle de type BYxxx. Par exemple, on pourrait représenter le « dernier jour ouvrable de la semaine » par :

     RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1

Chaque valeur BYSETPOS peut contenir un entier positif (+n) ou négatif (-n). Si présent, il indique la nième apparition de l'apparition spécifique dans l'ensemble des événements défini par la règle.

S'il se trouve des valeurs de composants de règle de type BYxxx hors de l'intervalle possible (par exemple, BYMONTHDAY=30 en février), elles sont simplement ignorées.

Les informations, non contenues dans la règle, nécessaires pour déterminer les heures et dates de début des diverses instances de récurrence sont dérivées de l'attribut d'entrée de temps de début (DTSTART). Par exemple, le fragment "FREQ=YEARLY;BYMONTH=1" ne définit pas de jour spécifique dans le mois ni d'heure. Ces informations devraient être les mêmes que celles indiquées par DTSTART.

Les composants de règles de type BYxxx modifient la récurrence d'une certaine manière. Les composants de règle BYxxx d'une période de temps qui est égale ou supérieure à la fréquence réduisent ou limitent généralement le nombre d'apparitions de la récurrence générée. Par exemple, "FREQ=DAILY;BYMONTH=1" réduit le nombre des instances de récurrence de tous les jours (si la règle BYMONTH est absente) à tous les jours en janvier. Les composants de règle BYxxx d'une période de temps inférieure à la fréquence accroissent ou étendent généralement le nombre d'apparitions. Par exemple, "FREQ=YEARLY;BYMONTH=1,2" augmente le nombre de jours dans l'ensemble de récurrence annuelle de 1 (en absence de la règle BYMONTH) à 2.

Si plusieurs composants de règle BYxxx sont présents, après l'évaluation des composants de règle FREQ et INTERVAL indiqués, les composants de règle BYxxx sont alors appliqués à l'ensemble courant des apparitions, évaluées dans l'ordre suivant : BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR, BYMINUTE, BYSECOND et BYSETPOS ; les composants de règle COUNT et UNTIL sont évalués ensuite.

Voici un exemple d'évaluation de plusieurs composants de règle BYxxx :

     DTSTART;TZID=US-Eastern:19970105T083000
     RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
      BYMINUTE=30

Tout d'abord, "INTERVAL=2" s'applique à "FREQ=YEARLY" pour signifier « une année sur deux », puis "BYMONTH=1" s'applique pour signifier « chaque mois de janvier, une année sur deux », puis "BYDAY=SU" pour signifier « chaque dimanche de janvier, une année sur deux », puis "BYHOUR=8,9" pour signifier « chaque dimanche de janvier à 8:00 et à 9:00, une année sur deux », puis "BYMINUTE=30" pour signifnier « chaque dimanche de janvier à 8:30 et à 9:30, une année sur deux » ; s'ajoutent enfin les informations manquant dans la règle RRULE, les secondes sont dérivées de DTSTART pour aboutir à « chaque dimanche de janvier à 8:30:00 et à 9:30:00, une année sur deux ». Et de la même façon pour les composants de règles BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY ou BYMONTH manquants, où les minutes, heures, jours ou mois appropriés seraient récupérés auprès de la propriété "DTSTART".

Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemple :

Voici une règle qui définit 10 réunions ayant lieu un jour sur deux :

     FREQ=DAILY;COUNT=10;INTERVAL=2

Il y a d'autres exemples dans la définition de "RRULE".

4.3.11. Texte
Nom de valeur :

TEXT

But :

Ce type de valeur est utilisé pour identifer les valeurs contenant du texte lisible par un humain.

Définition formelle :

Les jeux de caractères reconnus à compter de cette révision d'iCalendar sont les jeux UTF-8 et US-ASCII. L'applicabilité à d'autres jeux de caractères fera l'objet de travaux futurs. Le type de valeur est défini par la notation suivante :

     text       = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
     ; plié selon une description précédente

     ESCAPED-CHAR = "\\" / "\;" / "\," / "\N" / "\n")
        ; \\ code \, et \N ou \n codent un saut de ligne
        ; \; code ;, et \, code ,

     TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B
                  %x5D-7E / NON-US-ASCII
        ; tout caractère (sauf ceux de contrôle) non nécessité par le
        ;  jeu de caractères courant, et DQUOTE, ";", ":", "\", ","

Remarque : D'autres jeux de caractères peuvent nécessiter une modification des définitions précédentes mais la question n'est pas traitée par ce document.

Description :

Si la propriété l'autorise, les valeurs "text" multiples sont indiquées par une liste de valeurs séparées par des caractères VIRGULE (code décimal 44 US-ASCII).

La langue du texte représenté peut être contrôlée par le paramètre de propriété "LANGUAGE".

Les sauts de ligne intentionnels de formatage du texte, dans une valeur de propriété de type TEXT, DOIVENT seulement être représentés par la séquence de caractères BARRE OBLIQUE INVERSÉE (code décimal 92 US-ASCII) et LETTRE MINUSCULE LATINE N (code décimal 110 US-ASCII), ou bien LETTRE MAJUSCULE LATINE N (code décimal 78 US-ASCII), c'est-à-dire par "\n" ou "\N".

Les valeurs de propriété de type TEXT peuvent aussi contenir des caractères spéciaux utilisés comme délimiteurs, tels que les caractères VIRGULE pour les listes de valeurs ou POINT-VIRGULE pour les valeurs structurées. Pour inclure ces caractères spéciaux dans les valeurs de propriété de type TEXT, on DOIT les formater (escape) à l'aide d'un caractère BARRE OBLIQUE INVERSÉE. Les caractères BARRE OBLIQUE INVERSÉE littéraux (code décimal 92 US-ASCII) dans une valeur de propriété de type TEXT DOIVENT être formatés par un autre caractère BARRE OBLIQUE INVERSÉE, tout comme les caractères VIRGULE et les caractères POINT-VIRGULE. Par contre, les caractères DEUX-POINTS NE DEVRONT PAS être formatés à l'aide d'un caractère BARRE OBLIQUE INVERSÉE. Par exemple, la valeur sur plusieurs lignes suivante :

     Project XYZ Final Review
     Conference Room - 3B
     Come Prepared.

Celle-ci serait représentée par :

     Project XYZ Final Review\nConference Room - 3B\nCome Prepared.
4.3.12. Heure
Nom de valeur :

TIME

But :

Ce type de valeur est utilisé pour identifier les valeurs contenant une heure dans la journée.

Définition formelle :

Le type de données est défini par la notation suivante :

     time               = time-hour time-minute time-second [time-utc]

     time-hour          = 2DIGIT        ;00-23
     time-minute        = 2DIGIT        ;00-59
     time-second        = 2DIGIT        ;00-60
     ; la valeur "60" sert à représenter les « sauts » de secondes.

     time-utc   = "Z"
Description :

Si la propriété l'autorise, les valeurs "time" multiples sont indiquées par une liste de valeurs séparées par des caractères VIRGULE (code décimal 44 US-ASCII. Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Le type de données TIME sert à identifier les valeurs contenant une heure dans la journée. Le format est fondé sur celui de base d'une représentation complète [ISO 8601] pour une heure du jour. Le format textuel consiste en heures sur deux chiffres pour un jour (c'est-à-dire, des valeurs de 0 à 23), en minutes sur deux chiffres pour une heure (c'est-à-dire, des valeurs de 0 à 59) et de secondes sur deux chiffres pour une minute (c'est-à-dire, des valeurs de 0 à 60). La valeur des secondes de 60 DOIT seulement être utilisée pour représenter des « sauts » de secondes. Les fractions de seconde ne sont pas reconnues par ce format.

En parallèle de la définition du type DATE-TIME précédente, le type de donnée TIME exprime les valeurs d'heure de trois façons :

On NE DOIT PAS utiliser la forme horaire avec décalage UTC. Par exemple, la valeur de temps suivante N'EST PAS VALIDE :
     230000-0800        ; format de temps invalide

FORME n° 1 : Heure locale

La forme d'heure locale est simplement une valeur horaire qui ne contient pas d'indicateur UTC ni de référence de fuseau horaire. Par exemple, 23:00 :

     230000

Les valeurs de temps de ce type sont dites « flottantes » (floating) et ne sont pas liées à un fuseau horaire particulier. Elles sont utilisées pour représenter la même valeur, heures, minutes et secondes, indépendamment du fuseau horaire observé. Par exemple, on peut définir un événement indiquant qu'une personne est occupée tous les jours de 11:00 à 13:00, qu'importe le fuseau horaire dans lequel elle se trouve. On peut indiquer une heure locale dans ces cas. Le destinataire d'un objet iCalendar avec une valeur de propriété représentant une heure locale, sans information de fuseau horaire associée, DEVRAIT interpréter la valeur comme étant liée au fuseau horaire dans lequel l'adhérent (ATTENDEE) se trouve à un moment donné. Cela signifie que deux adhérents, dans des fuseaux horaires différents, recevant la même définition d'événement en heure flottante, peuvent y participer à des heures réelles différentes. On ne DEVRAIT utiliser une heure flottante que là où ce comportement se justifie.

Dans la plupart des cas, on préférera une heure fixe. Pour communiquer correctement une heure fixe dans une valeur de propriété, on DOIT indiquer soit une heure UTC, soit une heure locale avec une référence de fuseau horaire.

L'utilisation d'une heure locale dans une valeur de type TIME sans paramètre de propriété TZID doit être interprétée comme une valeur d'heure locale, indépendamment de l'existence de composants de calendrier "VTIMEZONE" dans l'objet iCalendar.

FORME n° 2 : Heure UTC

Une heure UTC, ou heure absolue, est identifiée par un suffixe LETTRE MAJUSCULE LATINE Z (code décimal 90 US-ASCII), l'indicateur UTC, ajouté à la fin de la valeur horaire. Par exemple, voici la représentation de 07:00 UTC :

     070000Z

On NE DOIT PAS appliquer le paramètre de propriété TZID aux propriétés de type DATE-TIME dont les valeurs horaires sont indiquées en UTC.

FORME n° 3 : Heure locale et référence de fuseau horaire

L'heure locale avec référence à un fuseau horaire se caractérise par l'utilisation du paramètre de propriété TZID pour indiquer la définition de fuseau horaire appropriée. La propriété TZID est traitée en détails dans la section sur les fuseaux horaires.

Exemple :

Voici une représentation pour 08:30 à New York en hiver, cinq heures en retard sur le temps UTC, dans chacun des trois formats en utilisant la propriété non standard "X-TIMEOFDAY" :

     X-TIMEOFDAY:083000

     X-TIMEOFDAY:133000Z

     X-TIMEOFDAY;TZID=US-Eastern:083000
4.3.13. Adresse URI
Nom de valeur :

URI

But :

Ce type de valeur est utilisé pour identifier les valeurs contenant un type d'identificateur de ressource uniforme (URI) de référence vers la valeur de propriété.

Définition formelle :

Le type de données est défini par la notation suivante :

     uri        = <tel que défini par tout RFC de l'IETF>
Description :

Ce type de données peut servir à référencer des informations binaires, pour des valeurs volumineuses, ou sinon dont l'inclusion directe dans l'objet iCalendar n'est pas souhaitable.

Les formats de valeurs URI dans les RFC 1738, RFC 2111 et tout autre format de valeur enregistré auprès de l'IETF peuvent être employés.

Tout format URI enregistré auprès de l'IANA peut être utilisé. Cela comprend ceux définis dans les RFC 1738 et RFC 2111, mais pas seulement.

Lorsqu'une valeur de paramètre de propriété est du type de valeur URI, l'adresse URI doit être indiquée sous forme de chaîne entre guillemets.

Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemple :

Voici l'adresse URI d'un fichier sur un réseau :

     http://host1.com/my-report.txt
4.3.14. Décalage UTC
Nom de valeur :

UTC-OFFSET

But :

Ce type de valeur est utilisé pour identifier les propriétés contenant un décalage entre heure UTC et heure locale.

Définition formelle :

Le type de données est défini par la notation suivante :

     utc-offset = time-numzone  ; comme défini dans le type time

     time-numzone       = ("+" / "-") time-hour time-minute [time-
     second]
Description :

Le caractère SIGNE PLUS DOIT être indiqué pour les décalages UTC positifs (c'est-à-dire en avance du temps UTC). Les valeurs "-0000" et "-000000" ne sont pas permises. Si présente, la valeur "time-second" ne peut pas valoir 60, et si absente, vaut zéro par défaut.

Aucun autre codage de valeur de contenu (c'est-à-dire, un codage utilisant le caractère BARRE OBLIQUE INVERSÉE) n'est défini pour ce type de valeur.

Exemple :

Les décalages UTC suivants sont donnés pour les heures standards de New York (cinq heures de retard sur l'heure UTC) et Genève (une heure d'avance sur l'heure UTC) :

     -0500

     +0100

4.4. Objet iCalendar

L'objet central de gestion d'agenda et de planification est une collection d'informations de gestion d'agenda et de planification. Ces informations constitueront typiquement un seul objet iCalendar. Toutefois, plusieurs objets iCalendar peuvent être regroupés en séquence. La première ligne de l'objet iCalendar et la dernière DOIVENT contenir les éléments du couple de délimitation d'un objet iCalendar. La syntaxe d'un objet iCalendar est la suivante :

     icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF
                  icalbody
                  "END" ":" "VCALENDAR" CRLF)

Voici un exemple simple d'objet iCalendar :

     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

4.5. Propriété

Une propriété est la définition d'un attribut individuel décrivant un calendrier ou un composant de calendrier. Une propriété prend la forme décrite par la notation "contentline" définie dans la section 4.1.

Voici un exemple de propriété :

     DTSTART:19960415T133000Z

Ce mémoire n'impose aucun ordre des propriétés dans l'objet iCalendar.

Les noms de propriétés, les noms de paramètres et les valeurs de paramètres énumérées ne dépendent pas de la casse. Par exemple, le nom de propriété "DUE" est pareil à "due" et "Due", DTSTART;TZID=US-Eastern:19980714T120000 est pareil à DtStart;TzID=US-Eastern:19980714T120000.

4.6. Composants de calendrier

Le corps de l'objet iCalendar se compose d'une séquence de propriétés de calendrier et d'un ou plusieurs composants de calendrier. Les propriétés de calendrier sont des attributs qui s'appliquent au calendrier dans son ensemble. Les composants de calendrier sont des collections de propriétés qui expriment une sémantique de calendrier particulière. Par exemple, le composant de calendrier peut définir un événement, une tâche, une écriture de journal, une indication de fuseau horaire ou une indication de temps libre ou occupé, ou une alerte.

Le corps de l'objet iCalendar est défini par la notation suivante :

     icalbody   = calprops component

     calprops   = 2*(

                ; 'prodid' et 'version' sont OBLIGATOIRES,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                prodid /version /

                ; 'calscale' et 'method' sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                calscale        /
                method          /

                x-prop

                )

     component  = 1*(eventc / todoc / journalc / freebusyc /
                / timezonec / iana-comp / x-comp)

     iana-comp  = "BEGIN" ":" iana-token CRLF

                  1*contentline

                  "END" ":" iana-token CRLF

     x-comp     = "BEGIN" ":" x-name CRLF

                  1*contentline

                  "END" ":" x-name CRLF

Un objet iCalendar DOIT inclure les propriétés de calendrier "PRODID" et "VERSION". De plus, il DOIT inclure au moins un composant de calendrier. Il est possible d'utiliser des formes spéciales d'objets iCalendar pour simplement publier une indication de temps occupé (c'est-à-dire seulement un composant de calendrier "VFREEBUSY") ou de fuseau horaire (c'est-à-dire seulement un composant de calendrier "VTIMEZONE"). En outre, il est possible d'utiliser un objet iCalendar complexe pour capturer un instantané complet du contenu d'un calendrier (par exemple, un composite de plusieurs composants de calendrier différents). Le plus souvent, un objet iCalendar sera constitué d'un seul composant de calendrier "VEVENT", "VTODO" ou "VJOURNAL".

4.6.1. Composant d'événement
Nom du composant :

VEVENT

But :

Fournir un regroupement des propriétés de composant décrivant un événement.

Définition de format :

Le composant de calendrier "VEVENT" est défini par la notation suivante :

     eventc     = "BEGIN" ":" "VEVENT" CRLF
                  eventprop *alarmc
                  "END" ":" "VEVENT" CRLF

     eventprop  = *(

                ; les propriétés suivantes sont OPTIONNELLES,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                class / created / description / dtstart / geo /
                last-mod / location / organizer / priority /
                dtstamp / seq / status / summary / transp /
                uid / url / recurid /

                ; l'une ou l'autre propriétés 'dtend' ou 'duration'
                ;  peuvent apparaître dans un ensemble 'eventprop', mais
                ;  NE DOIVENT PAS apparaître dans le même 'eventdrop'

                dtend / duration /

                ; les propriétés suivantes sont OPTIONNELLES
                ;  et PEUVENT apparaître plusieurs fois

                attach / attendee / categories / comment /
                contact / exdate / exrule / rstatus / related /
                resources / rdate / rrule / x-prop

                )
Description :

Un composant de calendrier "VEVENT" est un regroupement de propriétés de composant, comprenant éventuellement des composants de calendrier "VALARM", qui représente une quantité planifiée de temps sur un calendrier. Par exemple, ça peut être une activité, telle qu'une réunion d'administration d'une heure, de 8:00 à 9:00, le lendemain. En général, un événement occupera un certain temps sur un calendrier individuel. De fait, l'événement apparaîtra comme un intervalle opaque dans une recherche de temps occupé. Inversement, on peut attribuer la valeur TRANSPARENT à la propriété de transparence de temps de l'événement afin de libérer l'événement pour les recherches de temps occupé.

Le composant de calendrier "VEVENT" sert aussi à définir un anniversaire ou un rappel quotidien dans un calendrier. La propriété "DSTART" de ces événements a le type de valeur DATE au lieu du type par défaut DATE-TIME. Si un tel composant "VEVENT" a une propriété "DTEND", elle DOIT aussi être définie avec le type de valeur DATE. Le type anniversaire du composant "VEVENT" peut recouvrir plusieurs dates (c'est-à-dire que la valeur de la propriété "DTEND" correspond à une date de calendrier postérieure à celle de la propriété "DTSTART").

La propriété "DTSTART" d'un composant "VEVENT" définit le début inclusif de l'événement. Pour les événements récurrents, elle indique également la toute première instance de l'ensemble de récurrence. La propriété "DTEND" d'un composant "VEVENT" définit la fin non inclusive de l'événement. Au cas où le composant de calendrier "VEVENT" indique une propriété "DTSTART" avec un type de données DATE mais pas de propriété "DTEND", la fin non inclusive de l'événement est celle de la date de calendrier définie par la propriété "DTSTART". Au cas où le composant de calendrier "VEVENT" définit une propriété "DTSTART" avec un type de données DATE-TIME mais pas de propriété "DTEND", l'événement se termine aux mêmes date civile et heure du jour que celles indiquées par la propriété "DTSTART".

Le composant "VEVENT" ne peut pas être imbriqué dans un autre composant de calendrier. Par contre, les composants de calendrier "VEVENT" peuvent être liés les uns aux autres, ou à un composant de calendrier "VTODO" ou "VJOURNAL" à l'aide de la propriété "RELATED-TO".

Exemples :

Voici l'exemple d'un composant de calendrier "VEVENT" utilisé pour représenter une réunion, laquelle sera en outre opaque pour les recherches de temps occupé :

     BEGIN:VEVENT
     UID:19970901T130000Z-123401@host.com
     DTSTAMP:19970901T1300Z
     DTSTART:19970903T163000Z
     DTEND:19970903T190000Z
     SUMMARY:Annual Employee Review
     CLASS:PRIVATE
     CATEGORIES:BUSINESS,HUMAN RESOURCES
     END:VEVENT

Voici l'exemple d'un composant de calendrier "VEVENT" utilisé pour représenter un rappel lequel sera transparent pour les recherches de temps occupé :

     BEGIN:VEVENT
     UID:19970901T130000Z-123402@host.com
     DTSTAMP:19970901T1300Z
     DTSTART:19970401T163000Z
     DTEND:19970402T010000Z
     SUMMARY:Laurel is in sensitivity awareness class.
     CLASS:PUBLIC
     CATEGORIES:BUSINESS,HUMAN RESOURCES
     TRANSP:TRANSPARENT
     END:VEVENT

Voici l'exemple d'un composant de calendrier "VEVENT" utilisé pour représenter un anniversaire reconductible annuellement. Puisqu'il n'occupe aucune durée, il n'apparaîtra pas opaque pour une recherche de temps occupé, quelle que soit la valeur indiquée par la propriété "TRANSP" :

     BEGIN:VEVENT
     UID:19970901T130000Z-123403@host.com
     DTSTAMP:19970901T1300Z
     DTSTART:19971102
     SUMMARY:Our Blissful Anniversary
     CLASS:CONFIDENTIAL
     CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
     RRULE:FREQ=YEARLY
     END:VEVENT
4.6.2. Composant de tâche
Nom du composant :

VTODO

But :

Fournir un regroupement de propriétés de calendrier décrivant une tâche (to-do).

Définition formelle :

Le composant de calendrier "VTODO" est défini par la notation suivante :

     todoc      = "BEGIN" ":" "VTODO" CRLF
                  todoprop *alarmc
                  "END" ":" "VTODO" CRLF

     todoprop   = *(

                ; les propriétés suivantes sont OPTIONNELLES,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                class / completed / created / description / dtstamp /
                dtstart / geo / last-mod / location / organizer /
                percent / priority / recurid / seq / status /
                summary / uid / url /

                ; l'une ou l'autre propriétés 'due' ou 'duration'
                ;  peuvent apparaître dans un ensemble 'todoprop', mais
                ;  NE DOIVENT PAS apparaître dans le même 'todoprop'

                due / duration /

                ; les propriétés suivantes sont OPTIONNELLES
                ;  et PEUVENT apparaître plusieurs fois
                
                attach / attendee / categories / comment / contact /
                exdate / exrule / rstatus / related / resources /
                rdate / rrule / x-prop

                )
Description :

Un composant de calendrier "VTODO" est un regroupement de propriétés de composants, comprenant éventuellement des compoants de calendrier "VALARM", qui représentent un élément d'action ou une mission. Par exemple, on peut l'utiliser pour représenter un élément de travail affecté à une personne, tel que « aujourd'hui saisir les frais de déplacement ».

Le composant "VTODO" ne peut pas être imbriqué dans d'autres composants de calendrier. Toutefois, les composants de calendrier "VTODO" peuvent être liés les uns aux autres, ou à un composant de calendrier "VTODO" ou "VJOURNAL", à l'aide de la propriété "RELATED-TO".

Un composant de calendrier "VTODO" sans propriétés "DTSTART" et "DUE" (ou "DURATION") définit une tâche qui sera associée à chaque date de calendrier successive, jusqu'à sa réalisation.

Exemple :

Voici l'exemple d'un composant de calendrier "VTODO" :

     BEGIN:VTODO
     UID:19970901T130000Z-123404@host.com
     DTSTAMP:19970901T1300Z
     DTSTART:19970415T133000Z
     DUE:19970416T045959Z
     SUMMARY:1996 Income Tax Preparation
     CLASS:CONFIDENTIAL
     CATEGORIES:FAMILY,FINANCE
     PRIORITY:1
     STATUS:NEEDS-ACTION
     END:VTODO
4.6.3. Composant de journal
Nom du composant :

VJOURNAL

But :

Fournir un regroupement des propriétés décrivant une écriture de journal (journal entry).

Définition formelle :

Le composant de calendrier "VJOURNAL" est défini par la notation suivante :

     journalc   = "BEGIN" ":" "VJOURNAL" CRLF
                  jourprop
                  "END" ":" "VJOURNAL" CRLF

     jourprop   = *(

                ; les propriétés suivantes sont OPTIONNELLES,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                class / created / description / dtstart / dtstamp /
                last-mod / organizer / recurid / seq / status /
                summary / uid / url /

                ; les propriétés suivantes sont OPTIONNELLES
                ;  et PEUVENT apparaître plusieurs fois

                attach / attendee / categories / comment /
                contact / exdate / exrule / related / rdate /
                rrule / rstatus / x-prop

                )
Description :

Un composant de calendrier "VJOURNAL" est un regroupement de propriétés de composants représentant une ou plusieurs notes de texte descriptif associées à une date particulière de calendrier. La propriété "DTSTART" sert à indiquer la date de calendrier à laquelle l'écriture de journal est associée. En général, elle aura une valeur du type de données DATE mais elle pourra aussi indiquer une valeur du type de données DATE-TIME. Les exemples d'écriture de journal comprennent l'archivage quotidien d'une instance législative ou une écriture de journal des coordonnées téléphoniques personnelles du jour ou une liste ordonnée des réalisations du jour. Le composant de calendrier "VJOURNAL" peut également servir à associer un document à une date de calendrier.

Le composant de calendrier "VJOURNAL" n'occupe aucune durée sur un calendrier. De fait, il ne joue aucun rôle dans les recherches de temps libre ou occupé, comme si sa valeur de transparence de temps était TRANSPARENT. Il est transparent pour les recherches de ce genre.

Le composant "VJOURNAL" ne peut pas être imbriqué dans un autre composant de calendrier. Toutefois, les composants de calendrier "VJOURNAL" peuvent être liés les uns aux autres, ou à un composant "VEVENT" ou "VTODO", à l'aide de la propriété "RELATED-TO".

Exemple :

Voici l'exemple d'un composant de calendrier "VJOURNAL" :

     BEGIN:VJOURNAL
     UID:19970901T130000Z-123405@host.com
     DTSTAMP:19970901T1300Z
     DTSTART;VALUE=DATE:19970317
     SUMMARY:Staff meeting minutes
     DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa
       and Bob. Aurora project plans were reviewed. There is currently
       no budget reserves for this project. Lisa will escalate to
       management. Next meeting on Tuesday.\n
       2. Telephone Conference: ABC Corp. sales representative called
       to discuss new printer. Promised to get us a demo by Friday.\n
       3. Henry Miller (Handsoff Insurance): Car was totaled by tree.
       Is looking into a loaner car. 654-2323 (tel).
     END:VJOURNAL
4.6.4. Composant de temps libre ou occupé
Nom du composant :

VFREEBUSY

But :

Fournir un regroupement des propriétés de composants décrivant une demande de temps libre ou occupé, ou bien une réponse à une demande de temps libre ou occupé, ou bien un ensemble de temps occupés publié.

Définition formelle :

Le composant de calendrier "VFREEBUSY" est défini par la notation suivante :

     freebusyc  = "BEGIN" ":" "VFREEBUSY" CRLF
                  fbprop
                  "END" ":" "VFREEBUSY" CRLF

     fbprop     = *(

                ; les propriétés suivantes sont OPTIONNELLES,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                contact / dtstart / dtend / duration / dtstamp /
                organizer / uid / url /

                ; les propriétés suivantes sont OPTIONNELLES
                ;  et PEUVENT apparaître plusieurs fois

                attendee / comment / freebusy / rstatus / x-prop

                )
Description :

Un composant de calendrier "VFREEBUSY" est un regroupement de propriétés de composants représentant une demande d'information de temps libre ou occupé, ou une réponse à une demande d'information de temps libre ou occupé, ou un ensemble publié d'informations de temp occupé.

Pour une demande d'information de temps libre ou occupé, la propriété "ATTENDEE" indique les utilisateurs de calendrier dont le temps libre ou occupé est demandé ; la propriété "ORGANIZER" indique l'utilisateur de calendrier qui demande le temps libre ou occupé ; les propriétés "DTSTART" et "DTEND" définissent le créneau horaire pour lequel le temps libre ou occupé est demandé ; les propriétés "UID" et "DTSTAMP" aident à déterminer la succession exacte des demandes de temps libre ou occupé multiples.

Pour une réponse à une demande de temps libre ou occupé, la propriété "ATTENDEE" indique l'utilisateur de calendrier qui répond à la demande de temps libre ou occupé ; la propriété "ORGANIZER" indique l'utilisateur de calendrier à l'origine de la demande de temps libre ou occupé ; la propriété "FREEBUSY" définit l'information de temps libre ou occupé (si elle existe) ; les propriétés "UID" et "DTSTAMP" aident à déterminer la succession exacte des réponses de temps libre ou occupé multiples.

Pour la publication du temps occupé, la propriété "ORGANIZER" indique l'utilisateur de calendrier associé au temps occupé publié ; les propriétés "DTSTART" et "DTEND" définissent un créneau horaire inclusif englobant l'information de temps occupé ; la propriété "FREEBUSY" définit l'information de temps occupé ; la propriété "DTSTAMP" indique la date et l'heure où l'objet iCalendar a été créé.

Le composant "VFREEBUSY" ne peut pas être imbriqué dans un autre composant de calendrier. Plusieurs composants de calendrier "VFREEBUSY" peuvent être définis dans un objet iCalendar. Cela permet le regroupement des informations de temps libre ou occupé en ensembles logiques, tel que des ensembles mensuels d'informations de temps occupé.

Le composant de calendrier "VFREEBUSY" s'utilise dans les méthodes de l'objet iCalendar impliquant des demandes de temps libre, des demandes de temps occupé, des demandes de temps libre ou occupé et les réponses qui y sont associées.

L'information de temps libre ou occupé est représentée à l'aide de la propriété "FREEBUSY". Cette propriété fournit une représentation succinte de périodes de temps. On peut définir une ou plusieurs propriétés "FREEBUSY" dans le composant de calendrier "VFREEBUSY".

Lorqu'elles sont présentes dans un composant de calendrier "VFREEBUSY", les propriétés "DTSTART" et "DTEND" DEVRAIENT être définies avant les propriétés "FREEBUSY". Dans une demande de temps libre, ces propriétés peuvent être utilisées en combinaison avec la propriété "DURATION" pour représenter une demande de durée de temps libre dans un créneau horaire défini.

Les propriétés de récurrence ("RRULE", "EXRULE", "RDATE", "EXDATE") ne sont pas permises dans un composant de calendrier "VFREEBUSY". Tous les événements récurrents sont résolus dans leurs périodes de temps libre individuelles en utilisant la propriété "FREEBUSY".

Exemples :

Voici l'exemple d'un composant de calendrier "VFREEBUSY" utilisé pour demander une information de temps libre ou occupé :

     BEGIN:VFREEBUSY
     ORGANIZER:MAILTO:jane_doe@host1.com
     ATTENDEE:MAILTO:john_public@host2.com
     DTSTART:19971015T050000Z
     DTEND:19971016T050000Z
     DTSTAMP:19970901T083000Z
     END:VFREEBUSY

Voici l'exemple d'un composant de calendrier "VFREEBUSY" utilisé pour répondre à une demande d'information de temps occupé :

     BEGIN:VFREEBUSY
     ORGANIZER:MAILTO:jane_doe@host1.com
     ATTENDEE:MAILTO:john_public@host2.com
     DTSTAMP:19970901T100000Z
     FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M,
      19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
     URL:http://host2.com/pub/busy/jpublic-01.ifb
     COMMENT:This iCalendar file contains busy time information for
       the next three months.
     END:VFREEBUSY

Voici l'exemple d'un composant de calendrier "VFREEBUSY" utilisé pour publier une information de temps occupé :

     BEGIN:VFREEBUSY
     ORGANIZER: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
4.6.5. Composant de fuseau horaire
Nom du composant :

VTIMEZONE

But :

Fournir un regroupement de propriétés de composant définissant un fuseau horaire.

Définition formelle :

Le composant de calendrier "VTIMEZONE" est défini par la notation suivante :

     timezonec  = "BEGIN" ":" "VTIMEZONE" CRLF

                  2*(

                  ; la propriété 'tzid' est OBLIGATOIRE mais NE DOIT PAS
                  ;  apparaître plus d'une fois

                tzid /

                  ; les propriétés 'last-mod' et 'tzurl' sont
                  ;  OPTIONNELLES mais NE DOIVENT PAS apparaître
                  ;  plus d'une fois

                last-mod / tzurl /

                  ; l'une ou l'autre des propriétés 'standardc' ou
                  ;  'daylightc' DOIT apparaître et PEUT apparaître
                  ;  plus d'une fois

                standardc / daylightc /

                  ; la propriété suivante est OPTIONNELLE et PEUT
                  ;  apparaître plus d'une fois

                  x-prop

                  )

                  "END" ":" "VTIMEZONE" CRLF

     standardc  = "BEGIN" ":" "STANDARD" CRLF

                  tzprop

                  "END" ":" "STANDARD" CRLF

     daylightc  = "BEGIN" ":" "DAYLIGHT" CRLF

                  tzprop

                  "END" ":" "DAYLIGHT" CRLF

     tzprop     = 3*(

                  ; les propriétés suivantes sont OBLIGATOIRES, mais
                  ;  NE DOIVENT PAS apparaître plus d'une fois

                dtstart / tzoffsetto / tzoffsetfrom /

                  ; les propriétés suivantes sont OPTIONNELLES
                  ;  et PEUVENT apparaître plusieurs fois

                comment / rdate / rrule / tzname / x-prop

                )
Description :

Un fuseau horaire est défini sans équivoque par l'ensemble des règles de calcul du temps déterminées par l'organe de régulation pour une aire géographique donnée. Ces règles décrivent au minimum le décalage de base du fuseau horaire par rapport au temps universel coordonné UTC, souvent appelé décalage au temps standard. Beaucoup de lieux ont un temps standard avancé ou reculé d'une heure pour tenir compte des changements saisonniers de la durée du jour, souvent appelé heure d'été (Daylight Saving Time). Le temps standard de certains lieux s'ajuste par fractions d'heure. Le temps standard est aussi appelé heure d'hiver. Dans certains pays, on connaît également l'heure d'été sous les appellations d'heure avancée ou de temps légal. Le tableau suivant montre les changements des règles de fuseau horaire à New York en commençant en 1967. Chaque ligne représente une description ou règle d'observance (observance rule) particulière.

     Règle d'observance effective

     Date       (Date/Heure)                 Décalage  Abréviation

     1967-*     dern. dim. d'oct., 02:00     -0500      EST

     1967-1973  dern. dim. d'avr., 02:00     -0400      EDT

     1974-1974  6 janvier,         02:00     -0400      EDT

     1975-1975  23 février,        02:00     -0400      EDT

     1976-1986  dern. dim. d'avr., 02:00     -0400      EDT

     1987-*     prem. dim. d'avr., 02:00     -0400      EDT

Remarque : La définition d'un registre global des fuseaux horaires n'est pas abordée par ce document et est laissée pour des études futures. Toutefois, les développeurs se référeront peut-être utilement à la base de données de fuseaux horaires Olson [TZ]. Il s'agit d'une collection d'informations de fuseaux horaires dans le domaine public, qui est entretenue actuellement par des volontaires sur Internet et utilisée dans plusieurs systèmes d'exploitation. Cette base de données contient les informations de fuseaux horaires courantes et historiques d'un grand nombre de lieux dans le monde ; elle fournit un identificateur de fuseau horaire pour chaque ensemble de règles de fuseau horaire unique en vigueur depuis 1970, avec des données historiques remontant à l'introduction de l'heure standard.

L'interopérabilité entre applications de gestion d'agenda et de planification, particulièrement pour les événements récurrents, les tâches ou les écritures de journal, dépend de l'aptitude à capturer et communiquer les informations de date et d'heure dans un format univoque. L'indication du fuseau horaire courant fait partie intégrante de ce comportement.

Si présent, le composant de calendrier "VTIMEZONE" définit l'ensemble des observances (ou règles) d'heure standard et d'heure d'été d'un fuseau horaire particulier pour un intervalle de temps donné. Le composant "VTIMEZONE" ne peut pas être imbriqué dans d'autres composants de calendrier. Plusieurs composants de calendrier "VTIMEZONE" peuvent exister dans un objet iCalendar. Auquel cas, chaque composant "VTIMEZONE" DOIT représenter une définition de fuseau horaire unique. Cela est nécessaire pour certaines classes d'événements, tels que les vols aériens, qui commencent dans un fuseau horaire et se terminent dans un autre.

Le composant de calendrier "VTIMEZONE" DOIT être présent si l'objet iCalendar contient une règle RRULE générant des dates de part et d'autre d'un glissement de fuseau horaire (par exemple, à la fois en heure standard et en heure d'été), sauf si l'objet iCalendar est destiné à communiquer une heure flottante (cf. la section 4.1.10.11 pour la signification exacte d'une heure flottante). Le composant peut être présent même si l'objet iCalendar ne contient pas une telle règle RRULE. En outre, en présence d'une règle RRULE, il DOIT y avoir une information de fuseau horaire valide pour toutes les instances de récurrence.

Le composant de calendrier "VTIMEZONE" DOIT inclure la propriété "TZID" et au moins une définition de composant "STANDARD" ou "DAYLIGHT". Le composant "STANDARD" ou "DAYLIGHT" DOIT inclure les propriétés "DTSTART", "TZOFFSETFROM" et "TZOFFSETTO".

On DOIT définir un composant de calendrier "VTIMEZONE" individuel pour chaque valeur de paramètre "TZID" unique indiquée dans l'objet iCalendar.

Chaque composant de calendrier "VTIMEZONE" est constitué d'une collection d'un ou de plusieurs sous-composants décrivant la règle d'une observance particuière (soit une observance d'heure standard, soit d'heure d'été). Le sous-composant "STANDARD" est constitué d'une collection de propriétés décrivant une heure standard. Le sous-composant "DAYLIGHT" est constitué d'une collection de propriétés décrivant une heure d'été. En général, cette collection de propriétés se compose :

Pour un fuseau horaire donné, il peut y avoir plusieurs définitions uniques des observanves sur une période de temps. Chaque observance est décrite à l'aide d'un sous-composant "STANDARD" ou bien "DAYLIGHT". La collection de ces sous-composants sert à décrire le fuseau horaire d'une période de temps donnée. On trouve le décalage à appliquer à chaque instant donné en repérant l'observance ayant la dernière date et heure de début avant l'heure en question et en utilisant la valeur de décalage de cette observance.

Les propriétés de niveau supérieure dans un composant de calendrier "VTIMEZONE" sont les suivantes :

La collection de propriétés utilisées pour définir les sous-composants "STANDARD" et "DAYLIGHT" comprend les suivantes :

Exemples :

Voici des exemples d'utilisation du composant de calendrier "VTIMEZONE".

Cet exemple montre une information de fuseau horaire pour l'est des États-Unis utilisant la propriété "RDATE". Notez que cela n'est valable que pour un événement récurrent dans la période allant du 6 avril 1997 à 03:00:00 EDT (c'est-à-dire la toute première date et heure de transition) jusqu'au 7 avril 1998 à 02:00:00 EST (c'est-à-dire, la toute dernière date et heure valide pour le fuseau horaire EST dans ce scénario). Ainsi, cela peut concerner un événement récurrent qui se produit chaque vendredi de 08:00 à 09:00, commençant le 1er juin 1997 et se terminant le 31 décembre 1997.

     BEGIN:VTIMEZONE
     TZID:US-Eastern
     LAST-MODIFIED:19870101T000000Z
     BEGIN:STANDARD
     DTSTART:19971026T020000
     RDATE:19971026T020000
     TZOFFSETFROM:-0400
     TZOFFSETTO:-0500
     TZNAME:EST
     END:STANDARD
     BEGIN:DAYLIGHT
     DTSTART:19971026T020000
     RDATE:19970406T020000
     TZOFFSETFROM:-0500
     TZOFFSETTO:-0400
     TZNAME:EDT
     END:DAYLIGHT
     END:VTIMEZONE

Cet exemple simple montre les règles de fuseau horaire courantes pour l'est des États-Unis en utilisant le motif de récurrence d'une propriété "RRULE". Notez que les règles d'heure standard ou d'heure d'été n'ont pas de date de fin effective. Cette information serait valide pour un événement récurrent commençant aujourd'hui et continuant indéfiniment.

     BEGIN:VTIMEZONE
     TZID:US-Eastern
     LAST-MODIFIED:19870101T000000Z
     TZURL:http://zones.stds_r_us.net/tz/US-Eastern
     BEGIN:STANDARD
     DTSTART:19671029T020000
     RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
     TZOFFSETFROM:-0400
     TZOFFSETTO:-0500
     TZNAME:EST
     END:STANDARD
     BEGIN:DAYLIGHT
     DTSTART:19870405T020000
     RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
     TZOFFSETFROM:-0500
     TZOFFSETTO:-0400
     TZNAME:EDT
     END:DAYLIGHT
     END:VTIMEZONE

Cet exemple montre un ensemble de règles fictif pour l'est des États-Unis, où la règle d'heure d'été comporte une date de fin effective (c'est-à-dire que l'heure d'été n'est plus observée après cette date).

     BEGIN:VTIMEZONE
     TZID:US--Fictitious-Eastern
     LAST-MODIFIED:19870101T000000Z
     BEGIN:STANDARD
     DTSTART:19671029T020000
     RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
     TZOFFSETFROM:-0400
     TZOFFSETTO:-0500
     TZNAME:EST
     END:STANDARD
     BEGIN:DAYLIGHT
     DTSTART:19870405T020000
     RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
     TZOFFSETFROM:-0500
     TZOFFSETTO:-0400
     TZNAME:EDT
     END:DAYLIGHT
     END:VTIMEZONE

Cet exemple montre un ensemble de règles fictif pour l'est des États-Unis, où la première règle d'heure d'été a une date de fin effective. Une deuxième règle d'heure d'été s'applique là où la première s'arrête.

     BEGIN:VTIMEZONE
     TZID:US--Fictitious-Eastern
     LAST-MODIFIED:19870101T000000Z
     BEGIN:STANDARD
     DTSTART:19671029T020000
     RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
     TZOFFSETFROM:-0400
     TZOFFSETTO:-0500
     TZNAME:EST
     END:STANDARD
     BEGIN:DAYLIGHT
     DTSTART:19870405T020000
     RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;UNTIL=19980404T070000Z
     TZOFFSETFROM:-0500
     TZOFFSETTO:-0400
     TZNAME:EDT
     END:DAYLIGHT
     BEGIN:DAYLIGHT
     DTSTART:19990424T020000
     RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
     TZOFFSETFROM:-0500
     TZOFFSETTO:-0400
     TZNAME:EDT
     END:DAYLIGHT
     END:VTIMEZONE
4.6.6. Composant d'alerte
Nom du composant :

VALARM

But :

Fournir un regroupement des propriétés de composant définissant une alerte.

Définition formelle :

Le composant de calendrier "VALARM" est défini par la notation suivante :

          alarmc     = "BEGIN" ":" "VALARM" CRLF
                       (audioprop / dispprop / emailprop / procprop)
                       "END" ":" "VALARM" CRLF

     audioprop  = 2*(

                ; les propriétés 'action' et 'trigger' sont OBLIGATOIRES
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                action / trigger /

                ; les propriétés 'duration' et 'repeat' sont
                ;  OPTIONNELLES et NE DOIVENT PAS apparaître plus d'une
                ;  fois chacune, mais si l'une est présente alors
                ;  l'autre DOIT l'être aussi

                duration / repeat /

                ; la propriété suivante est OPTIONNELLE mais NE DOIT PAS
                ;  apparaître plus d'une fois

                attach /

                ; la propriété suivante est OPTIONNELLE et PEUT
                ;  apparaître plus d'une fois

                x-prop

                )

     dispprop   = 3*(

                ; les propriétés suivantes sont toutes
                ;  OBLIGATOIRES, mais NE DOIVENT PAS apparaître
                ;  plus d'une fois

                action / description / trigger /

                ; les propriétés 'duration' et 'repeat' sont
                ;  OPTIONNELLES et NE DOIVENT PAS apparaître plus d'une
                ;  fois chacune, mais si l'une est présente alors
                ;  l'autre DOIT l'être aussi

                duration / repeat /

                ; la propriété suivante est OPTIONNELLE et PEUT
                ;  apparaître plus d'une fois

                *x-prop

                )

     emailprop  = 5*(

                ; les propriétés suivantes sont toutes
                ;  OBLIGATOIRES, mais NE DOIVENT PAS apparaître
                ;  plus d'une fois

                action / description / trigger / summary

                ; la propriété suivante et OBLIGATOIRE et PEUT
                ;  apparaître plus d'une fois

                attendee /

                ; les propriétés 'duration' et 'repeat' sont
                ;  OPTIONNELLES et NE DOIVENT PAS apparaître plus d'une
                ;  fois chacune, mais si l'une est présente alors
                ;  l'autre DOIT l'être aussi

                duration / repeat /

                ; les propriétés suivantes sont OPTIONNELLES
                ;  et PEUVENT apparaître plusieurs fois

                attach / x-prop

                )

     procprop   = 3*(

                ; les propriétés suivantes sont toutes
                ;  OBLIGATOIRES, mais NE DOIVENT PAS apparaître
                ;  plus d'une fois

                action / attach / trigger /

                ; les propriétés 'duration' et 'repeat' sont
                ;  OPTIONNELLES et NE DOIVENT PAS apparaître plus d'une
                ;  fois chacune, mais si l'une est présente alors
                ;  l'autre DOIT l'être aussi

                duration / repeat /

                ; la propriété 'description' est OPTIONNELLE
                ;  et NE DOIT PAS apparaître plus d'une fois

                description /

                ; la propriété suivante est OPTIONNELLE et PEUT
                ;  apparaître plus d'une fois

                x-prop

                )
Description :

Un composant de calendrier "VALARM" est un regroupement de propriétés de composant constituant le rappel ou l'alerte d'un événement ou d'une tâche. Par exemple, on peut l'utiliser pour définir le rappel d'un événement en attente ou d'une tâche en retard.

Le composant de calendrier "VALARM" DOIT inclure les propriétés "ACTION" et "TRIGGER". La propriété "ACTION" contraint encore le composant de calendrier des manières suivantes :

Le composant "VALARM" ne DOIT apparaître qu'au sein de composants de calendrier "VEVENT" ou "VTODO". Les composants de calendrier "VALARM" ne peuvent pas s'imbriquer. On peut définir plusieurs composants de calendrier "VALARM" indépendants pour un seul composant de calendrier "VEVENT" ou "VTODO".

La propriété "TRIGGER" indique quand déclencher l'alerte. Elle définit une durée avant le début d'un événement ou d'une tâche. Le seuil de déclenchement ("TRIGGER") peut être défini explicitement comme étant relatif au début ("START") ou à la fin ("END") de l'événement ou de la tâche avec le paramètre RELATED de la propriété "TRIGGER". Par ailleurs, on peut changer le type de valeur de la propriété "TRIGGER" pour une valeur absolue de date et heure du jour.

Au cas où l'alerte est réglée pour se déclencher au début ("START") d'un événement ou d'une tâche, la propriété "DTSTART" DOIT être présente dans l'événement (ou la tâche) associé. Pour une alerte dans dans un composant de calendrier "VEVENT" réglée pour se déclencher à la fin ("END") de l'événement, la propriété "DTEND" DOIT être présente, ou sinon les propriétés "DTSTART" et "DURATION" DOIVENT toutes deux l'être. Pour une alerte dans un composant de calendrier "VTODO" réglée pour se déclencher à la fin ("END") de la tâche, la propriété "DUE" DOIT être présente, ou sinon les propriétés "DTSTART" et "DURATION" DOIVENT toutes deux l'être.

On peut définir l'alerte pour se déclencher à répétition. La définition d'une alerte avec déclenchement à répétition DOIT inclure les deux propriétés "DURATION" et "REPEAT". La propriété "DURATION" indique le délai après lequel l'alarme se répètera. La propriété "REPEAT" indique le nombre de répétitions supplémentaires où l'alerte se déclenchera. Ce compte de répétition s'ajoute au déclenchement initial de l'alerte. Ces propriétés DOIVENT toutes deux être présentes pour définir une alerte à répétition. Si l'une manque, alors l'alerte ne se répètera pas au-delà du déclenchement initial.

La propriété "ACTION" est utilisée au sein du composant de calendrier "VALARM" pour définir le type d'action invoqué au déclenchement de l'alerte. Les propriétés du composant "VALARM" fournissent assez d'informations pour invoquer une action spécifique. L'interprétation de l'alerte de la façon indiquée incombe généralement à l'agent utilisateur de calendrier, ou CUA (Calendar User Agent). Une propriété "ACTION" de valeur AUDIO définit une alerte qui prévient l'utilisateur en lisant un son ; une valeur DISPLAY définit une alerte qui affiche un message textuel à l'utilisateur ; une valeur EMAIL définit une alerte qui envoie un message électronique à une ou plusieurs adresses ; et la valeur PROCEDURE définit une alerte qui exécute une procédure. La propriété "ACTION" DOIT indiquer une seule de ces valeurs uniquement :

Exemples :

Voici l'exemple d'un composant de calendrier "VALARM" définissant une alerte sonore qui jouera à une heure précise et se répètera 4 fois ensuite à 15 minutes d'intervalle :

     BEGIN:VALARM
     TRIGGER;VALUE=DATE-TIME:19970317T133000Z
     REPEAT:4
     DURATION:PT15M
     ACTION:AUDIO
     ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud
     END:VALARM

Voici l'exemple d'un composant de calendrier "VALARM" définissant une alerte visuelle qui se déclenchera 30 minutes avant le début prévu de l'événement ou la date et heure d'échéance de la tâche qui lui est associée, et celle-ci se répètera 2 fois ensuite à 15 minutes d'intervalle :

     BEGIN:VALARM
     TRIGGER:-PT30M
     REPEAT:2
     DURATION:PT15M
     ACTION:DISPLAY
     DESCRIPTION:Breakfast meeting with executive\n
      team at 8:30 AM EST.
     END:VALARM

Voici l'exemple d'un composant de calendrier "VALARM" définissant une alerte électronique qui se déclenchera 2 jours avant la date/heure d'échéance d'une tâche qui lui est associée. Elle ne se répète pas. Le message électronique comporte un sujet, un corps et un lien vers un fichier :

     BEGIN:VALARM
     TRIGGER:-P2D
     ACTION:EMAIL
     ATTENDEE:MAILTO:john_doe@host.com
     SUMMARY:*** REMINDER: SEND AGENDA FOR WEEKLY STAFF MEETING ***
     DESCRIPTION:A draft agenda needs to be sent out to the attendees
       to the weekly managers meeting (MGR-LIST). Attached is a
       pointer the document template for the agenda file.
     ATTACH;FMTTYPE=application/binary:http://host.com/templates/agen
      da.doc
     END:VALARM

Voici l'exemple d'un composant de calendrier "VALARM" définissant une alerte procédurale qui se déclenchera à une date et heure précise et se répètera 23 fois ensuite à une heure d'intervalle. L'alerte invoquera un fichier de procédure :

     BEGIN:VALARM
     TRIGGER;VALUE=DATE-TIME:19980101T050000Z
     REPEAT:23
     DURATION:PT1H
     ACTION:PROCEDURE
     ATTACH;FMTTYPE=application/binary:ftp://host.com/novo-
      procs/felizano.exe
     END:VALARM

4.7. Propriétés de calendrier

Les propriétés de calendrier sont des attributs qui s'appliquent à l'objet iCalendar dans son ensemble. Ces propriétés n'apparaissent pas dans les composants de calendrier. On DEVRAIT les définir après la propriété "BEGIN:VCALENDAR" et avant tout composant de calendrier.

4.7.1. Système de calendrier
Nom de la propriété :

CALSCALE

But :

Cette propriété définit le système de calendrier utilisé pour les informations de calendrier contenues dans l'objet iCalendar.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans un objet iCalendar. La valeur par défaut est GREGORIAN.

Description :

Ce mémoire se fonde sur le système de calendrier grégorien. Le calendrier grégorien est supposé si cette propriété n'est pas définie dans l'objet iCalendar. On espère que d'autres systèmes de calendrier seront définis ailleurs ou dans des versions futures de ce mémoire.

Définition de format :

La propriété est définie par la notation suivante :

     calscale   = "CALSCALE" calparam ":" calvalue CRLF

     calparam   = *(";" xparam)

     calvalue   = "GREGORIAN" / iana-token

Exemple :

Voici un exemple de cette propriété :

     CALSCALE:GREGORIAN
4.7.2. Méthode
Nom de la propriété :

METHOD

But :

Cette propriété définit la méthode d'objet iCalendar associée à l'objet de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans un objet iCalendar.

Description :

Lorsqu'elle est utilisée dans une entité de message MIME, la valeur de cette propriété DOIT être identique à la valeur du paramètre "method" de l'en-tête Content-Type. Cette propriété ne peut apparaître qu'une seule fois dans un objet iCalendar. Si l'un entre la propriété "METHOD" ou le paramètre "method" de Content-Type est défini, alors l'autre DOIT l'être aussi.

Cette spécification ne définit aucune méthode. C'est l'objet d'autres spécifications, telle que le protocole iTIP (iCalendar Transport-independent Interoperability Protocol) défini par [ITIP].

Si cette propriété est absente de l'objet iCalendar, alors on NE DOIT PAS présumer de transaction de planification. Auquel cas, l'objet iCalendar sert simplement à transporter l'instantané d'une information de calendrier, sans intention de communiquer une sémantique de planification.

Définition de format :

La propriété est définie par la notation suivante :

     method     = "METHOD" metparam ":" metvalue CRLF

     metparam   = *(";" xparam)

     metvalue   = iana-token

Exemple :

Voici un exemple hypothétique de cette propriété, pour indiquer le fait que l'objet iCalendar est une demande de réunion :

     METHOD:REQUEST
4.7.3. Identificateur de produit
Nom de la propriété :

PRODID

But :

Cette propriété définit l'identificateur du produit ayant servi à créer l'objet iCalendar.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété ne DOIT apparaître qu'une seule fois dans un objet iCalendar.

Description :

L'éditeur (vendor) de la mise en œuvre DEVRAIT s'assurer de l'unicité globale de l'identificateur, en utilisant une technique telle que la valeur FPI (Formal Public Identifier), comme définie dans le [ISO 9070].

Cette propriété NE DEVRAIT PAS être utilisée pour altérer l'interprétation d'un objet iCalendar au-delà de la sémantique définie dans ce mémoire. Par exemple, il ne faut pas l'utiliser pour promouvoir la compréhension de propriétés non standards.

Définition de format :

La propriété est définie par la notation suivante :

     prodid     = "PRODID" pidparam ":" pidvalue CRLF

     pidparam   = *(";" xparam)

     pidvalue   = text
     
     ; une chaîne qui décrit le produit et sa version, et qui est
     ;  assurée d'être unique.

Exemple :

Voici un exemple de cette propriété. Il n'est pas signifié ici que l'anglais est la langue par défaut.

     PRODID:-//ABC Corporation//NONSGML My Product//EN
4.7.4. Version
Nom de la propriété :

VERSION

But :

Cette propriété définit l'identificateur correspondant au numéro de version le plus élevé, ou l'intervalle minimum et maximum, de la spécification iCalendar nécessaire pour interpréter l'objet iCalendar.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété DOIT être définie par un objet iCalendar mais DOIT l'être une seule fois.

Description :

La valeur "2.0" correspond à ce mémoire.

Définition de format :

La propriété est définie par la notation suivante :

     version    = "VERSION" verparam ":" vervalue CRLF

     verparam   = *(";" xparam)

     vervalue   = "2.0"         ; ce mémoire
                / maxver
                / (minver ";" maxver)

     minver     = <Un identificateur de version iCalendar enregistré
                   auprès de l'IANA>
     ; la version iCalendar minimum permettant d'interpréter
     ;  l'objet iCalendar

     maxver     = <Un identificateur de version iCalendar enregistré
                   auprès de l'IANA>
     ; la version iCalendar maximum permettant d'interpréter
     ;  l'objet iCalendar

Exemple :

Voici un exemple de cette propriété :

     VERSION:2.0

4.8. Propriétés des composants

Les propriétés suivantes peuvent apparaître dans les composants de calendrier, comme indiqué par chaque définition de propriété de composant.

4.8.1. Propriétés de composant descriptives

Les propriétés suivantes indiquent des informations descriptives à propos de composants de calendrier.

4.8.1.1. Fichier joint
Nom de la propriété :

ATTACH

But :

La propriété permet d'associer un objet de document à un composant de calendrier.

Type de valeur :

La valeur par défaut de cette propriété est de type URI. La valeur peut également prendre le type BINARY pour indiquer un contenu binaire incorporé.

Paramètres de propriété :

Des paramètres de propriété non standard, de codage incorporé, de type de format et de type de données de valeur peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL" et "VALARM".

Description :

La propriété peut être définie au sein des composants "VEVENT", "VTODO", "VJOURNAL" ou "VALARM". Elle peut apparaître à plusieurs reprises dans un objet iCalendar.

Définition de format :

La propriété est définie par la notation suivante :

     attach     = "ATTACH" attparam ":" uri  CRLF

     attach     =/ "ATTACH" attparam ";" "ENCODING" "=" "BASE64"
                   ";" "VALUE" "=" "BINARY" ":" binary

     attparam   = *(

                ; le paramètre suivant est OPTIONNEL,
                ;  mais NE DOIT PAS apparaître plus d'une fois

                (";" fmttypeparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemple :

Voici des exemples de cette propriété :

     ATTACH:CID:jsmith.part3.960817T083000.xyzMail@host1.com

     ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
      reports/r-960812.ps
4.8.1.2. Catégories
Nom de la propriété :

CATEGORIES

But :

Cette propriété définit les catégories d'un composant de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL".

Description :

Cette propriété est utilisée pour indiquer les catégories ou les sous-types du composant de calendrier. Les catégories sont utiles pour rechercher un composant de calendrier de type et de catégorie particuliers. Dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL", on peut définir plusieurs catégories dans une liste de catégories séparées par des caractères VIRGULE (code décimal 44 US-ASCII).

Définition de format :

La propriété est définie par la notation suivante :

     categories = "CATEGORIES" catparam ":" text *("," text)
                  CRLF

     catparam   = *(

                ; le paramètre suivant est OPTIONNEL,
                ;  mais NE DOIT PAS apparaître plus d'une fois

                (";" languageparam ) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemple :

Voici des exemples de cette propriété :

     CATEGORIES:APPOINTMENT,EDUCATION

     CATEGORIES:MEETING
4.8.1.3. Classification
Nom de la propriété :

CLASS

But :

Cette propriété définit la classification d'accès d'un composant de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être défini sur cette propriété.

Conformité :

Cette propriété peut apparaître une seule fois dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL".

Description :

Une classification d'accès ne représente qu'un seul élément du système de sécurité générale dans une application de calendrier. Elle fournit une méthode pour saisir le niveau d'accès consenti par le propriétaire du calendrier à l'information dans une entrée de calendrier individuelle. La classification d'accès d'un composant iCalendar individuel est utile comparée aux autres éléments de sécurité d'un système de calendrier (par exemple, authentification de l'utilisateur de calendrier, autorisation, droits d'accès, rôle d'accès, etc.). Ce mémoire seul ne peut donc pas définir complètement la sémantique des classifications d'accès individuelles. De plus, en raison de la nature « aveugle » de la plupart des processus d'échange utilisant ce mémoire, ces classifications d'accès ne peuvent pas servir de déclaration de mise en application pour le système recevant un objet iCalendar. Elles fournissent plutôt une méthode pour saisir l'intention du propriétaire du calendrier pour l'accès au composant de calendrier.

Définition de format :

La propriété est définie par la notation suivante :

     class      = "CLASS" classparam ":" classvalue CRLF

     classparam = *(";" xparam)

     classvalue = "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token
                / x-name
     ; la valeur par défaut est PUBLIC

Exemple :

Voici un exemple de cette propriété :

     CLASS:PUBLIC
4.8.1.4. Commentaire
Nom de la propriété :

COMMENT

But :

Cette propriété indique des informations non traitées destinées à informer l'utilisateur de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard, de texte de remplacement et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL", "VTIMEZONE" et "VFREEBUSY".

Description :

La propriété peut apparaître plusieurs fois.

Définition de format :

La propriété est définie par la notation suivante :

     comment    = "COMMENT" commparam ":" text CRLF

     commparam  = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" altrepparam) / (";" languageparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemple :

Voici un exemple de cette propriété :

     COMMENT:The meeting really needs to include both ourselves
       and the customer. We can't hold this  meeting without them.
       As a matter of fact\, the venue for the meeting ought to be at
       their site. - - John
4.8.1.5. Description
Nom de la propriété :

DESCRIPTION

But :

Cette propriété fournit une description plus complète du composant de calendrier que ne le permet la propriété "SUMMARY".

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard, de texte de remplacement et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL" et "VALARM". La propriété peut seulement apparaître plusieurs fois dans un composant de calendrier "VJOURNAL".

Description :

Cette propriété est utilisée dans les composants "VEVENT" et "VTODO" pour saisir une longue description textuelle associée à l'activité.

Dans les composants de calendrier "VJOURNAL", cette propriété sert à saisir un ou plusieurs textes d'écriture de journal.

Dans les composants de calendrier "VALARM", cette propriété sert à saisir le texte affiché pour une alerte de type DISPLAY, le corps du message pour une alerte de type EMAIL et la chaîne argument d'une alerte de type PROCEDURE.

Définition de format :

La propriété est définie par la notation suivante :

     description        = "DESCRIPTION" descparam ":" text CRLF

     descparam  = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" altrepparam) / (";" languageparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemples :

Voici un exemple de cette propriété avec des sauts de ligne formatés dans la valeur de la propriété :

     DESCRIPTION:Meeting to provide technical review for "Phoenix"
       design.\n Happy Face Conference Room. Phoenix design team
       MUST attend this meeting.\n RSVP to team leader.

Voici un exemple de la propriété avec un pliage des lignes longues :

     DESCRIPTION:Last draft of the new novel is to be completed
       for the editor's proof today.
4.8.1.6. Position géographique
Nom de la propriété :

GEO

But :

Cette propriété indique des informations liées à la position globale de l'activité définie par un composant de calendrier.

Type de valeur :

FLOAT. La valeur DOIT se composer de deux valeurs de type FLOAT séparées par un caractère POINT-VIRGULE.

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT" et "VTODO".

Description :

La valeur de propriété indique une latitude et une longitude, dans cet ordre (c'est-à-dire, un ordre "LAT LON"). La longitude représente la position à l'est ou à l'ouest du méridien origine par un nombre réel positif ou négatif respectivement. Les valeurs de longitude et de latitude PEUVENT être définies jusqu'à 6 décimales, permettant une précision à un mètre près de la position géographique. Les applications réceptrices DOIVENT accepter les valeurs à cette précision et PEUVENT tronquer les valeurs de précision supérieure.

Les valeurs de latitude et de longitude sont exprimées en fractions décimales de degrés. Les degrés de latitude entiers sont représentés par un nombre décimal de deux chiffres de 0 à 90. Les degrés de longitude entiers sont représentés un nombre décimal de 0 à 180. S'il y a une fraction décimale de degré, on la sépare du nombre entier des degrés par un point décimal.

Les latitudes au nord de l'équateur sont caractérisées par un SIGNE PLUS (+), ou l'absence d'un SIGNE MOINS (-), précédant les chiffres des degrés. Les latitudes au sud de l'équateur sont caractérisées par un SIGNE MOINS (-) précédant les chiffres des degrés. Un point sur l'équateur sera affecté à l'hémisphère nord.

Les longitudes à l'est du méridien origine sont caractérisées par un SIGNE PLUS (+), ou l'absence d'un SIGNE MOINS (-), précédant les chiffres des degrés. Les longitudes à l'ouest du méridien origine sont caractérisées par un SIGNE MOINS (-) précédant les chiffres des degrés. Un point sur le méridien origine sera affecté à l'hémisphère est. Un point sur le méridien 180 sera affecté à l'hémisphère ouest. Cette dernière convention admet une exception : dans la condition particulière où l'on décrit une bande de latitude autour de la terre, on affectera la valeur +180 degrés à l'élément de coordonnée lié à l'est.

Toute adresse spatiale avec une latitude de +90 (90) ou -90 degrés indiquera respectivement une position au pôle nord ou au pôle sud. Le composant de longitude peut avoir n'importe quelle valeur légale.

À l'exception de la condition particulière précédente, il s'agit de la forme définie dans le document Department of Commerce, 1986, Representation of geographic point locations for information interchange (Federal Information Processing Standard 70-1): Washington, Department of Commerce, National Institute of Standards and Technology.

La formule simplifiée de conversion des degrés-minutes-secondes en degrés décimaux est la suivante :

     decimal = degrees + minutes/60 + seconds/3600
Définition de format :

La propriété est définie par la notation suivante :

     geo        = "GEO" geoparam ":" geovalue CRLF

     geoparam   = *(";" xparam)

     geovalue   = float ";" float
     ; les composants latitude et longitude

Exemple :

Voici un exemple de cette propriété :

     GEO:37.386013;-122.082932
4.8.1.7. Lieu
Nom de la propriété :

LOCATION

But :

La propriété définit le lieu prévu pour l'activité définie par un composant de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard, de texte de remplacement et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants "VEVENT" et "VTODO".

Description :

Des lieux spécifiques telles que des salles de conférence ou de réunion peuvent être définis avec cette propriété. On peut définir une autre représentation qui soit une adresse URI pointant vers une information de répertoire avec une définition plus structurée du lieu. Par exemple, l'autre représentation peut définir une adresse URI de type LDAP (Lightweight Directory Access Protocol) pointant vers une entrée de serveur LDAP ou bien une adresse URI de type CID (Content-ID) pointant vers une partie de corps MIME contenant une carte de visite vCard [RFC 2426] du lieu.

Définition de format :

La propriété est définie par la notation suivante :

     location   = "LOCATION locparam ":" text CRLF

     locparam   = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" altrepparam) / (";" languageparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemple :

Voici des exemples de cette propriété :

     LOCATION:Conference Room - F123, Bldg. 002

     LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf":
      Conference Room - F123\, Bldg. 002
4.8.1.8. Pourcentage de réalisation
Nom de la propriété :

PERCENT-COMPLETE

But :

Cette propriété est utilisée par un adhérent ou un délégataire d'une tâche pour communiquer le pourcentage de réalisation d'une tâche au gestionnaire (Organizer) .

Type de valeur :

INTEGER

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VTODO".

Description :

La valeur de propriété est un entier positif entre 0 et 100. Une valeur de "0" indique que la tâche n'est pas encore commencée, et une valeur de "100" que la tâche est terminée. Les valeurs entières intermédiaires indiquent le pourcentage réalisé.

Lorsqu'une tâche est confiée à plusieurs personnes, la valeur de propriété indique le pourcentage réalisé de la portion de la tâche confiée à l'adhérent ou au délégataire. Par exemple, lorsqu'une tâche est affectée à deux personnes "A" et "B". Une réponse de "A" avec un pourcentage réalisé de "70" indique que "A" a effectué 70 % de la tâche qui lui est dévolue, et une réponse de "B" avec un pourcentage réalisé de "50" indique que "B" a effectué 50 % de la tâche qui lui est dévolue.

Définition de format :

La propriété est définie par la notation suivante :

     percent = "PERCENT-COMPLETE" pctparam ":" integer CRLF

     pctparam   = *(";" xparam)

Exemple :

Voici un exemple de cette propriété montrant une réalisation de 39 % :

     PERCENT-COMPLETE:39
4.8.1.9. Priorité
Nom de la propriété :

PRIORITY

But :

La propriété définit la priorité relative d'un composant de calendrier.

Type de valeur :

INTEGER

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT" et "VTODO".

Description :

La priorité est indiquée par un entier de 0 à 9. Une valeur de "0" indique une propriété non définie. Une valeur de "1" indique la priorité la plus élevée, une valeur de "2" la priorité suivante et les valeurs suivantes une priorité décroissante. Une valeur de "9" représente la priorité la plus basse.

Le schéma de priorité sur trois niveaux "HIGH", "MEDIUM" et "LOW" d'un agent utilisateur de calendrier (CUA) est converti dans cette propriété de sorte qu'à une valeur de la propriété entre "1" et "4" correspond une priorité élevée ("HIGH"), à une valeur de "5" correspond une priorité normale ("MEDIUM") et à une valeur entre "6" et "9" une priorité faible ("LOW").

Le schéma de priorité "A1", "A2", "A3", "B1", "B2", ..., "C3" d'un agent utilisateur de calendrier (CUA) est converti dans cette propriété de sorte qu'à une valeur de la propriété de "1" correspond la priorité "A1", à la valeur "2" correspond "A2", à la valeur "3" correspond "A3", et ainsi de suite jusqu'à la valeur "9" correspondant à la priorité "C3".

Les autres valeurs entières sont réservées pour une utilisation future.

Dans un composant de calendrier "VEVENT", cette propriété indique la priorité de l'événement. Cette propriété est utile lorsque plusieurs événements sont planifiés pour une période de temps donnée.

Dans un composant de calendrier "VTODO", cette propriété indique la priorité de la tâche. Cette propriété est utile pour hiérarchiser (prioritizing) plusieurs éléments d'action pour une période de temps donnée.

Définition de format :

La propriété est défini par la notation suivante :

     priority   = "PRIORITY" prioparam ":" privalue CRLF
     ; la valeur par défaut est zéro

     prioparam  = *(";" xparam)

     privalue   = integer       ; DOIT être dans l'intervalle [0..9].
        ; Toutes les autres valeurs sont réservées pour une utilisation
        ;  future.

Voici un exemple de propriété avec la priorité la plus élevée :

     PRIORITY:1

Voici un exemple de propriété avec la priorité la plus élevée suivante :

     PRIORITY:2

Exemple :

Voici l'exemple d'une propriété sans priorité. Cela équivaut à ne pas définir la propriété "PRIORITY" :

     PRIORITY:0
4.8.1.10. Ressources
Nom de la propriété :

RESOURCES

But :

Cette propriété définit l'équipement ou les ressources prévus pour une activité indiquée par une entité de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard, de texte de remplacement et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT" et "VTODO".

Description :

La valeur de propriété est du texte arbitraire. Plusieurs ressources peuvent être indiquées par une liste de ressources séparées par des caractères VIRGULE (code décimal 44 US-ASCII).

Définition de format :

La propriété est définie par la notation suivante :

     resources  = "RESOURCES" resrcparam ":" text *("," text) CRLF

     resrcparam = *(

                ; les paramètres suivants sont OPTIONELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" altrepparam) / (";" languageparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemple :

Voici un exemple de cette propriété :

     RESOURCES:EASEL,PROJECTOR,VCR

     RESOURCES;LANGUAGE=fr:1 raton-laveur
4.8.1.11. Statut
Nom de la propriété :

STATUS

But :

Cette propriété définit le statut ou la confirmation d'ensemble du composant de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL".

Description :

Dans un composant de calendrier organisé en groupe, la propriété est utilisée par le gestionnaire (Organizer) pour confirmer l'événement aux adhérents (Attendee). Ainsi, dans un composant de calendrier "VEVENT", le gestionnaire peut indiquer qu'une réunion est provisoire, confirmée ou annulée. Dans un composant de calendrier "VTODO", le gestionnaire peut indiquer qu'un élément d'action nécessite une intervention, est réalisé, est en cours ou fait l'objet de travaux, ou est annulé. Dans un composant de calendrier "VJOURNAL", le gestionnaire peut indiquer qu'une écriture de journal est ébauchée, finale ou annulée ou supprimée.

Définition de format :

La propriété est définie par la notation suivante :

     status     = "STATUS" statparam] ":" statvalue CRLF

     statparam  = *(";" xparam)

     statvalue  = "TENTATIVE"           ; indique un événement
                                        ;  provisoire.
                / "CONFIRMED"           ; indique un événement définitif.
                / "CANCELLED"           ; indique un événement annulé.
        ; les valeurs de statut pour un composant "VEVENT"

     statvalue  =/ "NEEDS-ACTION"       ; désigne une tâche nécessitant
                                        ;  une action.
                / "COMPLETED"           ; indique une tâche terminée.
                / "IN-PROCESS"          ; indique une tâche en cours.
                / "CANCELLED"           ; indique une tâche annulée.
        ; les valeurs de statut pour un composant "VTODO".

     statvalue  =/ "DRAFT"              ; indique un journal ébauché.
                / "FINAL"               ; indique un journal final.
                / "CANCELLED"           ; indique un journal supprimé.
        ; les valeurs de statut pour un composant "VJOURNAL".

Exemples :

Voici un exemple de cette propriété pour un composant de calendrier "VEVENT" :

     STATUS:TENTATIVE

Voici un exemple de cette propriété pour un composant de calendrier "VTODO" :

     STATUS:NEEDS-ACTION

Voici un exemple de cette propriété pour un composant de calendrier "VJOURNAL" :

     STATUS:DRAFT
4.8.1.12. Résumé
Nom de la propriété :

SUMMARY

But :

Cette propriété indique un bref résumé ou un sujet pour le composant de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard, de texte de remplacement et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL" et "VALARM".

Description :

Cette propriété est utilisée dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL" pour saisir un bref résumé d'une ligne de l'activité ou de l'écriture de journal.

Cette propriété est utilisée dans le composant de calendrier "VALARM" pour saisir le sujet d'une alerte de type EMAIL.

Définition de format :

La propriété est définie par la notation suivante :

     summary    = "SUMMARY" summparam ":" text CRLF

     summparam  = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" altrepparam) / (";" languageparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemple :

Voici un exemple de cette propriété :

     SUMMARY:Department Party
4.8.2. Propriétés de composant de date et d'heure

Les propriété suivantes précisent les informations de date et d'heure dans les composants de calendrier.

4.8.2.1. Date et heure de réalisation
Nom de la propriété :

COMPLETED

But :

Cette propriété définit la date et l'heure de réalisation effective d'une tâche.

Type de valeur :

DATE-TIME

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans un composant de calendrier "VTODO".

Description :

La date et l'heure DOIVENT être dans un format UTC.

Définition de format :

La propriété est définie par la notation suivante :

     completed  = "COMPLETED" compparam ":" date-time CRLF

     compparam  = *(";" xparam)

Exemple :

Voici un exemple de cette propriété :

     COMPLETED:19960401T235959Z
4.8.2.2. Date et heure de fin
Nom de la propriété :

DTEND

But :

Cette propriété indique la date et l'heure où un composant de calendrier se termine.

Type de valeur :

Le type de la valeur par défaut est DATE-TIME. La valeur peut recevoir le type DATE.

Paramètres de propriété :

Des paramètres de propriété non standard, de type de données de valeur, d'identificateur de fuseau horaire peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT" et "VFREEBUSY".

Description :

Dans le composant de calendrier "VEVENT", cette propriété définit la date et heure à laquelle l'événement finit. La valeur DOIT être postérieure à celle de la propriété "DTSTART".

Pour le composant de calendrier "VFREEBUSY", cette propriété définit la date et heure de fin de l'information de temps libre ou occupé. L'heure DOIT être indiquée dans le format d'heure UTC. La valeur DOIT être postérieure à celle de la propriété "DTSTART".

Définition de format :

La propriété est définie par la notation suivante :

     dtend      = "DTEND" dtendparam":" dtendval CRLF

     dtendparam = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
                (";" tzidparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

     dtendval   = date-time / date
     ; la valeur DOIT correspondre au type de valeur

Exemple :

Voici un exemple de cette propriété :

     DTEND:19960401T235959Z

     DTEND;VALUE=DATE:19980704
4.8.2.3. Date et heure d'échéance
Nom de la propriété :

DUE

But :

Cette propriété définit la date et l'heure de réalisation prévue d'une tâche.

Type de valeur :

Le type de la valeur par défaut est DATE-TIME. La valeur peut recevoir le type DATE.

Paramètres de propriété :

Des paramètres de propriété non standard, de type de données de valeur, d'identificateur de fuseau horaire peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître une seule fois dans un composant de calendrier "VTODO".

Description :

La valeur DOIT être une date et heure égale ou postérieure à celle de la valeur de DTSTART, le cas échéant.

Définition de format :

La propriété est définie par la notation suivante :

     due        = "DUE" dueparam":" dueval CRLF

     dueparam   = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
                (";" tzidparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                  *(";" xparam)

                )

     dueval     = date-time / date
     ; la valeur DOIT correspondre au type de valeur

Exemple :

Voici un exemple de cette propriété :

     DUE:19980430T235959Z
4.8.2.4. Date et heure de début
Nom de la propriété :

DTSTART

But :

Cette propriété indique le début du composant de calendrier.

Type de valeur :

Le type de la valeur par défaut est DATE-TIME. L'heure DOIT prendre l'une des formes définies pour le type de valeur DATE-TIME. La valeur peut recevoir le type DATE.

Paramètres de propriété :

Des paramètres de propriété non standard, de type de données de valeur, d'identificateur de fuseau horaire peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO", "VFREEBUSY" et "VTIMEZONE".

Description :

Dans le composant de calendrier "VEVENT", cette propriété définit la date et heure de début de l'événément. Elle est OBLIGATOIRE dans le composant de calendrier "VEVENT". Les événements peuvent avoir une date et heure de début mais pas de fin. Auquel cas, l'événement n'occupe pas de temps.

Dans le composant de calendrier "VFREEBUSY", cette propriété définit la date et heure de début de l'information de temps libre ou occupé. L'heure DOIT être définie en temps UTC.

Dans le composant de calendrier "VTIMEZONE", cette propriété définit la date et heure de début effectif d'une définition de fuseau horaire. Elle est OBLIGATOIRE dans chacune des parties "STANDARD" et "DAYLIGHT" incluses dans les composants de calendrier "VTIMEZONE" et elle DOIT être définie en heure locale de type DATE-TIME sans le paramètre de propriété TZID.

Définition de format :

La propriété est définie par la notation suivante :

     dtstart    = "DTSTART" dtstparam ":" dtstval CRLF

     dtstparam  = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
                (";" tzidparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                  *(";" xparam)

                )


     dtstval    = date-time / date
     ; la valeur DOIT correspondre au type de valeur

Exemple :

Voici un exemple de cette propriété :

     DTSTART:19980118T073000Z
4.8.2.5. Durée
Nom de la propriété :

DURATION

But :

La propriété indique une durée positive.

Type de valeur :

DURATION

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO", "VFREEBUSY" et "VALARM".

Description :

Dans un composant de calendrier "VEVENT", cette propriété peut être utilisée pour indiquer la durée de l'événement, au lieu de sa date et heure de fin explicite ; dans un composant de calendrier "VTODO", elle peut être utilisée pour indiquer la durée de la tâche, au lieu de sa date et heure d'échéance explicite ; dans un composant de calendrier "VFREEBUSY", pour indiquer l'intervalle de temps libre demandé ; dans un composant de calendrier "VALARM", pour indiquer le délai avant répétition d'une alerte.

Définition de format :

La propriété est définie par la notation suivante :

     duration   = "DURATION" durparam ":" dur-value CRLF
                  ; consiste en une durée positive.

     durparam   = *(";" xparam)

Exemple :

Voici un exemble de cette propriété définissant un intervalle d'une heure, zéro minute et zéro seconde :

     DURATION:PT1H0M0S

Voici un exemple de cette propriété définissant un intervalle de 15 minutes :

     DURATION:PT15M
4.8.2.6. Temps libre ou occupé
Nom de la propriété :

FREEBUSY

But :

La propriété définit un ou plusieurs intervalles de temps libre ou occupé.

Type de valeur :

PERIOD. Les valeurs de date et heure DOIVENT être dans un format de temps UTC.

Paramètres de propriété :

Des paramètres de propriété non standard ou de type de temps libre ou occupé peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VFREEBUSY".

Paramètres de propriété :

Des paramètres "FBTYPE" et non standards peuvent être définis sur cette propriété.

Description :

Ces périodes peuvent être définies soit par une date et heure de début et de fin, soit par une date et heure de début et une durée. La valeur de date et heure DOIT être dans un format de temps UTC.

Les propriétés "FREEBUSY" au sein d'un composant de calendrier "VFREEBUSY" DEVRAIENT être triées en ordre croissant, en fonction de l'heure de début puis de l'heure de fin, les périodes les plus anciennes d'abord.

La propriété "FREEBUSY" peut indiquer plusieurs valeurs, séparées par des caractères VIRGULE (code décimal 44 US-ASCII). Auquel cas, les valeurs de propriété "FREEBUSY" DEVRAIENT toutes avoir le même type de paramètre de propriété "FBTYPE" (par exemple, toutes les valeurs de type "FBTYPE" listées ensemble dans une seule propriété).

Définition de format :

La propriété est définie par la notation suivante :

     freebusy   = "FREEBUSY" fbparam ":" fbvalue
                  CRLF

     fbparam    = *(
                ; le paramètre suivant est OPTIONNEL,
                ;  mais NE DOIT PAS apparaître plus d'une fois

                (";" fbtypeparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

     fbvalue    = period *["," period]
     ; l'heure DOIT être au format de temps UTC.

Exemple :

Voici des exemples de cette propriété :

     FREEBUSY;FBTYPE=BUSY-UNAVAILABLE:19970308T160000Z/PT8H30M

     FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H

     FREEBUSY;FBTYPE=FREE:19970308T160000Z/PT3H,19970308T200000Z/PT1H,
      19970308T230000Z/19970309T000000Z
4.8.2.7. Transparence du temps
Nom de la propriété :

TRANSP

But :

La propriété définit si un événement est transparent ou non aux recherches de temps occupé.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître une seule fois dans un composant de calendrier "VEVENT".

Description :

La transparence du temps est la caractéristique d'un événement déterminant si celui-ci consomme du temps sur un calendrier. Les événements qui consomment le temps réel de la personne ou de la ressource associée au calendrier DEVRAIENT être enregistrés comme OPAQUE, leur permettant d'être détectés par les recherches de temps libre ou occupé. Les autres événements qui n'occupent pas le temps de la personne (ou de la ressource) DEVRAIENT être enregistrés comme TRANSPARENT, les rendant invisibles aux recherches de temps libre ou occupé.

Définition de format :

La propriété est définie par la notation suivante :

     transp     = "TRANSP" tranparam ":" transvalue CRLF

     tranparam  = *(";" xparam)

     transvalue = "OPAQUE"      ; opaque aux recherches de
                                ;  temps occupé.
                / "TRANSPARENT" ; transparent aux recherches de
                                ;  temps occupé.
        ; la valeur par défaut est OPAQUE

Exemples :

Voici un exemple de cette propriété pour un événement qui est transparent ou échappe aux recherches de temps libre ou occupé :

     TRANSP:TRANSPARENT

Voici un exemple de cette propriété pour un événement qui est opaque ou arrête les recherches de temps libre ou occupé :

     TRANSP:OPAQUE
4.8.3. Propriétés de composant de fuseau horaire

Les propriétés suivantes précisent l'information de fuseau horaire dans les composants de calendrier.

4.8.3.1. Identificateur de fuseau horaire
Nom de la propriété :

TZID

But :

Cette propriété indique la valeur texte qui identifie de façon unique le composant de calendrier "VTIMEZONE".

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété DOIT être définie dans un composant de calendrier "VTIMEZONE".

Description :

C'est l'étiquette au moyen de laquelle un fuseau horaire est référencé par une propriété iCalendar dont le type de donnée est DATE-TIME ou bien TIME, et qui ne définit pas d'heure UTC ou « flottante ». La présence d'un caractère BARRE OBLIQUE (code décimal 47 US-ASCII) en préfixe indique que cette valeur de "TZID" représente un identificateur unique dans un registre de fuseau horaire défini globalement (lorsque ce registre est défini).

Remarque : Ce document ne définit pas de conventions de dénomination pour les identificateurs de fuseau horaire. Les développeurs peuvent utiliser celles définies dans les spécifications de fuseau horaire telle que la base de donnée Olson [TZ] dans le domaine public. La spécification d'identificateurs de fuseau horaire globalement uniques n'est pas abordée par ce document et est laissée pour des travaux futurs.

Définition de format :

Cette propriété est définie par la notation suivante :

     tzid       = "TZID" tzidpropparam ":" [tzidprefix] text CRLF

     tzidpropparam      = *(";" xparam)

     ;tzidprefix        = "/"
     ; défini précédemment, et listé ici pour la commodité du lecteur

Exemples :

Voici des exemples d'identificateurs de fuseau horaire non globalement uniques :

     TZID:US-Eastern

     TZID:California-Los_Angeles

Voici un exemple d'identificateur de fuseau horaire fictif globalement unique :

     TZID:/US-New_York-New_York
4.8.3.2. Nom de fuseau horaire
Nom de la propriété :

TZNAME

But :

Cette propriété indique la désignation habituelle d'une description de fuseau horaire.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans un composant de calendrier "VTIMEZONE".

Description :

Cette propriété peut être définie en plusieurs langues pour subvenir aux différents besoins de langue.

Définition de format :

Cette propriété est définie par la notation suivante :

     tzname     = "TZNAME" tznparam ":" text CRLF

     tznparam   = *(

                ; le paramètre suivant est OPTIONNEL,
                ; mais NE DOIT PAS apparaître plus d'une fois

                (";" languageparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemples :

Voici un exemple de cette propriété :

     TZNAME:EST

Voici un exemple de cette propriété lorsque le nom de fuseau horaire est défini en deux langues différentes :

     TZNAME;LANGUAGE=en:EST
     TZNAME;LANGUAGE=fr-CA:HNE
4.8.3.3. Décalage de fuseau horaire depuis
Nom de la propriété :

TZOFFSETFROM

But :

Cette propriété indique le décalage en vigueur avant l'observance de ce fuseau horaire.

Type de valeur :

UTC-OFFSET

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété DOIT être définie dans un composant de calendrier "VTIMEZONE".

Description :

Cette propriété indique le décalage en vigueur avant l'observance de ce fuseau horaire. On l'utilise pour calculer le temps absolu où a lieu la transition vers une observance donnée. Cette propriété ne DOIT apparaître que dans un composant de calendrier "VTIMEZONE", lequel DOIT inclure cette propriété. La propriété a une valeur numérique avec un signe indiquant le nombre d'heures et éventuellement de minutes par rapport au temps UTC. Les nombres positifs représentent des fuseaux horaires à l'est du méridien origine, ou en avance du temps UTC. Les nombres négatifs représentent des fuseaux horaires à l'ouest du méridien origine, ou en retard du temps UTC.

Définition de format :

La propriété est définie par la notation suivante :

     tzoffsetfrom       = "TZOFFSETFROM" frmparam ":" utc-offset
                          CRLF

     frmparam   = *(";" xparam)

Exemple :

Voici des exemples de cette propriété :

     TZOFFSETFROM:-0500

     TZOFFSETFROM:+1345
4.8.3.4. Décalage de fuseau horaire vers
Nom de la propriété :

TZOFFSETTO

But :

Cette propriété indique le décalage en vigueur dans l'observance de ce fuseau horaire.

Type de valeur :

UTC-OFFSET

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété DOIT être définie dans un composant de calendrier "VTIMEZONE".

Description :

Cette propriété indique le décalage en vigueur dans l'observance de ce fuseau horaire. On l'utilise pour calculer le temps absolu de la nouvelle observance. La propriété a une valeur numérique avec un signe indiquant le nombre d'heures et éventuellement de minutes par rapport au temps UTC. Les nombres positifs représentent des fuseaux horaires à l'est du méridien origine, ou en avance du temps UTC. Les nombres négatifs représentent des fuseaux horaires à l'ouest du méridien origine, ou en retard du temps UTC.

Définition de format :

La propriété est définie par la notation suivante :

     tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF

     toparam    = *(";" xparam)

Exemple :

Voici des exemples de cette propriété :

     TZOFFSETTO:-0400

     TZOFFSETTO:+1245
4.8.3.5. Adresse URL de fuseau horaire
Nom de la propriété :

TZURL

But :

La propriété "TZURL" permet à un composant "VTIMEZONE" de pointer vers une adresse de réseau à utiliser pour récupérer une version à jour du fuseau horaire.

Type de valeur :

URI

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans un composant de calendrier "VTIMEZONE".

Description :

La propriété "TZURL" permet à un composant "VTIMEZONE" de pointer vers une adresse de réseau à utiliser pour récupérer une version à jour du fuseau horaire. Cela établit un lien (hook) pour tenir compte des modifications imposées aux définitions de fuseau horaire par les instances dirigeantes (government bodies). La récupération de cette ressource aboutit à un objet iCalendar contenant un seul composant "VTIMEZONE" et une propriété "METHOD" dont la valeur est PUBLISH.

Définition de format :

La propriété est définie par la notation suivante :

     tzurl      = "TZURL" tzurlparam ":" uri CRLF

     tzurlparam = *(";" xparam)

Exemple :

Voici un exemple de cette propriété :

     TZURL:http://timezones.r.us.net/tz/US-California-Los_Angeles
4.8.4. Propriétés de composant de relation

Les propriétés suivantes précisent l'information de relation dans les composants de calendrier.

4.8.4.1. Adhérent
Nom de la propriété :

ATTENDEE

But :

La propriété définit un adhérent (Attendee) d'un composant de calendrier.

Type de valeur :

CAL-ADDRESS

Paramètres de propriété :

Des paramètres de propriété non standard, de langue, de type d'utilisateur de calendrier, d'adhésion de liste ou de groupe, de rôle de participation, de statut de participation, d'attente RSVP, de délégataire, de délégant, d'émetteur, de nom commun ou de référence d'entrée de répertoire peuvent être définis sur cette propriété.

Conformité :

Cette propriété DOIT apparaître dans un objet iCalendar définissant une entité de calendrier planifiée de groupe. Cette propriété NE DOIT PAS apparaître dans un objet iCalendar pour la publication de l'information de calendrier (par exemple, NE PAS apparaître dans un objet iCalendar indiquant la publication du temps occupé d'un utilisateur de calendrier, d'un événement, d'une tâche ou d'un journal). Cette propriété n'est pas définie dans un objet iCalendar n'indiquant qu'une définition de fuseau horaire, ou définissant des entités de calendrier qui ne sont pas des entités d'un groupe planifié mais seulement du calendrier d'un seul utilisateur.

Description :

Cette propriété DOIT seulement apparaître dans les composants de calendrier pour indiquer les participants, les non-participants et le président d'une entité de calendrier de groupe planifié. La propriété apparaît dans une alerte de type EMAIL du composant de calendrier "VALARM" pour indiquer l'adresse électronique de destination d'une alerte iCalendar de type message électronique.

Le paramètre de propriété CN correspond au nom commun ou affichable associé à l'adresse du calendrier ; le paramètre ROLE au rôle prévu de l'adhérent dans le composant de calendrier ; le paramètre PARTSTAT indique le statut de la participation de l'adhérent ; le paramètre RSVP indique si une réponse est nécessaire ; le paramètre CUTYPE indique le type d'utilisateur de calendrier ; le paramètre MEMBER indique les groupes auxquels l'adhérent appartient ; le paramètre DELEGATED-TO indique les utilisateurs de calendrier à qui la demande originale a été déléguée, le paramètre DELEGATED-FROM par qui la demande a été déléguée ; le paramètre SENT-BY indique qui agit au nom de l'adhérent (ATTENDEE) et le paramètre DIR indique l'adresse URI qui pointe vers l'information de répertoire correspondant à l'adhérent. Ces paramètres de propriété peuvent être définis sur une propriété "ATTENDEE" dans les composants de calendrier "VEVENT", "VTODO" ou "VJOURNAL". Ils DOIVENT être définis pour une propriété "ATTENDEE" dans un composant de calendrier "VFREEBUSY" ou "VALARM". Si le paramètre LANGUAGE est défini, la langue identifiée s'applique au paramètre CN.

Le destinataire auquel est déléguée une demande DOIT hériter des valeurs de paramètre RSVP et ROLE de l'adhérent qui lui a délégué la demande.

On peut indiquer plusieurs adhérents en incluant plusieurs propriétés "ATTENDEE" au composant de calendrier.

Définition de format :

La propriété est définie par la notation suivante :

     attendee   = "ATTENDEE" attparam ":" cal-address CRLF

     attparam   = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" cutypeparam) / (";"memberparam) /
                (";" roleparam) / (";" partstatparam) /
                (";" rsvpparam) / (";" deltoparam) /
                (";" delfromparam) / (";" sentbyparam) /
                (";"cnparam) / (";" dirparam) /
                (";" languageparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemples :

Voici des exemples d'utilisation de cette propriété pour une tâche :

     ORGANIZER:MAILTO:jsmith@host1.com
     ATTENDEE;MEMBER="MAILTO:DEV-GROUP@host2.com":
      MAILTO:joecool@host2.com
     ATTENDEE;DELEGATED-FROM="MAILTO:immud@host3.com":
      MAILTO:ildoit@host1.com

Voici un exemple d'utilisation de cette propriété pour indiquer les multiples participants d'un événement :

     ORGANIZER:MAILTO:jsmith@host1.com
     ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot
      :MAILTO:hcabot@host2.com
     ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="MAILTO:bob@host.com"
      ;PARTSTAT=ACCEPTED;CN=Jane Doe:MAILTO:jdoe@host1.com

Voici un exemple de cette propriété avec une adresse URI vers l'information de répertoire associée à l'adhérent :

     ATTENDEE;CN=John Smith;DIR="ldap://host.com:6666/o=eDABC%
      20Industries,c=3DUS??(cn=3DBJim%20Dolittle)":MAILTO:jimdo@
      host1.com

Voici un exemple de cette propriété avec des informations sur les délégataires et les délégants pour un événement :

     ORGANIZER;CN=John Smith:MAILTO:jsmith@host.com
     ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
      "MAILTO:iamboss@host2.com";CN=Henry Cabot:MAILTO:hcabot@
      host2.com
     ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
      "MAILTO:hcabot@host2.com";CN=The Big Cheese:MAILTO:iamboss
      @host2.com
     ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
      :MAILTO:jdoe@host1.com

Exemple :

Voici un exemple d'utilisation de cette propriété lorsqu'un autre utilisateur de calendrer agit au nom de l'adhérent (Attendee)  :

     ATTENDEE;SENT-BY=MAILTO:jan_doe@host1.com;CN=John Smith:MAILTO:
      jsmith@host1.com
4.8.4.2. Coordonnées
Nom de la propriété :

CONTACT

But :

La propriété est utilisée pour représenter les coordonnées ou sinon une référence aux coordonnées associées au composant de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard, de texte de remplacement et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL" et "VFREEBUSY".

Description :

La valeur de propriété consiste en coordonnées textuelles. On peut aussi indiquer une représentation de remplacement de la valeur de propriété consistant en une adresse URI pointant vers une forme alternative des coordonnées, telle qu'une carte de visite vCard [RFC 2426].

Définition de format :

La propriété est définie par la notation suivante :

     contact    = "CONTACT" contparam ":" text CRLF

     contparam  = *(
                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" altrepparam) / (";" languageparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemples :

Voici un exemple de cette propriété référençant des coordonnées textuelles :

     CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234

Voici un exemple de cette propriété avec une représentation de remplacement consistant en une adresse URI de type LDAP vers une entrée de répertoire contenant les coordonnées :

     CONTACT;ALTREP="ldap://host.com:6666/o=3DABC%20Industries\,
      c=3DUS??(cn=3DBJim%20Dolittle)":Jim Dolittle\, ABC Industries\,
      +1-919-555-1234

Voici un exemple de cette propriété avec une représentation de remplacement consistant en une partie de corps MIME contenant les coordonnées, telle qu'une carte de visite vCard [RFC 2426] incorporée dans un type de contenu [MIME-DIR] :

     CONTACT;ALTREP="CID=<part3.msg970930T083000SILVER@host.com>":Jim
       Dolittle\, ABC Industries\, +1-919-555-1234

Voici un exemple de cette propriété référençant une ressource de réseau, tel qu'un objet vCard [RFC 2426] contenant les coordonnées :

     CONTACT;ALTREP="http://host.com/pdi/jdoe.vcf":Jim
       Dolittle\, ABC Industries\, +1-919-555-1234
4.8.4.3. Gestionnaire
Nom de la propriété :

ORGANIZER

But :

La propriété définit le gestionnaire d'un composant de calendrier.

Type de valeur :

CAL-ADDRESS

Paramètres de propriété :

Des paramètres de propriété non standard, de langue, de référence d'entrée de répertoire, d'expéditeur peuvent être définis sur cette propriété.

Conformité :

Cette propriété DOIT apparaître dans un objet iCalendar définissant une entité de calendrier planifiée de groupe. Cette propriété DOIT apparaître dans un objet iCalendar indiquant la publication du temps occupé d'un utilisateur de calendrier. Cette propriété NE DOIT PAS apparaître dans un objet iCalendar n'indiquant qu'une définition de fuseau horaire, ou définissant des entités de calendrier qui ne sont pas des entités planifiées de groupe mais seulement des entités du calendrier d'un seul utilisateur.

Description :

La propriété apparaît dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL pour indiquer le gestionnaire d'une entité de calendrier planifiée de groupe. Elle apparaît dans le composant de calendrier "VFREEBUSY" pour indiquer l'utilisateur de calendrier demandant le temps libre ou occupé. Lors de la publication d'un composant de calendrier "VFREEBUSY", la propriété est utilisée pour indiquer le calendrier où est publié le temps occupé.

Le paramètre de propriété CN indique le nom commun ou affiché du gestionnaire (Organizer) , le paramètre de propriété DIR fournit un pointeur vers l'information de répertoire associée au gestionnaire, le paramètre SENT-BY indique un autre utilisateur de calendrier agissant au nom du gestionnaire. Des paramètres non standards peuvent aussi apparaître sur cette propriété. Si le paramètre de propriété LANGUAGE est indiqué, la langue identifiée s'applique à la valeur du paramètre CN.

Définition de format :

La propriété est définie par la notation suivante :

     organizer  = "ORGANIZER" orgparam ":"
                  cal-address CRLF

     orgparam   = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
                (";" languageparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

Exemples :

Voici un exemple de cette propriété :

     ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.com

Voici un exemple de cette propriété avec un pointeur vers l'information de répertoire associée au gestionnaire :

     ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ
      ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com

Voici un exemple de cette propriété employée par un autre utilisateur de calendrier agissant au nom du gestionnaire, les réponses étant destinées au gestionnaire et non à l'autre utilisateur de calendrier :

     ORGANIZER;SENT-BY="MAILTO:jane_doe@host.com":
      MAILTO:jsmith@host1.com
4.8.4.4. Identificateur de récurrence
Nom de la propriété :

RECURRENCE-ID

But :

Cette propriété s'utilise conjointement aux propriétés "UID" et "SEQUENCE" pour identifier une instance spécifique d'un composant de calendrier récurrent "VEVENT", "VTODO" ou "VJOURNAL". La valeur de propriété est celle effective de la propriété "DTSTART" de l'instance de récurrence.

Type de valeur :

Le type de valeur par défaut de cette propriété est DATE-TIME. Le format de temps peut prendre n'importe laquelle des formes valides définies pour le type de valeur DATE-TIME. Cf. la définition du type de valeur DATE-TIME pour les interprétations spécifiques des diverses formes. La valeur peut recevoir le type DATE.

Paramètres de propriété :

Des paramètres de propriété non standard, de type de données de valeur, d'identificateur de fuseau horaire et de portée d'identificateur de récurrence peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans un objet iCalendar contenant un composant de calendrier récurrent.

Description :

La totalité des composants de calendrier indiqués par un ensemble de récurrence est référencée en appelant simplement la valeur de propriété "UID" correspondant au composant de calendrier. La propriété "RECURRENCE-ID" permet l'appel d'une instance individuelle dans l'ensemble de récurrence.

Si la valeur de la propriété "DTSTART" est de type DATE, alors celle-ci DOIT être la date de calendrier de l'instance de récurrence.

La valeur de date et heure est fixée à l'heure où devrait avoir lieu l'instance de récurrence originale ; ainsi, s'il s'agit de changer la réunion du vendredi pour le jeudi, la date et heure est toujours fixée à la réunion originale du vendredi.

La propriété "RECURRENCE-ID" s'utilise conjointement aux propriétés "UID" et "SEQUENCE" pour identifier une instance récurrente particulière d'un événement, d'une tâche ou d'un journal. À un couple donné de valeurs des propriétés "UID" et "SEQUENCE" correspond la valeur "RECURRENCE-ID" d'une instance de récurrence. Lorsque la définition d'un ensemble de récurrence change, et donc la valeur de la propriété "SEQUENCE", la valeur "RECURRENCE-ID" d'une instance de récurrence donnée peut également changer. Le paramètre RANGE est utilisé pour indiquer la portée effective des instances de récurrence par rapport à l'instance indiquée par la valeur de la propriété "RECURRENCE-ID". La valeur par défaut du paramètre de portée (range) est uniquement celle de l'instance de récurrence seule. La valeur peut aussi être THISANDPRIOR pour indiquer une portée définie par l'instance de récurrence donnée et toutes les instances précédentes, ou THISANDFUTURE pour indiquer une portée définie par l'instance de récurrence donnée et toutes les instances suivantes.

Définition de format :

La propriété est définie par la notation suivante :

     recurid    = "RECURRENCE-ID" ridparam ":" ridval CRLF

     ridparam   = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" "VALUE" "=" ("DATE-TIME" / "DATE)) /
                (";" tzidparam) / (";" rangeparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

     ridval     = date-time / date
     ; la valeur DOIT correspondre au type de valeur

Exemple :

Voici des exemples de cette propriété :

     RECURRENCE-ID;VALUE=DATE:19960401

     RECURRENCE-ID;RANGE=THISANDFUTURE:19960120T120000Z
4.8.4.5. Relation
Nom de la propriété :

RELATED-TO

But :

La propriété est utilisée pour représenter une relation ou une référence entre deux composants de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard et de type de relation peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître une ou plusieurs fois dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL".

Description :

La valeur de propriété consiste en l'identificateur globalement unique et persistent d'un autre composant de calendrier. Cette valeur serait représentée dans un composant de calendrier par la propriété "UID".

Par défaut, la valeur de propriété pointe vers un autre composant de calendrier ayant une relation de parent (PARENT) avec l'objet référençant. Le paramètre de propriété RELTYPE sert à déclarer explicitement le type de relation PARENT par défaut avec le composant de calendrier référencé, ou bien sert à écraser le type de relation par défaut et définir un type de relation soit d'enfant (CHILD), soit de frère (SIBLING). La relation PARENT indique que le composant de calendrier est subordonné au composant de calendrier référencé. La relation CHILD indique que le composant de calendrier est supérieur au composant de calendrier référencé. La relation SIBLING indique que le composant de calendrier est à parité du composant de calendrier référencé.

Les modifications d'un composant de calendrier référencé par cette propriété peuvent affecter implicitement le composant de calendrier lié. Par exemple, si les date ou heure de début ou de fin d'un événement de groupe changent, alors les dates de début et de fin des événements dépendants liés devront être modifiées de manière correspondante. De même, si un composant de calendrier PARENT est annulé ou supprimé, alors cela aura des conséquences sur les composants de calendrier CHILD liés. Cette propriété ne sert qu'à informer de la relation entre des composants de calendrier. C'est le système de calendrier cible (target calendar system) qui est chargé de résoudre les implications de cette relation sur les propriétés.

Définition de format :

La propriété est définie par la notation suivante :

     related    = "RELATED-TO" [relparam] ":" text CRLF

     relparam   = *(

                ; le paramètre suivant est OPTIONNEL,
                ; mais NE DOIT PAS apparaître plus d'une fois

                (";" reltypeparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparm)

                )

Voici un exemple de cette propriété :

     RELATED-TO:<jsmith.part7.19960817T083000.xyzMail@host3.com>

     RELATED-TO:<19960401-080045-4000F192713-0052@host1.com>
4.8.4.6. Adresse URL
Nom de la propriété :

URL

But :

Cette propriété indique une adresse URL (Uniform Resource Locator) associée à cet objet iCalendar.

Type de valeur :

URI

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété ne peut apparaître qu'une seule fois dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL" et "VFREEBUSY".

Description :

Cette propriété peut être utilisée dans un composant de calendrier pour communiquer l'adresse où l'on peut trouver une interprétation (rendition) plus dynamique de l'information de calendrier associée à ce composant de calendrier. Ce mémoire n'essaye pas de normaliser la forme de l'adresse URI ni le format de la ressource désignée par la valeur de propriété. Si la propriété "URL" et l'en-tête MIME Content-Location sont tous deux définis, ils DOIVENT pointer vers la même ressource.

Définition de format :

La propriété est définie par la notation suivante :

     url        = "URL" urlparam ":" uri CRLF

     urlparam   = *(";" xparam)

Exemple :

Voici un exemple de cette propriété :

     URL:http://abc.com/pub/calendars/jsmith/mytime.ics
4.8.4.7. Identificateur unique
Nom de la propriété :

UID

But :

Cette propriété indique l'identificateur globalement unique et persistent du composant de calendrier.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

La propriété DOIT être définie dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL" et "VFREEBUSY".

Description :

La valeur de la propriété "UID" même DOIT être un identificateur globalement unique. Le générateur de l'identificateur DOIT garantir son caractère unique. On peut utiliser plusieurs algorithmes pour y parvenir. On RECOMMANDE que la syntaxe de l'identificateur soit identique à celle de l'élément addr-spec dans le [RFC 822]. Une méthode efficace pour assurer l'unicité consiste à placer, à droite du caractère "@", le nom de domaine, ou l'adresse IP littérale de domaine, de l'hôte où l'identificateur a été créé et, à gauche du "@", une combinaison de la date et heure du jour du calendrier courant (c'est-à-dire, formatée comme une valeur de type DATE-TIME) et d'un autre identificateur unique à ce moment (peut-être séquentiel) disponible sur le système (par exemple, un numéro d'identificateur de processus). Utiliser une valeur date et heure à gauche et un nom de domaine ou une adresse littérale de domaine à droite garantit l'unicité puisque deux hôtes ne peuvent pas avoir le même nom de domaine ou la même adresse IP au même moment. Quoique d'autres algorithmes soient possibles, il est RECOMMANDÉ que la partie de droite contienne un identificateur de domaine (qu'il provienne de l'hôte même ou d'ailleurs) afin que le générateur de l'identificateur de message puisse garantir l'unicité de la partie gauche dans le champ de ce domaine.

Voici la méthode pour corréler les messages de planification à un composant de calendrier "VEVENT", "VTODO" ou "VJOURNAL".

La totalité des composants de calendrier indiqués par un ensemble de récurrence est référencée en indiquant juste la valeur de la propriété "UID" correspondant au composant de calendrier. La propriété "RECURRENCE-ID" permet de référencer une instance individuelle dans l'ensemble de récurrence.

Cette propriété est une méthode importante pour les applications de planification de groupe pour associer les demandes à des réponses tardives, à des modifications ou à des demandes d'annulation. Les applications de gestion d'agenda et de planification DOIVENT générer cette propriété dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL" pour assurer l'interopérabilité avec d'autres applications de planification de groupe. Cet identificateur est créé par le système de calendrier qui génère l'objet iCalendar.

Les mises en œuvre DOIVENT être capables de recevoir et de pérenniser des valeurs longues d'au moins 255 caractères pour cette propriété.

Définition de format :

La propriété est définie par la notation suivante :

     uid        = "UID" uidparam ":" text CRLF

     uidparam   = *(";" xparam)

Exemple :

Voici un exemple de cette propriété :

     UID:19960401T080045Z-4000F192713-0052@host1.com
4.8.5. Propriétés de composant de récurrence

Les propriétés suivantes définissent l'information de récurrence dans les composants de calendrier.

4.8.5.1. Exceptions de dates et heures
Nom de la propriété :

EXDATE

But :

Cette propriété définit la liste des exceptions de dates et heures d'un composant de calendrier récurrent.

Type de valeur :

Le type de valeur par défaut de cette propriété est DATE-TIME. Le type de valeur peut être changé pour DATE.

Paramètres de propriété :

Des paramètres de propriété non standard, de type de données de valeur et d'identificateur de fuseau horaire peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans un objet iCalendar contenant un composant de calendrier récurrent.

Description :

Les dates d'exception, si définies, servent au calcul de l'ensemble de récurrence. L'ensemble de récurrence comprend la totalité des instances de récurrence d'un composant de calendrier. L'ensemble de récurrence est généré en fonction de la propriété "DTSTART" initiale ainsi que des propriétés "RRULE", "RDATE", "EXDATE" et "EXRULE" contenues dans l'objet iCalendar. La propriété "DTSTART" indique la première instance dans l'ensemble de récurrence. On peut aussi définir plusieurs instances de propriétés "RRULE" et "EXRULE" afin de décrire des ensembles de récurrence plus complexes. L'ensemble de récurrence final est créé en rassemblant toutes les dates et heures de début générées par les propriétés "RRULE" et "RDATE", et en excluant toutes les dates et heures de début dans l'association des dates et heures de début générées par des propriétés "EXRULE" et "EXDATE" définies. Cela signifie que les dates et heures de début au sein des propriétés d'exclusion (c'est-à-dire "EXDATE" et "EXRULE") prédominent sur celles indiquées par les propriétés d'inclusion (c'est-à-dire "RDATE" et "RRULE"). Lorsque les propriétés "RRULE" et "RDATE" génèrent des instances semblables, une seule récurrence s'applique. Les instances en double sont ignorées.

La propriété "EXDATE" peut être utilisée pour exclure la valeur définie dans "DTSTART". Toutefois, la valeur de "DSTART" DOIT quand même être conservée par le système de gestion d'agenda et de planification, parce que d'autres propriétés telles que "RECURRENCE-ID" dépendent par nature de la valeur de la propriété "DTSTART" d'origine.

Définition de format :

La propriété est définie par la notation suivante :

     exdate     = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF

     exdtparam  = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" "VALUE" "=" ("DATE-TIME" / "DATE")) /

                (";" tzidparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

     exdtval    = date-time / date
     ; la valeur DOIT correspondre au type de valeur

Exemple :

Voici un exemple de cette propriété :

     EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z
4.8.5.2. Règle d'exception
Nom de la propriété :

EXRULE

But :

Cette propriété définit la règle ou motif de répétition d'une exception dans un ensemble de récurrence.

Type de valeur :

RECUR

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants "VEVENT", "VTODO" et "VJOURNAL".

Description :

La règle d'exception, si définie, sert au calcul de l'ensemble de récurrence. L'ensemble de récurrence comprend la totalité des instances de récurrence d'un composant de calendrier. L'ensemble de récurrence est généré en fonction de la propriété "DTSTART" initiale ainsi que des propriétés "RRULE", "RDATE", "EXDATE" et "EXRULE" contenues dans l'objet iCalendar. La propriété "DTSTART" indique la première instance dans l'ensemble de récurrence. On peut aussi définir plusieurs instances de propriétés "RRULE" et "EXRULE" afin de décrire des ensembles de récurrence plus complexes. L'ensemble de récurrence final est créé en rassemblant toutes les dates et heures de début générées par les propriétés "RRULE" et "RDATE", et en excluant toutes les dates et heures de début dans l'association des dates et heures de début générées par des propriétés "EXRULE" et "EXDATE" définies. Cela signifie que les dates et heures de début au sein des propriétés d'exclusion (c'est-à-dire "EXDATE" et "EXRULE") prédominent sur celles indiquées par les propriétés d'inclusion (c'est-à-dire "RDATE" et "RRULE"). Lorsque les propriétés "RRULE" et "RDATE" génèrent des instances semblables, une seule récurrence s'applique. Les instances en double sont ignorées.

La propriété "EXRULE" peut être utilisée pour exclure la valeur définie dans "DTSTART". Toutefois, la valeur de "DSTART" DOIT quand même être conservée par le système de gestion d'agenda et de planification, parce que d'autres propriétés telles que "RECURRENCE-ID" dépendent par nature de la valeur de la propriété "DTSTART" d'origine.

Définition de format :

La propriété est définie par la notation suivante :

     exrule     = "EXRULE" exrparam ":" recur CRLF

     exrparam   = *(";" xparam)

Exemples :

Voici des exemples de cette propriété. Excepter une semaine sur deux, les mardi et jeudi pour 4 apparitions :

     EXRULE:FREQ=WEEKLY;COUNT=4;INTERVAL=2;BYDAY=TU,TH

Excepter quotidiennement pour 10 apparitions :

     EXRULE:FREQ=DAILY;COUNT=10

Excepter annuellement en juin et juillet pour 8 apparitions :

     EXRULE:FREQ=YEARLY;COUNT=8;BYMONTH=6,7
4.8.5.3. Dates et heures de récurrence
Nom de la propriété :

RDATE

But :

Cette propriété définit la liste des dates et heures d'un ensemble de récurrence.

Type de valeur :

Le type de valeur par défaut de cette propriété est DATE-TIME. Le type de valeur peut être changé pour DATE ou PERIOD.

Paramètres de propriété :

Des paramètres de propriété non standard, de type de données de valeur et d'identificateur peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL" ou "VTIMEZONE".

Description :

Cette propriété s'utilise avec la propriété "RRULE" pour définir un ensemble global d'événements récurrents. Lorsqu'elles sont toutes deux présentes dans un objet iCalendar, les événements récurrents sont définis par l'association des apparitions indiquées par les propriétés "RDATE" et "RRULE".

Les dates de récurrence, si définies, servent au calcul de l'ensemble de récurrence. L'ensemble de récurrence comprend la totalité des instances de récurrence d'un composant de calendrier. L'ensemble de récurrence est généré en fonction de la propriété "DTSTART" initiale ainsi que des propriétés "RRULE", "RDATE", "EXDATE" et "EXRULE" contenues dans l'objet iCalendar. La propriété "DTSTART" indique la première instance dans l'ensemble de récurrence. On peut aussi définir plusieurs instances de propriétés "RRULE" et "EXRULE" afin de décrire des ensembles de récurrence plus complexes. L'ensemble de récurrence final est créé en rassemblant toutes les dates et heures de début générées par les propriétés "RRULE" et "RDATE", et en excluant toutes les dates et heures de début dans l'association des dates et heures de début générées par des propriétés "EXRULE" et "EXDATE" définies. Cela signifie que les dates et heures de début au sein des propriétés d'exclusion (c'est-à-dire "EXDATE" et "EXRULE") prédominent sur celles indiquées par les propriétés d'inclusion (c'est-à-dire "RDATE" et "RRULE"). Lorsque les propriétés "RRULE" et "RDATE" génèrent des instances semblables, une seule récurrence s'applique. Les instances en double sont ignorées.

Définition de format :

La propriété est définie par la notation suivante :

     rdate      = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF

     rdtparam   = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                (";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) /
                (";" tzidparam) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

     rdtval     = date-time / date / period
     ; la valeur DOIT correspondre au type de valeur

Exemples :

Voici des exemples de cette propriété :

     RDATE:19970714T123000Z

     RDATE;TZID=US-EASTERN:19970714T083000

     RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
      19960404T010000Z/PT3H

     RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
      19970526,19970704,19970901,19971014,19971128,19971129,19971225
4.8.5.4. Règle de récurrence
Nom de la propriété :

RRULE

But :

Cette propriété définit la règle ou motif de répétition des événements, tâches ou définitions de fuseau horaire récurrents.

Type de valeur :

RECUR

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître une ou plusieurs fois dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL". Elle peut aussi apparaître une seule fois dans chaque sous-composant "STANDARD" ou "DAYLIGHT" du composant de calendrier "VTIMEZONE".

Description :

La règle de récurrence, si définie, sert au calcul de l'ensemble de récurrence. L'ensemble de récurrence comprend la totalité des instances de récurrence d'un composant de calendrier. L'ensemble de récurrence est généré en fonction de la propriété "DTSTART" initiale ainsi que des propriétés "RRULE", "RDATE", "EXDATE" et "EXRULE" contenues dans l'objet iCalendar. La propriété "DTSTART" indique la première instance dans l'ensemble de récurrence. On peut aussi définir plusieurs instances de propriétés "RRULE" et "EXRULE" afin de décrire des ensembles de récurrence plus complexes. L'ensemble de récurrence final est créé en rassemblant toutes les dates et heures de début générées par les propriétés "RRULE" et "RDATE", et en excluant toutes les dates et heures de début dans l'association des dates et heures de début générées par des propriétés "EXRULE" et "EXDATE" définies. Cela signifie que les dates et heures de début au sein des propriétés d'exclusion (c'est-à-dire "EXDATE" et "EXRULE") prédominent sur celles indiquées par les propriétés d'inclusion (c'est-à-dire "RDATE" et "RRULE"). Lorsque les propriétés "RRULE" et "RDATE" génèrent des instances semblables, une seule récurrence s'applique. Les instances en double sont ignorées.

Le couple de propriété "DTSTART" et "DTEND", ou le couple "DTSTART" et "DURATION", dans l'objet iCalendar, définit la première instance de la récurrence. Dans une règle de récurrence, les propriétés "DTSTART" et "DTEND" DOIVENT être définies en temps local et l'ensemble approprié de composants de calendrier "VTIMEZONE" DOIT être inclus. Pour des précisions sur l'utilisation du composant de calendrier "VTIMEZONE", cf. sa définition.

Une durée associée à l'objet iCalendar s'applique à tous les membres de l'ensemble de récurrence généré. Toute modification de durée pour des récurrences spécifiques DOIT être définie à l'aide de la propriété "RDATE".

Définition de format :

Cette propriété est définie par la notation suivante :

     rrule      = "RRULE" rrulparam ":" recur CRLF

     rrulparam  = *(";" xparam)

Exemples :

Tous les exemples supposent le fuseau horaire de l'est des États-Unis.

Tous les jours, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;COUNT=10

     ==> (1997 09:00 EDT) 2-11 septembre

Tous les jours, jusqu'au 24 décembre 1997 :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;UNTIL=19971224T000000Z

     ==> (1997 09:00 EDT) 2-30 septembre; 1-25 octobre
         (1997 09:00 EST) 26-31 octobre ; 1-30 novembre ; 1-23 décembre

Tous les deux jours, indéfiniment :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;INTERVAL=2
     ==> (1997 09:00 EDT) 2,4,6,8,..,24,26,28,30 septembre ;
          2,4,6,..,20,22,24 octobre
         (1997 09:00 EST) 26,28,30 octobre ;
                          1,3,5,7,..,25,27,29 novembre ;
                          1,3,..,29,31 décembre ...

Tous les 10 jours, pour 5 apparitions :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5

     ==> (1997 09:00 EDT) 2,12,22 septembre ; 2,12 octobre

Tous les jours de janvier, pour 3 années :

     DTSTART;TZID=US-Eastern:19980101T090000
     RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z;
      BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
     ou
     RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1

     ==> (1998 09:00 EDT) 1-31 janvier
         (1999 09:00 EDT) 1-31 janvier
         (2000 09:00 EDT) 1-31 janvier

Chaque semaine, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;COUNT=10

     ==> (1997 09:00 EDT) 2,9,16,23,30 septembre ; 7,14,21 octobre
         (1997 09:00 EST) 28 octobre ; 4 novembre

Chaque semaine jusqu'au 24 décembre 1997 :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z

     ==> (1997 09:00 EDT) 2,9,16,23,30 septembre ; 7,14,21 octobre
         (1997 09:00 EST) 28 octobre ; 4,11,18,25 novembre;
                          2,9,16,23 décembre

Toutes les deux semaines, indéfiniment :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU

     ==> (1997 09:00 EDT) 2,16,30 septembre ; 14 octobre
         (1997 09:00 EST) 28 octobre ; 11,25 novembre ; 9,23 décembre
         (1998 09:00 EST) 6,20 janvier; février
          ...

Toutes les semaines, les mardi et jeudi, pour 5 semaines :

    DTSTART;TZID=US-Eastern:19970902T090000
    RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
    ou
    RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH

    ==> (1997 09:00 EDT) 2,4,9,11,16,18,23,25,30 septembre ; 2 octobre

Toutes les deux semaines, les lundi, mercredi et vendredi jusqu'au 24 décembre 1997, en commençant le mardi 2 septembre 1997 :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
      BYDAY=MO,WE,FR
     ==> (1997 09:00 EDT) 2,3,5,15,17,19,29 septembre ;
                          1,3,13,15,17 octobre
         (1997 09:00 EST) 27,29,31 octobre ; 10,12,14,24,26,28 novembre;
                          8,10,12,22 décembre

Toutes les deux semaines, les mardi et jeudi, pour 8 apparitions :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH

     ==> (1997 09:00 EDT) 2,4,16,18,30 septembre ; 2,14,16 octobre

Chaque mois, le premier vendredi, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970905T090000
     RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR

     ==> (1997 09:00 EDT) 5 septembre ; 3 octobre
         (1997 09:00 EST) 7 novembre ; 5 décembre
         (1998 09:00 EST) 2 janvier ; 6 février ; 6 mars ; 3 avril
         (1998 09:00 EDT) 1 mai ; 5 juin

Chaque mois, le premier vendredi, jusqu'au 24 décembre 1997 :

     DTSTART;TZID=US-Eastern:19970905T090000
     RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR

     ==> (1997 09:00 EDT) 5 septembre ; 3 octobre
         (1997 09:00 EST) 7 novembre ; 5 décembre

Tous les deux mois, les premier et dernier dimanches du mois, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970907T090000
     RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU

     ==> (1997 09:00 EDT) 7,28 septembre
         (1997 09:00 EST) 2,30 novembre
         (1998 09:00 EST) 4,25 janvier ; 1,29 mars
         (1998 09:00 EDT) 3,31 mai

Tous les mois, le deuxième lundi en partant de la fin du mois, pour 6 mois :

     DTSTART;TZID=US-Eastern:19970922T090000
     RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO

     ==> (1997 09:00 EDT) 22 septembr ; 20 octobre
         (1997 09:00 EST) 17 novembre ; 22 décembre
         (1998 09:00 EST) 19 janvier ; 16 février

Tous les mois, le troisième jour en partant de la fin du mois, indéfiniment :

     DTSTART;TZID=US-Eastern:19970928T090000
     RRULE:FREQ=MONTHLY;BYMONTHDAY=-3

     ==> (1997 09:00 EDT) 28 septembre
         (1997 09:00 EST) 29 octobre ; 28 novembre ; 29 décembre
         (1998 09:00 EST) 29 janvier ; 26 février
          ...

Tous les mois, les deuxième et quinzième jours du mois, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15

     ==> (1997 09:00 EDT) 2,15 septembre ; 2,15 octobre
         (1997 09:00 EST) 2,15 novembre ; 2,15 décembre
         (1998 09:00 EST) 2,15 janvier

Tous les mois, les premier et dernier jours du mois, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970930T090000
     RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1

     ==> (1997 09:00 EDT) 30 septembre ; 1 octobre
         (1997 09:00 EST) 31 octobre ; 1,30 novembre ; 1,31 décembre
         (1998 09:00 EST) 1,31 janvier ; 1 février

Tous les 18 mois, du dixième au quinzième jour du mois, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970910T090000
     RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,
      15

     ==> (1997 09:00 EDT) 10,11,12,13,14,15 septembre
         (1999 09:00 EST) 10,11,12,13 octobre

Tous les mardis, tous les deux mois :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU

     ==> (1997 09:00 EDT) 2,9,16,23,30 septembre
         (1997 09:00 EST) 4,11,18,25 novembre
         (1998 09:00 EST) 6,13,20,27 janvier ; 3,10,17,24,31 mars
          ...

Chaque année, en juin et juillet, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970610T090000
     RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
     ==> (1997 09:00 EDT) 10 juin ; 10 juillet
         (1998 09:00 EDT) 10 juin ; 10 juillet
         (1999 09:00 EDT) 10 juin ; 10 juillet
         (2000 09:00 EDT) 10 juin ; 10 juillet
         (2001 09:00 EDT) 10 juin ; 10 juillet

Remarque : Comme aucun paramètre BYDAY, BYMONTHDAY ou BYYEARDAY n'est défini, le jour est obtenu à partir de "DTSTART"

Tous les deux ans, en janvier, février et mars, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970310T090000
     RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3

     ==> (1997 09:00 EST) 10 mars
         (1999 09:00 EST) 10 janvier ; 10 février ; 10 mars
         (2001 09:00 EST) 10 janvier ; 10 février ; 10 mars
         (2003 09:00 EST) 10 janvier ; 10 février ; 10 mars

Tous les 3 ans, les premier, centième et deux-centième jours, pour 10 apparitions :

     DTSTART;TZID=US-Eastern:19970101T090000
     RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200

     ==> (1997 09:00 EST) 1 janvier
         (1997 09:00 EDT) 10 avril ; 19 juillet
         (2000 09:00 EST) 1 janvier
         (2000 09:00 EDT) 9 avril ; 18 juillet
         (2003 09:00 EST) 1 janvier
         (2003 09:00 EDT) 10 avril ; 19 juillet
         (2006 09:00 EST) 1 janvier

Tous les vingtièmes lundis de l'année, indéfiniment :

     DTSTART;TZID=US-Eastern:19970519T090000
     RRULE:FREQ=YEARLY;BYDAY=20MO

     ==> (1997 09:00 EDT) 19 mai
         (1998 09:00 EDT) 18 mai
         (1999 09:00 EDT) 17 mai
          ...

Le lundi de la semaine 20 (lorsque la semaine commence le lundi, par défaut), indéfiniment :

     DTSTART;TZID=US-Eastern:19970512T090000
     RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO

     ==> (1997 09:00 EDT) 12 mai
         (1998 09:00 EDT) 11 mai
         (1999 09:00 EDT) 17 mai
          ...

Tous les jeudis de mars, indéfiniment :

     DTSTART;TZID=US-Eastern:19970313T090000
     RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH

     ==> (1997 09:00 EST) 13,20,27 mars
         (1998 09:00 EST) 5,12,19,26 mars
         (1999 09:00 EST) 4,11,18,25 mars
          ...

Tous les jeudis de juin, juillet et août, indéfiniment :

     DTSTART;TZID=US-Eastern:19970605T090000
     RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8

     ==> (1997 09:00 EDT) 5,12,19,26 juin ; 3,10,17,24,31 juillet;
                          7,14,21,28 août
         (1998 09:00 EDT) 4,11,18,25 juin ; 2,9,16,23,30 juillet ;
                          6,13,20,27 août
         (1999 09:00 EDT) 3,10,17,24 juin ; 1,8,15,22,29 juillet;
                          5,12,19,26 août
          ...

Tous les vendredi 13, indéfiniment :

     DTSTART;TZID=US-Eastern:19970902T090000
     EXDATE;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13

     ==> (1998 09:00 EST) 13 février ; 13 mars ; 13 novembre
         (1999 09:00 EDT) 13 août
         (2000 09:00 EDT) 13 octobre
          ...

Le premier samedi suivant le premier dimanche du mois, indéfiniment :

     DTSTART;TZID=US-Eastern:19970913T090000
     RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13

     ==> (1997 09:00 EDT) 13 septembre ; 11 octobre
         (1997 09:00 EST) 8 novembre ; 13 décembre
         (1998 09:00 EST) 10 janvier ; 7 février ; 7 mars
         (1998 09:00 EDT) 11 avril ; 9 mai ; 13 juin...
          ...

Tous les 4 ans, le premier mardi qui suit un lundi en novembre, indéfiniment (jour de l'élection du Président des États-Unis) :

     DTSTART;TZID=US-Eastern:19961105T090000
     RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,
      5,6,7,8

     ==> (1996 09:00 EST) 5 novembre
         (2000 09:00 EST) 7 novembre
         (2004 09:00 EST) 2 novembre
          ...

La troisième instance dans le mois d'un mardi, d'un mercredi ou d'un jeudi, pour les 3 prochains mois :

     DTSTART;TZID=US-Eastern:19970904T090000
     RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3

     ==> (1997 09:00 EDT) 4 septembre ; 7 octobre
         (1997 09:00 EST) 6 novembre

L'avant-dernier jour de semaine dans le mois :

     DTSTART;TZID=US-Eastern:19970929T090000
     RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2

     ==> (1997 09:00 EDT) 29 septembre
         (1997 09:00 EST) 30 octobre ; 27 novembre ; 30 décembre
         (1998 09:00 EST) 29 janvier ; 26 février ; 30 mars
          ...

Toutes les 3 heures, entre 09:00 et 17:00, d'un jour particulier :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z

     ==> (2 septembre 1997 EDT) 09:00,12:00,15:00

Toutes les 15 minutes, pour 6 apparitions :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6

     ==> (2 septembre 1997 EDT) 09:00,09:15,09:30,09:45,10:00,10:15

Toutes les 90 minutes, pour 4 apparitions :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4

     ==> (2 septembre 1997 EDT) 09:00,10:30;12:00;13:30

Toutes les 20 minutes, entre 09:00 et 16:40, chaque jour :

     DTSTART;TZID=US-Eastern:19970902T090000
     RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40
     ou
     RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16

     ==> (2 septembre 1997 EDT) 9:00,9:20,9:40,10:00,10:20,..,
                                16:00,16:20,16:40
         (3 septembre 1997 EDT) 9:00,9:20,9:40,10:00,10:20,..,
                                16:00,16:20,16:40
          ...

Un exemple où, à cause du paramètre WKST, les jours générés sont différents :

     DTSTART;TZID=US-Eastern:19970805T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO

     ==> (1997 EDT) 5,10,19,24 août

Le seul changement de WKST, de MO pour SU, produit un résultat différent...

     DTSTART;TZID=US-Eastern:19970805T090000
     RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
     ==> (1997 EDT) 5,17,19,31 août
4.8.6. Propriétés de composant d'alerte

Les propriétés suivantes définissent l'information d'alerte dans les composants de calendrier.

4.8.6.1. Action
Nom de la propriété :

ACTION

But :

Cette propriété définit l'action à invoquer au déclenchement d'une alerte.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété DOIT apparaître une seule fois dans un composant de calendrier "VALARM".

Description :

Chaque composant de calendrier "VALARM" a un type particulier d'action qui lui est associé. Cette propriété définit le type de l'action.

Définition de format :

La propriété est définie par la notation suivante :

     action     = "ACTION" actionparam ":" actionvalue CRLF

     actionparam        = *(";" xparam)

     actionvalue        = "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE"
                        / iana-token / x-name

Exemple :

Voici des exemples de cette propriété dans un composant de calendrier "VALARM" :

     ACTION:AUDIO

     ACTION:DISPLAY

     ACTION:PROCEDURE
4.8.6.2. Compte des répétitions
Nom de la propriété :

REPEAT

But :

Cette propriété indique le nombre de fois à répéter l'alerte après le déclenchement initial.

Type de valeur :

INTEGER

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans un composant de calendrier "VALARM".

Description :

Si l'alerte se déclenche plus d'une fois, cette propriété DOIT alors être définie avec la propriété "DURATION".

Définition de format :

La propriété est définie par la notation suivante :

     repeatcnt  = "REPEAT" repparam ":" integer CRLF
     ; la valeur par défaut est "0

     repparam   = *(";" xparam)

Exemple :

Voici un exemple de cette propriété pour une alerte qui se répète 4 fois de plus après le déclenchement initial de l'alerte avec un délai de 5 minutes :

     REPEAT:4
     DURATION:PT5M
4.8.6.3. Déclenchement
Nom de la propriété :

TRIGGER

But :

Cette propriété indique le moment du déclenchement d'une alerte.

Type de valeur :

Le type de valeur par défaut est DURATION. Le type de valeur peut être changé pour DATE-TIME, auquel cas la valeur DOIT indiquer une valeur DATE-TIME au format UTC.

Paramètres de propriété :

Des paramètres de propriété non standard, de type de données de valeur, d'identificateur de fuseau horaire ou de relation de déclenchement peut être définis sur cette propriété. Le paramètre de propriété de relation de déclenchement DOIT être défini seulement si le type de valeur est DURATION.

Conformité :

Cette propriété DOIT apparaître dans le composant de calendrier "VALARM".

Description :

Dans le composant de calendrier "VALARM", cette propriété définit le moment du déclenchement de l'alerte. Le type de valeur par défaut est DURATION, définissant un temps relatif pour le déclenchement de l'alerte. La durée par défaut est relative au début de l'événement, ou de la tâche, auquel l'alerte est associée. On peut fixer explicitement la durée d'un déclenchement à partir de la fin ou du début de l'événement, ou de la tâche, associé à l'aide du paramètre RELATED. Une valeur de START déclenchera l'alerte au début de l'événement (ou de la tâche) associé. Une valeur de END la déclenchera à la fin de l'événement (ou de la tâche).

La propriété "TRIGGER" peut indiquer une durée positive ou négative. Une alerte avec une durée positive se déclenche après le début ou la fin de l'événement ou de la tâche. Une alerte avec une durée négative se déclenche avant le début ou la fin de l'événement ou de la tâche.

Le paramètre de propriété RELATED n'est pas valide si le type de valeur de la propriété est changé pour DATE-TIME (c'est-à-dire pour un déclenchement d'alerte à date et heure absolue). Si un type de valeur de DATE-TIME est indiqué, alors la valeur de propriété DOIT être définie dans le format de temps UTC. Si on définit un déclenchement absolu sur l'alerte d'un événement ou d'une tâche récurrents, alors l'alerte ne se déclenchera que pour la date et heure absolue indiquée, en même temps que les instances de répétition définies.

Si le déclenchement est de type START, alors la propriété "DTSTART" DOIT être présente dans le composant de calendrier "VEVENT" ou "VTODO" associé. S'il s'agit de l'alerte d'un événement avec un déclenchement de type END, alors la propriété "DTEND" DOIT être présente, ou bien les propriétés "DSTART" et "DURATION" DOIVENT toutes deux l'être, dans le composant de calendrier "VEVENT" associé. S'il s'agit de l'alerte d'une tâche avec un déclenchement de type END, alors la propriété "DUE" DOIT être présente, ou bien les propriétés "DSTART" et "DURATION" DOIVENT toutes deux l'être, dans le composant de calendrier "VTODO".

Les alertes associées à un événement ou à une tâche, définis selon un type de valeur DATE, seront déclenchées par rapport à l'heure 00:00:00 UTC à la date indiquée. Par exemple, pour "DTSTART:19980205, le déclenchement de durée sera relatif à 19980205T000000Z.

Définition de format :

La propriété est définie par la notation suivante :

     trigger    = "TRIGGER" (trigrel / trigabs)

     trigrel    = *(

                ; les paramètres suivants sont OPTIONNELS,
                ;  mais NE DOIVENT PAS apparaître plus d'une fois

                  (";" "VALUE" "=" "DURATION") /
                  (";" trigrelparam) /

                ; le paramètre suivant est OPTIONNEL,
                ;  et PEUT appraître plus d'une fois

                  (";" xparam)
                  ) ":"  dur-value

     trigabs    = 1*(

                ; le paramètre suivant est OBLIGATOIRE,
                ;  mais NE DOIT PAS apparaître plus d'une fois

                  (";" "VALUE" "=" "DATE-TIME") /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                  (";" xparam)

                  ) ":" date-time

Exemples :

Un déclenchement réglé 15 minutes avant le début de l'événement ou de la tâche :

     TRIGGER:-P15M

Un déclenchement réglé 5 minutes après la fin de l'événement ou de la tâche :

     TRIGGER;RELATED=END:P5M

Un déclenchement fixé à une date et heure absolue :

     TRIGGER;VALUE=DATE-TIME:19980101T050000Z
4.8.7. Propriétés de composant de gestion des changements

Les propriétés suivantes définissent l'information de gestion des changements dans les composants de calendrier.

4.8.7.1. Date et heure de création
Nom de la propriété :

CREATED

But :
Cette propriété indique la date et heure de création de l'information de calendrier par l'agent utilisateur de calendrier dans le magasin de calendriers (calendar store).

Remarque : Cela est analogue à la date et heure de création d'un fichier dans un système de fichiers.

Type de valeur :

DATE-TIME

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

La propriété peut apparaître une seule fois dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL".

Description :

La date et heure est une valeur UTC.

Définition de format :

La propriété est définie par la notation suivante :

     created    = "CREATED" creaparam ":" date-time CRLF

     creaparam  = *(";" xparam)

Exemple :

Voici un exemple de cette propriété :

     CREATED:19960329T133000Z
4.8.7.2. Estampille
Nom de la propriété :

DTSTAMP

But :

La propriété indique l'heure et date de création de l'instance d'objet iCalendar.

Type de valeur :

DATE-TIME

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété DOIT apparaître dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL" et "VFREEBUSY".

Description :

La valeur DOIT être définie dans le format de temps UTC.

Cette propriété est également utile pour les protocoles tels que [IMIP] avec des problèmes de latence inhérents pour la livraison du contenu. Cette propriété aidera au séquençage exact des messages contenant des objets iCalendar.

Cette propriété diffère des propriétés "CREATED" et "LAST-MODIFIED". Celles-ci sont utilisées pour indiquer le moment où des données de calendrier particulières ont été créées et modifiées dans le magasin de calendriers. Cela est différent du moment où l'information de la représentation de l'objet iCalendar du service de calendrier a été créée ou modifiée.

Définition de format :

La propriété est définie par la notation suivante :

     dtstamp    = "DTSTAMP" stmparam ":" date-time CRLF

     stmparam   = *(";" xparam)

Exemple :

     DTSTAMP:19971210T080000Z
4.8.7.3. Dernière modification
Nom de la propriété :

LAST-MODIFIED

But :
La propriété indique la date et heure de dernière révision de l'information associée au composant de calendrier dans le magasin de calendriers.

Remarque : Cela est analogue à la date et heure de création d'un fichier dans un système de fichiers.

Type de valeur :

DATE-TIME

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "EVENT", "VTODO", "VJOURNAL" et "VTIMEZONE".

Description :

La valeur de propriété DOIT être définie dans le format de temps UTC.

Définition de format :

La propriété est définie par la notation suivante :

     last-mod   = "LAST-MODIFIED" lstparam ":" date-time CRLF

     lstparam   = *(";" xparam)

Exemple :

Voici un exemple de cette propriété :

     LAST-MODIFIED:19960817T133000Z
4.8.7.4. Numéro de séquence
Nom de la propriété :

SEQUENCE

But :

Cette propriété indique le numéro de séquence de révision du composant de calendrier au sein d'une séquence de révisions.

Type de valeur :

INTEGER

Paramètres de propriété :

Des paramètres de propriété non standard peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO" et "VJOURNAL".

Description :

À la création d'un composant de calendrier, son numéro de séquence est zéro (code décimal 48 US-ASCII). L'agent utilisateur de calendrier (CUA) du gestionnaire (Organizer) l'incrémente de façon monotone à chaque fois que celui-ci révise de manière significative le composant de calendrier. Le numéro de séquence DOIT s'incrémenter lorsque le gestionnaire modifie les propriétés suivantes :

En outre, les changements effectués par le gestionnaire sur d'autres propriétés peuvent aussi forcer l'incrémentation du numéro de séquence. L'agent utilisateur de calendrier (CUA) du gestionnaire DOIT incrémenter le numéro de séquence à chaque modification de propriétés dans le composant de calendrier que le gestionnaire juge menacer la validité du statut de participation des adhérents (Attendee) . Par exemple, changer le lieu d'une réunion pour un autre éloigné peut effectivement influer sur le statut de participation des adhérents.

Le gestionnaire inclut cette propriété dans un objet iCalendar qu'il envoie à un adhérent pour indiquer la version courante du composant de calendrier.

L'adhérent inclut cette propriété dans un objet iCalendar qu'il envoie au gestionnaire pour indiquer la version du composant de calendrier auquel il se réfère.

Le changement du numéro de séquence n'est pas le mécanisme dont se sert un gestionnaire pour demander une réponse des adhérents. Le gestionnaire utilise le paramètre RSVP de la propriété "ATTENDEE" pour indiquer qu'une réponse est demandée aux adhérents.

Définition de format :

Cette propriété est définie par la notation suivante :

     seq = "SEQUENCE" seqparam ":" integer CRLF
     ; la valeur par défaut est "0"

     seqparam   = *(";" xparam)

Exemples :

Voici un exemple de cette propriété pour un composant de calendrier tout juste créé par le gestionnaire :

     SEQUENCE:0

Voici un exemple de cette propriété pour un composant de calendrier révisé deux fois par le gestionnaire :

     SEQUENCE:2
4.8.8. Propriétés de composant diverses

Les propriétés suivantes définissent des informations à propos de diverses caractéristiques des composants de calendrier.

4.8.8.1. Propriétés non standards
Nom de la propriété :

Tout nom de propriété avec le préfixe "X-".

But :

Cette classe de propriété fournit un cadre de définition de propriétés non standards.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans n'importe quel composant de calendrier.

Description :

Le type de contenu MIME de gestion d'agenda et de planification fournit un « mécanisme standard pour faire des choses non standards ». Cette possibilité d'extension est offerte aux développeurs afin de « dépasser les limites » de la version existante du mémoire. Les propriétés d'extension sont indiquées par des noms de propriété et des noms de paramètres de propriété avec le préfixe "X-" (la séquence de caractères LETTRE MAJUSCULE LATINE X suivi du caractère TRAIT-D'UNION). Il est recommandé aux vendeurs d'y accoler à la suite un autre bref préfixe les identifiant. Cela augmente la lisibilité des extensions et minimise une collision possible de noms entre des vendeurs différents. Les agents utilisateurs gérant ce type de contenu sont censés pouvoir interpréter les propriétés et paramètres de propriété d'extension mais ils peuvent les ignorer.

Il n'y a pour l'instant aucune instance d'enregistrement pour les noms des propriétés et paramètres de propriété d'extension. Le type de données de cette propriété est TEXT. En option, le type de données peut être l'un des autres types de données valides.

Définition de format :

La propriété est définie par la notation suivante :

     x-prop     = x-name *(";" xparam) [";" languageparam] ":" text CRLF
        ; les lignes longue de plus de 75 octets devraient être pliées

Exemple :

Voici ce que pourrait être l'extension du vendeur ABC pour une forme sonore de propriété de sujet :

     X-ABC-MMSUBJ;X-ABC-MMSUBJTYPE=wave:http://load.noise.org/mysubj.wav
4.8.8.2. État de la demande
Nom de la propriété :

REQUEST-STATUS

But :

Cette propriété définit le code d'état (status code) renvoyé pour une demande de planification.

Type de valeur :

TEXT

Paramètres de propriété :

Des paramètres de propriété non standard et de langue peuvent être définis sur cette propriété.

Conformité :

Cette propriété peut apparaître dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL" et "VFREEBUSY".

Description :

Cette propriété est utilisée pour retourner le code d'état lié au traitement de l'objet iCalendar associé. Le type de donnée de cette propriété est TEXT.

La valeur se compose d'un élément d'état de retour (return status) succinct, d'un élément de description d'état de retour plus long et, en option, d'un élément de données spécifique d'un état. Les éléments composant la valeur sont séparés par des caractères POINT-VIRGULE (code décimal 59 US-ASCII).

L'état de retour succinct est un triplet d'entiers séparés par des caractères POINT (code décimal 46 US-ASCII), par exemple "3.1.1". Les degrés successifs d'entiers pourvoient au degré successif de granularité du code d'état.

Voici les classes initiales du code d'état de retour. Les méthodes d'objet iCalendar individuelles définiront des codes d'état de retour spécifiques pour ces classes. En outre, on peut définir d'autres classes de code d'état de retour en utilisant le processus d'enregistrement décrit plus loin dans ce mémoire.

     |==============+===============================================|
     |  Code d'état |  Description d'état de retour verbeuse        |
     |   de retour  |                                               |
     |    succinct  |                                               |
     |==============+===============================================|
     |    1.xx      | Succès préliminaire. Cette classe de code     |
     |              | d'état indique que la demande a été traitée   |
     |              | à l'origine mais que l'issue est en attente.  |
     |==============+===============================================|
     |    2.xx      | Réussi. Cette classe d'état de retour indique |
     |              | que la demande a abouti avec succès. En       |
     |              | revanche, le code d'état exact peut indiquer  |
     |              | le choix d'une solution de repli.             |
     |==============+===============================================|
     |    3.xx      | Erreur du client. Cette classe de code d'état |
     |              | indique que la demande a échoué. L'erreur est |
     |              | le fait d'une erreur de syntaxe ou bien d'une |
     |              | erreur sémantique dans la demande formatée du |
     |              | client. Une demande ne devrait pas être       |
     |              | réitérée tant que la condition d'erreur       |
     |              | n'a pas été corrigée.                         |
     |==============+===============================================|
     |    4.xx      | Erreur de programmation. Cette classe de code |
     |              | d'état indique que la demande a échoué.       |
     |              | Une certaine erreur est intervenue au sein    |
     |              | du service de gestion d'agenda et de          |
     |              | planification, non liée à la demande même.    |
     |==============+===============================================|
Définition de format :

La propriété est définie par la notation suivante :

     rstatus    = "REQUEST-STATUS" rstatparam ":"
                  statcode ";" statdesc [";" extdata]

     rstatparam = *(

                ; le paramètre suivant est OPTIONNEL,
                ; mais NE DOIT PAS apparaître plus d'une fois

                (";" languageparm) /

                ; le paramètre suivant est OPTIONNEL
                ;  et PEUT apparaître plus d'une fois

                (";" xparam)

                )

     statcode   = 1*DIGIT *("." 1*DIGIT)
     ; code d'état de retour numérique et hiérarchique

     statdesc   = text
     ; description d'état textuelle

     extdata    = text
     ; données d'exception textuelles. Par exemple, le nom et la valeur
     ;  de la propriété coupable ou la ligne entière de la propriété.

Exemples :

Voici des exemples possibles de cette propriété. Les caractères séparateurs VIRGULE et POINT-VIRGULE dans la valeur de la propriété sont formatés au moyen d'un caractère BARRE OBLIQUE INVERSÉE car ils apparaissent dans une valeur de type texte.

     REQUEST-STATUS:2.0;Success

     REQUEST-STATUS:3.1;Invalid property value;DTSTART:96-Apr-01

     REQUEST-STATUS:2.8; Success\, repeating event ignored. Scheduled
      as a single event.;RRULE:FREQ=WEEKLY\;INTERVAL=2

     REQUEST-STATUS:4.1;Event conflict. Date/time is busy.

     REQUEST-STATUS:3.7;Invalid calendar user;ATTENDEE:
      MAILTO:jsmith@host.com

5. Exemples d'objets iCalendar

Les exemples suivants sont donnés à titre d'information comme source d'objets iCalendar explicatifs en cohérence avec ce type de contenu.

Cet exemple-ci définit une conférence de trois jours commençant le 18 septembre 1996 à 08:00 EDT et se terminant le 20 septembre 1996 à 18:00 EDT :

     BEGIN:VCALENDAR PRODID:-//xyz Corp//NONSGML PDA Calendar Verson
     1.0//EN VERSION:2.0 BEGIN:VEVENT DTSTAMP:19960704T120000Z
     UID:uid1@host.com ORGANIZER:MAILTO:jsmith@host.com
     DTSTART:19960918T143000Z DTEND:19960920T220000Z STATUS:CONFIRMED
     CATEGORIES:CONFERENCE SUMMARY:Networld+Interop Conference
     DESCRIPTION:Networld+Interop Conference
       and Exhibit\nAtlanta World Congress Center\n
      Atlanta\, Georgia END:VEVENT END:VCALENDAR

L'exemple suivant définit une réunion planifiée de groupe commençant le 12 mars 1998 à 08:30 EST et se terminant à 09:30 EST. Le gestionnaire a planifié la réunion avec un ou plusieurs utilisateurs de calendrier dans un groupe. Une indication de fuseau horaire pour l'est des États-Unis est définie :

     BEGIN:VCALENDAR
     PRODID:-//RDU Software//NONSGML HandCal//EN
     VERSION:2.0
     BEGIN:VTIMEZONE
     TZID:US-Eastern
     BEGIN:STANDARD
     DTSTART:19981025T020000
     RDATE:19981025T020000
     TZOFFSETFROM:-0400
     TZOFFSETTO:-0500
     TZNAME:EST
     END:STANDARD
     BEGIN:DAYLIGHT
     DTSTART:19990404T020000
     RDATE:19990404T020000
     TZOFFSETFROM:-0500
     TZOFFSETTO:-0400
     TZNAME:EDT
     END:DAYLIGHT
     END:VTIMEZONE
     BEGIN:VEVENT
     DTSTAMP:19980309T231000Z
     UID:guid-1.host1.com
     ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
     ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
      MAILTO:employee-A@host.com
     DESCRIPTION:Project XYZ Review Meeting
     CATEGORIES:MEETING
     CLASS:PUBLIC
     CREATED:19980309T130000Z
     SUMMARY:XYZ Project Review
     DTSTART;TZID=US-Eastern:19980312T083000
     DTEND;TZID=US-Eastern:19980312T093000
     LOCATION:1CP Conference Room 4350
     END:VEVENT
     END:VCALENDAR

Voici un exemple d'objet iCalendar transmis dans un message MIME en une seule partie de corp composant un type de contenu "text/calendar" :

     TO:jsmith@host1.com
     FROM:jdoe@host1.com
     MIME-VERSION:1.0
     MESSAGE-ID:<id3@host1.com>
     CONTENT-TYPE:text/calendar

     BEGIN:VCALENDAR
     METHOD:xyz
     VERSION:2.0
     PRODID:-//ABC Corporation//NONSGML My Product//EN
     BEGIN:VEVENT
     DTSTAMP:19970324T1200Z
     SEQUENCE:0
     UID:uid3@host1.com
     ORGANIZER:MAILTO:jdoe@host1.com
     ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com
     DTSTART:19970324T123000Z
     DTEND:19970324T210000Z
     CATEGORIES:MEETING,PROJECT
     CLASS:PUBLIC
     SUMMARY:Calendaring Interoperability Planning Meeting
     DESCRIPTION:Discuss how we can test c&s interoperability\n
      using iCalendar and other IETF standards.
     LOCATION:LDB Lobby
     ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
      conf/bkgrnd.ps
     END:VEVENT
     END:VCALENDAR

Voici un exemple de tâche due le 15 avril 1998. Une alerte sonore a été programmée pour prévenir l'utilisateur de calendrier à midi la veille du jour d'achèvement prévu, et se répéter quatre fois toutes les heures. La définition de la tâche a été modifiée deux fois depuis qu'elle a été créée :

     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

Voici un exemple d'écriture de journal :

     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

Voici un exemple de publication d'information de temps occupé. L'objet iCalendar pourrait être placé dans la ressource de réseau www.host.com/calendar/busytime/jsmith.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

6. Pratiques recommandées

Ces pratiques recommandées devraient être observées afin d'assurer une prise en compte cohérente des cas suivants d'objet iCalendar.

  1. 1. Les lignes de contenu longues de plus de 75 octets DEVRAIENT être pliées (folded) ;
  2. 2. Une entrée de calendrier avec une propriété "DTSTART" mais sans propriété "DTEND" n'occupe aucune durée. Elle sert à représenter un événément associé à une date et heure de jour de calendrier donné tel qu'un anniversaire. Puisque l'événement n'a aucune durée, on NE DOIT PAS l'utiliser pour enregistrer du temps occupé quoi que puisse être la valeur de la propriété "TRANSP" ;
  3. 3. Lorsque les propriétés "DTSTART" et "DTEND", pour les composants de calendrier "VEVENT", "VJOURNAL" et "VFREEBUSY", et les propriétés "DTSTART" et "DUE", pour les composants de calendrier "VTODO", ont le même type de données de valeur (par exemple, DATE-TIME), elles DEVRAIENT définir des valeurs dans le même format (par exemple, le format de temps UTC) ;
  4. 4. Lorsque la combinaison des propriétés "RRULE" et "RDATE" sur un objet iCalendar produit plusieurs instances avec la même date et heure de début, elles devraient fusionner en une seule instance et être considérée comme telle ;
  5. 5. Lorsqu'un utilisateur de calendrier reçoit plusieurs demandes pour le même composant de calendrier (par exemple, une méthode "REQUEST" pour un composant de calendrier "VEVENT") en conséquence de sa présence sur de multiples listes de diffusion indiquées par les propriétés "ATTENDEE" dans la demande, il ne DEVRAIT répondre qu'à une seule des demandes. L'utilisateur de calendrier DEVRAIT aussi indiquer (à l'aide du paramètre MEMBER de la propriété "ATTENDEE") de quelle liste de diffusion il est membre ;
  6. 6. Une mise en œuvre peut tronquer la valeur d'une propriété "SUMMARY" à 255 caractères ;
  7. 7. Lorsqu'une mise en œuvre ne gère pas les secondes d'une minute, on DEVRAIT alors indiquer une valeur de "00" pour le composant des secondes dans une valeur de temps ;
  8. 8. Lorsque le paramètre de type de valeur (VALUE) contient une valeur de type inconnu, on DEVRAIT la traiter comme étant de type TEXT ;
  9. 9. Les valeurs de paramètre TZURL NE DEVRAIENT PAS être définies comme une adresse URI de type FILE. Cette forme d'adresse URI peut être utile au sein d'une organisation mais elle pose des problèmes dans Internet ;
  10. 10. Quelques valeurs possibles en anglais pour la propriété "CATEGORIES" comprennent : "ANNIVERSARY", "APPOINTMENT", "BUSINESS", "EDUCATION", "HOLIDAY", "MEETING", "MISCELLANEOUS", "NON-WORKING HOURS", "NOT IN OFFICE", "PERSONAL", "PHONE CALL", "SICK DAY", "SPECIAL OCCASION", "TRAVEL", "VACATION". Les catégories peuvent être définies en n'importe quelle langue enregistrée ;
  11. 11. Quelques valeurs possibles en anglais pour la propriété "RESOURCES" comprennent : "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO PHONE", "VEHICLE". Les ressources peuvent être définies en n'importe quelle langue enregistrée.

7. Enregistrement des éléments de type de contenu

Cette section fournit la marche à suivre pour l'enregistrement de méthodes d'objet iCalendar du type de contenu MIME de gestion d'agenda et de planification et de propriétés nouvelles ou modifiées.

7.1. Enregistrement des méthodes d'objet iCalendar nouvelles et modifiées

L'enregistrement de nouvelles méthodes d'objet iCalendar de type de contenu MIME de gestion d'agenda et de planification se fait au travers de la publication d'un appel à commentaires (RFC) IETF. L'enregistrement des modifications d'une méthode d'objet iCalendar se fait au travers de la publication d'une révision du RFC définissant la méthode.

7.2. Enregistrement de nouvelles propriétés

Cette section décrit les procédures par lesquelles de nouvelles propriétés ou valeurs de propriété énumérées du type de contenu MIME de gestion d'agenda et de planification peuvent être enregistrées auprès de l'IANA. On peut utiliser des propriétés non-IANA dans le cadre d'un accord bilatéral, à condition que les noms des propriétés concernées respectent la convention de préfixe "X-".

Les procédures définies ici sont conçues dans le but de permettre au public de commenter et d'examiner les nouvelles propriétés, tout en n'occasionnant qu'une gêne légère pour la définition des nouvelles propriétés.

L'enregistrement d'une nouvelle propriété passe par les étapes suivantes.

7.2.1. Définir la propriété

On définit la propriété en remplissant le formulaire suivant :

     To: ietf-calendar@imc.org

     Subject: Registration of text/calendar MIME property XXX

     Property name:

     Property purpose:

     Property value type(s):

     Property parameter(s):

     Conformity:

     Description:

     Format definition:

     Examples:

Voici la signification de chaque champ du formulaire :

Property name :
Le nom de la propriété tel qu'il apparaîtra dans la ligne « property: value » du type de contenu MIME "text/calendar", à gauche du caractère DEUX-POINTS ":".
Property purpose :
Le but de la propriété (par exemple, pour indiquer un délégué pour l'événement ou la tâche, etc.). Donner une description succincte.
Property value type(s) :
Tous les types de valeur valides pour la propriété doivent être indiqués. Le type de valeur par défaut doit également être indiqué. Si un nouveau type de valeur est défini, il doit être déclaré dans cette section.
Property parameter(s) :
Tous les paramètres de propriété valides de la propriété doivent être indiqués.
Conformity :
Les composants de calendrier où la propriété peut apparaître doivent être indiqués.
Description :
Les remarques particulières à propos de la propriété, comment l'utiliser, etc.
Format definition :
La définition ABNF de la propriété doit être indiquée.
Examples :
Un ou plusieurs exemples d'instances de la propriété doivent être fournis.
7.2.2. Publier la définition de la propriété

La description de propriété DOIT être publiée sur la nouvelle liste de discussion de propriété ietf-calendar@imc.org.

7.2.3. Accorder un délai pour les commentaires

La discussion à propos de la nouvelle propriété DOIT avoir lieu sur la liste pour un minimum de 2 semaines. Un consensus DOIT être réuni autour de la propriété avant de passer à l'étape suivante.

7.2.4. Soumettre la propriété pour approbation

Une fois la période de commentaires écoulée et le proposant convaincu de la réunion d'un consensus autour de la propriété, la demande d'enregistrement devrait être soumise à l'approbation du vérificateur des méthodes (Method Reviewer). Le vérificateur des méthodes est adjoint aux responsables de domaine d'application (Application Area Directors), et il peut soit accepter, soit rejeter l'enregistrement de la propriété. Un enregistrement accepté devrait être transmis par le vérificateur des méthodes à l'IANA pour être inclus dans le registre officiel des méthodes de l'IANA. L'enregistrement peut être refusé pour l'une des raisons suivantes : 1) la période de commentaires est insuffisante ; 2) le consensus n'est pas réalisé ; 3) les lacunes techniques signalées dans la liste ou ailleurs ne sont pas résolues. Le proposant peut faire appel auprès de l'IESG de la décision du vérificateur des méthodes de rejeter une propriété, ou il peut répondre aux objections soulevées et soumettre à nouveau la propriété.

7.3. Contrôle des modifications de propriétés

Les propriétés existantes peuvent être modifiées en utilisant le même processus que pour leur enregistrement :

  1. 1. Définir la modification ;
  2. 2. Publier la modification ;
  3. 3. Accorder un délai pour les commentaires ;
  4. 4. Soumettre la propriété pour approbation.

Notez que l'auteur original ou tout autre tiers intéressé peuvent proposer la modification d'une propriété existante, mais une telle modification ne devrait être proposée que s'il y a des omissions ou des erreurs graves dans le mémoire publié. Le vérificateur des méthodes peut s'opposer à une modification si celle-ci n'est pas rétrocompatible, mais il n'a pas obligation à le faire.

Les définitions de propriétés ne peuvent pas être supprimées du registre de l'IANA, mais les propriété qui ne sont plus jugées utiles peuvent être déclarées obsolètes (OBSOLETE) en changeant leur champ « intended use ».

8. Références

[IMIP]
Dawson, F., Mansour, S. and S. Silverberg, iCalendar Message-based Interoperability Protocol (IMIP), RFC 2447, novembre 1998.
[ITIP]
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, novembre 1998.
[ISO 8601]
ISO 8601, Data elements and interchange formats- Information interchange--Representation of dates and times, International Organization for Standardization, juin 1988.
[ISO 9070]
ISO/IEC 9070, Information Technology_SGML Support Facilities--Registration Procedures for Public Text Owner Identifiers, Second Edition, International Organization for Standardization, avril 1991.
[RFC 822]
Crocker, D., Standard for the Format of ARPA Internet Text Messages, STD 11, RFC 822, août 1982.
[RFC 1738]
Berners-Lee, T., Masinter, L. and M. McCahill, Uniform Resource Locators (URL), RFC 1738, décembre 1994.
[RFC 1766]
Alvestrand, H., Tags for the Identification of Languages, RFC 1766, mars 1995.
[RFC 2045]
Freed, N. and N. Borenstein, Multipurpose Internet Mail Extensions (MIME) - Part One: Format of Internet Message Bodies, RFC 2045, novembre 1996.
[RFC 2046]
Freed, N. and N. Borenstein, Multipurpose Internet Mail Extensions (MIME) - Part Two: Media Types, RFC 2046, novembre 1996.
[RFC 2048]
Freed, N., Klensin, J. and J. Postel, Multipurpose Internet Mail Extensions (MIME) - Part Four: Registration Procedures, RFC 2048, janvier 1997.
[RFC 2119]
Bradner, S., Key words for use in RFCs to Indicate Requirement Levels, BCP 14, RFC 2119, mars 1997.
[RFC 2234]
Crocker, D. and P. Overell, Augmented BNF for Syntax Specifications: ABNF, RFC 2234, novembre 1997.
[RFC 2279]
Yergeau, F., UTF-8, a transformation format of ISO 10646, RFC 2279, janvier 1998.
[RFC 2425]
Howes, T., Smith, M. and F. Dawson, A MIME Content-Type for Directory Information, RFC 2425, septembre 1998.
[RFC 2426]
Dawson, F. and T. Howes, vCard MIME Directory Profile, RFC 2426, septembre 1998.
[TZ]
Olson, A.D., et al, Time zone code and data, ftp://elsie.nci.nih.gov/pub/, mise à jour périodique.
[VCAL]
Internet Mail Consortium, vCalendar - The Electronic Calendaring and Scheduling Exchange Format, http://www.imc.org/pdi/vcal-10.txt, 18 septembre 1996.

9. Remerciements

Un grand merci au groupe de travail Calendaring and Scheduling de l'IETF ainsi qu'aux personnes suivantes ayant participé à l'élaboration, la relecture et la discussion de ce mémoire :

Roland Alden, Harald T. Alvestrand, Eric Berman, Denis Bigorgne, John Binici, Bill Bliss, Philippe Boucher, Steve Carter, Andre Courtemanche, Dave Crocker, David Curley, Alec Dun, John Evans, Ross Finlayson, Randell Flint, Ned Freed, Patrik Faltstrom, Chuck Grandgent, Mark Handley, Steve Hanna, Paul B. Hill, Paul Hoffman, Ross Hopson, Mark Horton, Daryl Huff, Bruce Kahn, C. Harald Koch, Ryan Jansen, Don Lavange, Antoine Leca, Theodore Lorek, Steve Mansour, Skip Montanaro, Keith Moore, Cecil Murray, Chris Newman, John Noerenberg, Ralph Patterson, Pete Resnick, Keith Rhodes, Robert Ripberger, John Rose, Doug Royer, Andras Salamar, Ted Schuh, Vinod Seraphin, Derrick Shadel, Ken Shan, Andrew Shuman, Steve Silverberg, William P. Spencer, John Sun, Mark Towfiq, Yvonne Tso, Robert Visnov, James L. Weiner, Mike Weston, William Wyatt.

10. Coordonnées des auteurs et des présidents

Les coordonnées suivantes sont fournies dans le format de carte de visite électronique MIME-VCARD.

Les auteurs de ce mémoire :

   BEGIN:VCARD
   VERSION:3.0
   N:Dawson;Frank
   FN:Frank Dawson
   ORG:Lotus Development Corporation
   ADR;TYPE=WORK,POSTAL,PARCEL:;;6544 Battleford Drive;
    Raleigh;NC;27613-3502;USA
   TEL;TYPE=WORK,MSG:+1-919-676-9515
   TEL;TYPE=WORK,FAX:+1-919-676-9564
   EMAIL;TYPE=PREF,INTERNET:Frank_Dawson@Lotus.com
   EMAIL;TYPE=INTERNET:fdawson@earthlink.net
   URL:http://home.earthlink.net/~fdawson
   END:VCARD
   BEGIN:VCARD
   VERSION:3.0
   N:Stenerson;Derik
   FN:Derik Stenerson
   ORG:Microsoft Corporation
   ADR;TYPE=WORK,POSTAL,PARCEL:;;One Microsoft Way;
    Redmond;WA;98052-6399;USA
   TEL;TYPE=WORK,MSG:+1-425-936-5522
   TEL;TYPE=WORK,FAX:+1-425-936-7329
   EMAIL;TYPE=INTERNET:deriks@Microsoft.com
   END:VCARD

L'objet iCalendar est le résultat des travaux du groupe de travail Calendaring and Scheduling de l'Internet Engineering Task Force. Le président de ce groupe de travail :

   BEGIN:VCARD
   VERSION:3.0
   N:Ganguly;Anik
   FN:Anik Ganguly
   ORG: Open Text Inc.
   ADR;TYPE=WORK,POSTAL,PARCEL:;Suite 101;38777 West Six Mile Road;
    Livonia;MI;48152;USA
   TEL;TYPE=WORK,MSG:+1-734-542-5955
   EMAIL;TYPE=INTERNET:ganguly@acm.org
   END:VCARD

Le vice-président de ce groupe de travail :

   BEGIN:VCARD
   VERSION:3.0
   N:Moskowitz;Robert
   FN:Robert Moskowitz
   EMAIL;TYPE=INTERNET:rgm-ietf@htt-consult.com
   END:VCARD