Groupe de travail Réseau	B. Desruisseaux, éd., Oracle
Request for Comments : 5545	septembre 2009
RFC rendue obsolète : 2445	
Catégorie : Sur la voie de la normalisation	Traduction Claude Brière de L'Isle

Spécification d'objet central de calendrier 
et de programmation Internet (iCalendar)

Résumé
Le présent document définit les formats de données iCalendar pour représenter et échanger les informations de calendrier et de programmation comme des événements, des choses à faire (to-do), des entrées de journal, et des informations de temps libre/occupés, indépendamment de tout service ou protocole de calendrier particulier.

Statut de ce mémoire
Ceci est un document de l’Internet sur la voie de la normalisation.

Le présent document a été produit par l’équipe d’ingénierie de l’Internet (IETF). Il représente le consensus de la communauté de l’IETF. Il a subi une révision publique et sa publication a été approuvée par le groupe de pilotage de l’ingénierie de l’Internet (IESG). Tous les documents approuvés par l’IESG ne sont pas candidats à devenir une norme de l’Internet ; voir la Section 2 de la RFC5741.

Les informations sur le statut actuel du présent document, tout errata, et comment fournir des réactions sur lui peuvent être obtenues à http://www.rfc-editor.org/info/rfc5545.

Notice de droits de reproduction
Copyright (c) 2009 IETF Trust et les personnes identifiées comme auteurs du document. Tous droits réservés.

Le présent document est soumis au BCP 78 et aux dispositions légales de l’IETF Trust qui se rapportent aux documents de l’IETF (http://trustee.ietf.org/license-info) en vigueur à la date de publication de ce document. Prière de revoir ces documents avec attention, car ils décrivent vos droits et obligations par rapport à ce document. Les composants de code extraits du présent document doivent inclure le texte de licence simplifié de BSD comme décrit au paragraphe 4.e des dispositions légales du Trust et sont fournis sans garantie comme décrit dans la licence de BSD simplifiée.

Le présent document peut contenir des matériaux provenant de documents de l’IETF ou de contributions à l’IETF publiées ou rendues disponibles au public avant le 10 novembre 2008. La ou les personnes qui ont le contrôle des droits de reproduction sur tout ou partie de ces matériaux peuvent n’avoir pas accordé à l’IETF Trust le droit de permettre des modifications de ces matériaux en dehors du processus de normalisation de l’IETF. Sans l’obtention d’une licence adéquate de la part de la ou des personnes qui ont le contrôle des droits de reproduction de ces matériaux, le présent document ne peut pas être modifié en dehors du processus de normalisation de l’IETF, et des travaux dérivés ne peuvent pas être créés en dehors du processus de normalisation de l’IETF, excepté pour le formater en vue de sa publication comme RFC ou pour le traduire dans une autre langue que l’anglais.
Table des matières
1. Introduction	3
2. Grammaire et conventions de base	4
2.1 Conventions de formatage	4
2.2 Mémoires en rapport	5
3. Spécification d'objet iCalendar	5
3.1 Lignes de contenu	6
3.1.1 Séparateurs de liste et de champ	7
3.1.2 Valeurs multiples	7
3.1.3 Contenu binaire	8
3.1.4 Jeu de caractères	8
3.2 Paramètres de propriété	8
3.2.1 Autre représentation de texte	9
3.2.2 Nom commun	10
3.2.3 Type d'utilisateur de calendrier	10
3.2.4 Délégants	10
3.2.5 Délégués	10
3.2.6 Référence d'entrée de répertoire	11
3.2.7 Codage en ligne	11
3.2.8 Type de format	12
3.2.9 Type de temps libre/occupé	12
3.2.10. Langage	12
3.2.11 Groupe ou liste de membres	13
3.2.12 État de participation	13
3.2.13 Gamme d'identifiants de récurrence	14
3.2.14 Relation de déclenchement d'alarme	14
3.2.15 Type de relations	14
3.2.16 Rôle de participation 	15
3.2.17 Attentes de RSVP	15
3.2.18 Sent By	15
3.2.19 Identifiant de zone horaire	16
3.2.20 Types de données de valeur	16
3.3 Types de données de valeur de propriété	17
3.3.1 Binaire	17
3.3.2 Booléen	18
3.3.3 Adresse d'utilisateur de calendrier	18
3.3.4 Date	18
3.3.5 Date-heure	18
3.3.6 Durée	20
3.3.7 Flottant	20
3.3.8 Entier	21
3.3.9 Période de temps	21
3.3.10 Règle de récurrence	22
3.3.11 Texte	25
3.3.12 Heure	26
3.3.13 URI	27
3.3.14 Décalage à l'UTC	28
3.4 Objet iCalendar 	28
3.5 Propriété	28
3.6 Composants de calendrier	29
3.6.1 Composant d'événement	29
3.6.2 Composant To-Do 	31
3.6.3 Composant Journal	32
3.6.4 Composant Libre/occupé	33
3.6.5 Composant Zone horaire	35
3.6.6 Composant Alarme	40
3.7 Propriétés de calendrier	42
3.7.1 Échelle de calendrier	42
3.7.2 Méthode	43
3.7.3 Identifiant de produit	43
3.7.4 Version	43
3.8 Propriétés de composant	44
3.8.1 Propriétés descriptives de composant	44
3.8.2 Propriétés de composant Date et heure	50
3.8.3 Propriétés de composant de zone horaire	54
3.8.4 Propriétés de composant de relation	56
3.8.5 Propriétés de composant de récurrence	61
3.8.5.3 Règle de récurrence	63
3.8.6 Propriétés de composant d'alarme	68
3.8.7 Propriétés de composant de gestion de changement	70
3.8.7.3 Dernière modification	71
4. Exemples d'objets iCalendar	74
5. Pratiques recommandées	77
6. Considérations d'internationalisation	77
7. Considérations sur la sécurité	77
8. Considérations relatives à l'IANA	78
8.1 Enregistrement de type de support iCalendar	78
8.2. Enregistrement de nouveaux éléments iCalendar	79
8.2.1 Procédure d'enregistrement des éléments iCalendar	79
8.2.2 Gabarit d'enregistrement pour les composants	79
8.2.3 Gabarit d'enregistrement pour les propriétés	80
8.2.4 Gabarit d'enregistrement pour les paramètres	80
8.2.5 Gabarit d'enregistrement pour les types de données de valeur	80
8.2.6 Gabarit d'enregistrement pour les valeurs	80
8.3 Registres initiaux d'éléments iCalendar	80
8.3.1 Registre des composants	81
8.3.2 Registre des propriétés	81
8.3.3 Registre des paramètres	82
8.3.4 Registre des types de données de valeur	82
8.3.5 Registre des types d'utilisateur de calendrier	82
8.3.6 Registre des types de temps libre/occupé	82
8.3.7 Registre des statuts de participation	82
8.3.8 Registre des types de telations	82
8.3.9 Registre des rôles de participation	82
8.3.10 Registre des actions	82
8.3.11 Registre des classifications	82
8.3.12 Registre des méthodes	82
9. Remerciements	83
10. Références	83
10.1 Références normatives	83
10.2 Références pour information	84
Appendice A. Différences avec la RFC 2445	84
A.1 Nouvelles restrictions	84
A.2 Restrictions supprimées	85
A.3 Caractéristiques déconseillées	85
Adresse de l'éditeur	85

 	1.	Introduction

L'utilisation des calendriers et de la programmation a crû considérablement dans la dernière décennie. Le commerce d'entreprise et inter entreprises est devenu dépendant de la programmation rapide des événements et actions en utilisant ces technologies de l'information. Le présent mémoire est destiné à augmenter le niveau d'interopérabilité possible entre des applications dissimilaires de calendrier et programmation. Le présent mémoire définit un type de contenu MIME pour l'échange d'informations électroniques de calendrier et de programmation. La spécification d'objets cœurs de calendrier et programmation Internet, ou iCalendar, permet la saisie et l'échange des informations normalement mémorisées dans une application de calendrier et de programmation, comme un gestionnaire d'informations personnelles (PIM, Personal Information Manager) ou un produit de programmation de groupe.

Le format iCalendar convient comme format d'échange entre les applications ou systèmes. Le format est défini en termes de type de contenu MIME. Cela permet que l'objet soit échangé en utilisant plusieurs transports, incluant mais sans se limiter, à SMTP, HTTP, un système de fichiers, des protocoles interactifs tels que l'utilisation d'un presse papier à mémoire ou des interactions de glisser-déposer, une communication asynchrone en point à point, un transport sur réseau filaire, ou une forme de transport sans fil comme l'infra rouge.

Le présent mémoire donne aussi la définition des méthodes d'objet iCalendar qui vont transposer ce type de contenu en un ensemble de messages pour prendre en charge les opérations de calendrier et de programmation comme de demander, répondre, modifier, et annuler des réunions ou rendez-vous, des choses à faire, et des entrées de journal. Les méthodes d'objet iCalendar peuvent être utilisées pour définir d'autres opérations de calendrier et de programmation comme de demander les données de temps libre/occupé et y répondre. Un tel protocole de programmation est défini dans le protocole d'interopérabilité iCalendar indépendant du transport (iTIP, iCalendar Transport-independent Interoperability Protocol) défini dans la [RFC5546].

Le présent mémoire inclut aussi une grammaire formelle pour le type de contenu fondé sur l'ABNF Internet défini dans la [RFC5234]. Cet ABNF est exigé pour la mise en œuvre des analyseurs et pour servir de référence définitive quand des ambiguïtés ou des questions se posent lors de l'interprétation des définitions en prose descriptive de ce mémoire. Des restrictions supplémentaires qui ne pourraient pas être facilement exprimées avec la syntaxe ABNF sont spécifiées comme des commentaires dans l'ABNF. Les commentaires avec des déclarations normatives devraient être traitées comme telles.

 	2.	Grammaire et conventions de base

Les mots clés "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDE", "PEUT", et "FACULTATIF" en majuscules dans ce document sont à interpréter comme décrit dans le BCP 14, [RFC2119].

Le présent mémoire utilise à la fois une prose descriptive et une notation plus formelle pour définir le format de calendrier et de programmation.

La notation utilisée dans le présent mémoire est la notation ABNF de la [RFC5234]. Les lecteurs qui ont l'intention de mettre en œuvre le format défini dans le présent mémoire devraient être familiarisés avec cette notation afin d'interpréter correctement les spécifications du présent mémoire.

Toutes les valeurs numériques utilisées dans le présent mémoire sont en notation décimale.

Tous les noms de propriétés, de paramètres de propriété, de valeurs de propriété énumérées, et de valeurs de paramètre de propriété sont insensibles à la casse. Cependant, toutes les autres valeurs de propriété sont sensibles à la casse, sauf mention contraire.

Note : toutes les notes rédactionnelles, comme celle-ci, sont en retrait pour donner au lecteur des informations supplémentaires. Ces informations ne sont pas essentielles pour la construction d'une mise en œuvre conforme au présent mémoire. Les informations sont fournies pour souligner une ou des caractéristiques particulières du mémoire.

Le format de l'objet iCalendar se fonde sur la syntaxe du type de supports text/directory [RFC2425]. Bien que l'objet iCalendar ne soit pas un profil de type de supports text/directory, il réutilise certains des éléments de la spécification de la [RFC2425].

 	2.1	Conventions de formatage
Les éléments définis dans le présent mémoire sont définis en prose. Beaucoup des termes utilisés pour les décrire ont une utilisation courante qui est différente de l'usage standard dans le présent mémoire. Afin de faire référence, dans le présent mémoire, aux éléments du modèle de calendrier et programmation, aux objets centraux (le présent mémoire), ou au protocole d'interopérabilité [RFC5546] des conventions de formatage ont été utilisées. Les rôles de calendrier et programmation sont notés dans des chaînes de texte entre guillemets dont le premier caractère de chaque mot est en majuscules. Par exemple, "Organisateur" se réfère au rôle de "Utilisateur de calendrier" au sein du protocole de programmation défini par la [RFC5546]. Les composants de calendrier définis par le présent mémoire sont notés avec des chaînes de texte en majuscules entre guillemets. Tous les composants de calendrier commencent par la lettre "V". Par exemple, "VEVENT" se réfère au composant de calendrier d'événement, "VTODO" se réfère au composant de calendrier chose à faire, et "VJOURNAL" se réfère au composant de calendrier journal quotidien. Les méthodes de programmation définies par iTIP [RFC5546] sont notés avec des chaînes de texte en majuscules, entre guillemets. Par exemple, "REQUEST" se réfère à la méthode pour demander la création ou la modification d'un composant de calendrier de programmation, et "REPLY" se réfère à la méthode qu'utilise un receveur pour mettre à jour son état par rapport à l'"Organisateur" du composant de calendrier.

Les propriétés définies par le présent mémoire sont notées avec des chaînes de texte en majuscules entre guillemets, précédées du mot "propriété". Par exemple, la propriété "ATTENDEE" (participant) se réfère à la propriété iCalendar utilisée pour porter l'adresse de calendrier d'un utilisateur de calendrier. Les paramètres de propriétés définis par le présent mémoire sont notés avec une chaîne de texte en minuscules, entre guillemets, précédée du mot "paramètre". Par exemple, le paramètre "valeur" se réfère au paramètre de propriété iCalendar utilisé pour outrepasser le type de valeur par défaut pour une valeur de propriété. Les valeurs énumérées définies par le présent mémoire sont notées avec un texte en majuscules, soit seules, soit précédées du mot "valeur". Par exemple, la valeur "MINUTELY" peut être utilisée avec le composant "FREQ" du type de valeur "RECUR" pour spécifier des composants répétés sur la base d'un intervalle d'une minute ou plus.

Le tableau suivant fait la liste des différents caractères du jeu de caractères [US-ASCII] qui est référencé dans le présent document. Pour chaque caractère, le tableau spécifie le nom du caractère utilisé dans ce document, avec son codet décimal en US-ASCII.

Nom de caractère	Codet décimal	Signification
HTAB	  9	tabulation horizontale
LF	 10	saut à la ligne
CR	 13	retour chariot
DQUOTE	 22	guillemet (")
SPACE	 32	espace
PLUS SIGN	 43	signe plus (+)
COMMA	 44	virgule (,)
HYPHEN-MINUS	 45	tiret, signe moins (-)
PERIOD	 46	point (.)
SOLIDUS	 47	barre transversale oblique (/)
COLON	 58	deux-points (:)
SEMICOLON	 59	point-virgule (;)
LATIN CAPITAL LETTER N	 78	N majuscule
LATIN CAPITAL LETTER T	 84	T majuscule
LATIN CAPITAL LETTER X	 88	X majuscule
LATIN CAPITAL LETTER Z	 90	Z majuscule
BACKSLASH	 92	barre oblique inverse (\)
LATIN SMALL LETTER N	110	n minuscule

 	2.2	Mémoires en rapport
Les développeurs devront être familiarisés avec plusieurs autres mémoires qui, avec le présent mémoire, forment un cadre pour les normes Internet de calendrier et programmation. Le présent mémoire spécifie le cœur de spécification des objets, types de valeurs, propriétés, et paramètres de propriété.

o	iTIP [RFC5546] spécifie un protocole d'interopérabilité pour la programmation entre les différentes mises en œuvre;

o	Le protocole d'interopérabilité iCalendar fondé sur le message (iMIP, iCalendar Message-Based Interoperability Protocol) [RFC6047] spécifie un lien de messagerie électronique Internet pour la [RFC5546].

Le présent mémoire ne tente pas de répéter la spécification des concepts ou définitions de ces autres mémoires. Lorsque possible, des références sont faites au mémoire qui fournit la spécification de ces concepts ou définitions.

 	3.	Spécification d'objet iCalendar

Les paragraphes qui suivent définissent les détails d'une spécification d'objet du cœur de calendrier et programmation. L'objet de cœur de calendrier et programmation est une collection d'informations de calendrier et de programmation. Normalement, ces informations vont consister en un flux iCalendar avec un ou plusieurs objets iCalendar. Le corps de l'objet iCalendar consiste en une séquence de propriétés de calendrier et un ou plusieurs composants de calendrier.

Le paragraphe 3.1 définit le format de ligne de contenu ; le paragraphe 3.2 définit le format de paramètre de propriété ; le paragraphe 3.3 définit les types de données des valeurs de propriété ; le paragraphe 3.4 définit le format d'objet iCalendar ; le paragraphe 3.5 définit le format de propriété iCalendar ; le paragraphe 3.6 définit le format de composant de calendrier ; le paragraphe 3.7 définit les propriétés de calendrier, et le paragraphe 3.8 définit les propriétés de composant de calendrier.

Ces informations sont destinées à faire partie intégrante de l'enregistrement de type de contenu MIME. De plus, ces informations peuvent être utilisées indépendamment de cet enregistrement de contenu. En particulier, le présent mémoire a une applicabilité directe pour être utilisé comme format d'échange de calendrier et programmation dans des mécanismes de transport fondés sur le fichier, la mémoire, ou le réseau.

 	3.1	Lignes de contenu
L'objet iCalendar est organisé en lignes individuelles de texte, appelées lignes de contenu. Les lignes de contenu sont délimitées par des coupures de ligne, qui sont une séquence CRLF (caractère CR suivi par le caractère LF).

Les lignes de texte NE DEVRAIENT PAS faire plus de 75 octets, sans compter la coupure de ligne. Les longues lignes de contenu DEVRAIENT être coupées en plusieurs représentations de ligne en utilisant une technique de "repli" de ligne. C'est-à-dire, une longue ligne peut être partagée entre deux caractères quelconques en insérant un CRLF immédiatement suivi par un seul caractère d'espace blanche linéaire (c'est-à-dire, SPACE ou HTAB). Toute séquence de CRLF suivie immédiatement d'un seul caractère espace est ignorée (c'est-à-dire, supprimée) lors du traitement du type de contenu.

Par exemple, la ligne :

DESCRIPTION : ceci est une longue description qui existe sur une longue ligne.

Peut être représentée par :

DESCRIPTION : ceci est une lo
      ngue description
       qui existe sur une longue ligne.

Le processus de passer de cette représentation de plusieurs lignes repliées à sa représentation sur une seule ligne est appelé "dépliage". Le dépliage est accompli en retirant le CRLF et le caractère espace blanche linéaire qui suit immédiatement.

Quand on analyse une ligne de contenu, les lignes repliées DOIVENT d'abord être dépliées en accord avec la procédure de dépliage décrite ci-dessus.

Note : Il est possible pour les très simples mises en œuvre de générer des lignes improprement repliées au milieu d'une séquence UTF-8 multi-octets. Pour cette raison, les mises en œuvre doivent déplier les lignes d'une façon telle qu'elle restaure correctement la séquence originale.

Les informations de contenu associées à un objet iCalendar sont formatées en utilisant une syntaxe similaire à celle définie par la [RFC2425]. C'est-à-dire, les informations de contenu consistent en lignes de contenu séparées par un CRLF.

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

contentline = nom *(";" param ) ":" valeur CRLF
;	Cet ABNF est juste une définition générale pour une analyse initiale de la ligne de contenu dans son nom de propriété, liste de paramètres, et chaîne de valeur. Quand on analyse une ligne de contenu, les lignes repliées DOIVENT d'abord être dépliées selon la procédure de dépliage décrite ci-dessus. Quand on génère une ligne de contenu, les lignes de plus de 75  octets DEVRAIENT être repliées conformément à la procédure de repli décrite ci-dessus. ;

nom = iana-token / x-name

iana-token = 1*(ALPHA / DIGIT / "-") 	; identifiant iCalendar enregistré par l'IANA

x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-") 	; réservé pour utilisation expérimentale.

vendorid = 3*(ALPHA / DIGIT)	; identification de fabricant

param = param-name "=" param-value *("," param-value)
;	Chaque propriété définit l'ABNF spécifique pour les paramètres permis sur la propriété. Voir les propriétés spécifiques pour l'ABNF d'un paramètre précis. ;

param-name = iana-token / x-name

param-value = paramtext / quoted-string

paramtext = *SAFE-CHAR

value = *VALUE-CHAR

quoted-string = DQUOTE *QSAFE-CHAR DQUOTE	; chaîne entre guillemets

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

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

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

NON-US-ASCII = UTF8-2 / UTF8-3 / UTF8-4	; UTF8-2, -3, et -4 sont définis dans la [RFC3629]

CONTROL = %x00-08 / %x0A-1F / %x7F 	; tous les caractères de contrôle sauf HTAB

Le composant valeur de propriété d'une ligne de contenu a un format qui est spécifique de la propriété. Se reporter au paragraphe qui décrit chaque propriété pour la définition de ce format.

Tous les noms de propriétés, paramètres de propriété, valeurs énumérées de propriété et valeurs de paramètre de propriété sont insensibles à la casse. Cependant, toutes les autres valeurs de propriété sont sensibles à la casse, sauf mention contraire.

 	3.1.1	Séparateurs de liste et de champ
Certaines propriétés et paramètres permettent une liste de valeurs. Les valeurs dans une liste de valeurs DOIVENT être séparées par un caractère VIRGULE. Il n'y a pas de signification à l'ordre des valeurs dans une liste. Pour ces valeurs de paramètre (comme celles qui spécifient des valeurs d'identifiant de ressource universel (URI, Uniform Resource Identifier) qui sont spécifiées dans des chaînes entre guillemets, les chaînes entre guillemets individuelles sont séparées par des caractères VIRGULE.

Certaines valeurs de propriété sont définie en plusieurs parties. Ces valeurs de propriété structurées DOIVENT avoir leurs parties de valeur séparées par un caractère POINT-VIRGULE.

Certaines propriétés permettent 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.

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

Par exemple, dans les propriétés suivantes, un POINT-VIRGULE est utilisé pour séparer les paramètres de propriété les uns des autres et un caractère VIRGULE est utilisé pour séparer les valeurs de propriété dans une liste de valeurs.

ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:mailto: jsmith@exemple.com

RDATE;VALUE=DATE:19970304,19970504,19970704,19970904

 	3.1.2	Valeurs multiples
Certaines propriétés définies dans l'objet iCalendar peuvent avoir plusieurs valeurs. La règle générale pour coder des éléments multi valeurs est de simplement créer une nouvelle ligne de contenu pour chaque valeur, incluant le nom de propriété. Cependant, on devrait noter que certaines propriétés acceptent le codage de plusieurs valeurs dans une seule propriété en séparant les valeurs par un caractère VIRGULE. Les définitions de propriété individuelle devraient être consultées pour déterminer si une propriété spécifique permet plusieurs valeurs et dans laquelle de ces deux formes. Les propriétés multi valeurs NE DOIVENT PAS être utilisées pour spécifier plusieurs variantes de langage de la même valeur. Les applications de calendrier DEVRAIENT afficher toutes les valeurs.

 	3.1.3	Contenu binaire
Les informations de contenu binaire dans un objet iCalendar DEVRAIENT être référencées en utilisant un URI au sein d'une valeur de propriété. C'est-à-dire, les informations de contenu binaire DEVRAIENT être placées dans une entité MIME externe qui peut être référencée par un URI de l'intérieur de l'objet iCalendar. Dans les applications où ce n'est pas faisable, les informations de contenu binaire peuvent être incluses dans un objet iCalendar, mais seulement après l'avoir d'abord codé en texte en utilisant la méthode de codage "BASE64" définie dans la [RFC4648]. Le contenu binaire en ligne DEVRAIT seulement être utilisé dans les applications dont des circonstances particulières exigent qu'un objet iCalendar soit exprimé comme une seule entité. Une propriété contenant des informations de contenu binaire en ligne DOIT spécifier le paramètre de propriété "ENCODING". Les informations de contenu binaire placées à l'extérieur de l'objet iCalendar DOIVENT être référencées par un identifiant de ressource universel (URI, uniform resource identifier).

L'exemple suivant spécifie une propriété "ATTACH" qui fait référence à une pièce jointe externe à l'objet iCalendar avec une référence d'URI :

ATTACH:http://exemple.com/public/rapport-trimestriel.doc

L'exemple suivant spécifie une propriété "ATTACH" avec des informations de contenu en ligne codées en binaire :

ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:VGhlIH
F1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4

 	3.1.4	Jeu de caractères
Il n'y a pas de paramètre de propriété pour déclarer le jeu de caractères utilisé dans une valeur de propriété. Le jeu de caractères par défaut pour un flux iCalendar est UTF-8 comme défini dans la [RFC3629].

Le paramètre de type de contenu "charset" DOIT être utilisé dans les transports MIME pour spécifier le jeu de caractères utilisé.

 	3.2	Paramètres de propriété
Une propriété peut avoir des attributs auxquels elle est associée. Ces "paramètres de propriété" contiennent des méta informations sur la propriété ou valeur de propriété. Les paramètres de propriété sont fournis pour spécifier des informations comme la localisation d'une autre représentation textuelle pour une valeur de propriété, le langage d'une valeur de propriété de texte, le type de valeur de la valeur de propriété, et autre attributs.

Les valeurs de paramètre de propriété qui contiennent les séparateurs par des caractères VIRGULE, POINT-VIRGULE, ou DEUX-POINTS DOIVENT être spécifiées comme des valeurs de chaîne de texte entre guillemets. Les valeurs de paramètre de propriété NE DOIVENT PAS contenir de caractère DQUOTE. Le caractère DQUOTE est utilisé comme délimiteur pour valeurs de paramètre qui contiennent des caractères interdits ou un texte d'URI. Par exemple :

DESCRIPTION;ALTREP="cid:part1.0001@exemple.org":The Fall'98 Wild Wizards
 Conference - Las Vegas\, NV\, USA

Les valeurs de paramètre de propriété qui ne sont pas entre guillements sont insensibles à la casse.

Les paramètres de propriété généraux définis par le présent mémoire sont définis par la notation suivante :

icalparameter = altrepparam	; autre représentation de texte
                          / cnparam 	; nom commun
                          / cutypeparam	; type d'utilisateur de calendrier
                          / delfromparam	; déléguant
                          / deltoparam	; délégué
                          / dirparam	; entrée de répertoire
                          / encodingparam	; codage en ligne
                          / fmttypeparam	; type de format
                          / fbtypeparam	; type de temps libre/occupé
                          / languageparam	; langage du texte
                          / memberparam	; groupe ou liste des membres
                          / partstatparam	; état de participation
                          / rangeparam	; gamme d'identifiants de récurrence
                          / trigrelparam	; relations de déclencheur d'alarme
                          / reltypeparam	; type de relation
                          / roleparam 	; rôle de participation
                          / rsvpparam	; attente de RSVP
                          / sentbyparam	; envoyé par
                          / tzidparam	; référence aux objets de zone horaire
                          / valuetypeparam	; type de données de valeur de propriété
                          / other-param	; autre paramètre

other-param = (iana-param / x-param)

iana-param = iana-token "=" param-value *("," param-value)	; autre paramètre iCalendar enregistré par l'IANA.

x-param = x-name "=" param-value *("," param-value)	 ; paramètre expérimental non standard.

Les applications DOIVENT ignorer les valeurs de x-param et iana-param qu'elles ne reconnaissent pas.

 	3.2.1	Autre représentation de texte
Nom du paramètre : ALTREP
Objet : spécifier une autre représentation de texte pour la valeur de propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE

Description : ce paramètre spécifie un URI qui pointe sur une autre représentation pour une valeur de propriété textuelle. Une propriété qui spécifie ce paramètre DOIT aussi inclure une valeur qui reflète la représentation par défaut de la valeur de texte. La valeur de paramètre URI DOIT être spécifiée dans une chaîne entre guillemets.

Note : Bien qu'aucune restriction ne soit imposée aux schémas d'URI permis pour ce paramètre, Content Identifier (CID) [RFC2392], HTTP [RFC2616], et HTTPS [RFC2818] sont les schémas d'URI les plus couramment utilisés par les mises en œuvre actuelles.

Exemple :

DESCRIPTION;ALTREP="CID:part3.msg.970415T083000@exemple.com":
La réunion de revue du projet XYZ aura à l'ordre du jour les éléments suivants : 
(a) Examen du marché\, (b) Finances\, (c) Gestion du projet

Le paramètre de valeur de propriété "ALTREP" pourrait pointer sur une portion de contenu "text/html".

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

<html>
  <head>
   <title></title>
  </head>
  <body>
    <p>
      <b>La réunion de revue du projet XYZ</b> aura à l'ordre du jour les éléments suivants :
      <ol>
        <li>Examen du marché</li>
        <li>Finances</li>
        <li>Gestion du projet</li>
      </ol>
    </p>
  </body>
</html>

 	3.2.2	Nom commun
Nom du paramètre : CN
Objet : spécifier le nom commun à associer à l'utilisateur de calendrier spécifié par la propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

cnparam = "CN" "=" param-value

Description : ce paramètre peut être spécifié sur des propriétés qui ont un type de valeur CAL-ADDRESS. Le paramètre spécifie le nom commun à associer à l'utilisateur de calendrier spécifié par la propriété. La valeur de paramètre est text. La valeur de paramètre peut être utilisée pour afficher du texte à associer à l'adresse de calendrier spécifiée par la propriété.

Exemple :

ORGANIZER;CN="John Smith":mailto:jsmith@exemple.com

 	3.2.3	Type d'utilisateur de calendrier
Nom du paramètre : CUTYPE
Objet : identifier le type d'utilisateur de calendrier spécifié par la propriété.
Définition de format : ce 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 lieu
                         / "UNKNOWN"	; non connu par ailleurs
                         / x-name	; type expérimental
                         / iana-token)	; autre type enregistré par l'IANA
	; INDIVIDUAL est la valeur par défaut

Description : ce paramètre peut être spécifié sur des propriétés avec un type de valeur CAL-ADDRESS. Le paramètre identifie le type d'utilisateur de calendrier spécifié par la propriété. Si il n'est pas spécifié sur une propriété qui permet ce paramètre, la valeur par défaut est INDIVIDUAL. Les applications DOIVENT traiter les valeurs de x-name et iana-token qu'elles ne reconnaissant pas de la même façon qu'elles feraient d'une valeur UNKNOWN (inconnue).

Exemple : ATTENDEE;CUTYPE=GROUP:mailto:ietf-calsch@exemple.org

 	3.2.4	Délégants
Nom du paramètre : DELEGATED-FROM
Objet : spécifier les utilisateurs de calendrier qui ont délégué leur participation à l'utilisateur de calendrier spécifié par la propriété.
Définition de format : ce 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 être spécifié sur des propriétés avec un type de valeur CAL-ADDRESS. Ce paramètre spécifie les utilisateurs de calendrier qui ont délégué leur participation à un événement de groupe programmé ou de choses à faire à l'utilisateur de calendrier spécifié par la propriété. Les valeurs individuelles de paramètre d'adresse de calendrier DOIVENT chacune être spécifiées entre guillemets.

Exemple : ATTENDEE;DELEGATED-FROM="mailto:jsmith@exemple.com":mailto:jdoe@exemple.com

 	3.2.5	Délégués
Nom du paramètre : DELEGATED-TO
Objet : spécifier les utilisateurs de calendrier à qui l'utilisateur de calendrier spécifié par la propriété a délégué sa participation.
Définition de format : ce 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 être spécifié sur les propriétés qui ont un type de valeur CAL-ADDRESS. Ce paramètre spécifie les utilisateurs de calendrier à qui a été déléguée la participation à un événement de groupe programmé ou à des choses à faire par l'utilisateur de calendrier spécifié par la propriété. Les valeurs individuelles de paramètre d'adresse de calendrier DOIVENT chacune être spécifiées dans une chaîne entre guillemets.

Exemple :

ATTENDEE;DELEGATED-TO="mailto:jdoe@exemple.com","mailto:jqpublic
 @exemple.com":mailto:jsmith@exemple.com

 	3.2.6	Référence d'entrée de répertoire
Nom du paramètre : DIR
Objet : spécifier une référence à une entrée de répertoire associée à l'utilisateur de calendrier spécifié par la propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

dirparam = "DIR" "=" DQUOTE uri DQUOTE

Description : ce paramètre peut être spécifié sur des propriétés avec le type de valeur CAL-ADDRESS. Le paramètre spécifie une référence à l'entrée de répertoire associée à l'utilisateur de calendrier spécifié par la propriété. La valeur de paramètre est un URI. La valeur de paramètre URI DOIT être spécifiée dans une chaîne entre guillemets.

Note : Bien qu'aucune restriction ne soit imposée aux schémas d'URI permis pour ce paramètre, CID [RFC2392], DATA [RFC2397], FILE [RFC1738], FTP [RFC1738], HTTP [RFC2616], HTTPS [RFC2818], LDAP [RFC4516], et MID [RFC2392] sont les schémas d'URI les plus couramment utilisés par les mises en œuvre actuelles.

Exemple :
ORGANIZER;DIR="ldap://exemple.com:6666/o=ABC%20Industries,
 c=US???(cn=Jim%20Dolittle)":mailto:jimdo@exemple.com

 	3.2.7	Codage en ligne
Nom du paramètre : ENCODING
Objet : spécifier un codage en ligne de remplacement pour la valeur de propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

encodingparam = "ENCODING" "=" ( "8BIT"  / "BASE64")
; le format de codage texte de "8bit" est défini dans la [RFC2045] ; le format de codage binaire "BASE64" est défini dans la [RFC4648]. ;

Description : ce paramètre de propriété identifie le codage en ligne utilisé dans une valeur de propriété. Le codage par défaut est "8BIT", correspondant à une valeur de propriété consistant en texte. Le type de codage "BASE64" correspond à une valeur de propriété codée en utilisant le codage "BASE64" défini dans la [RFC2045].

Si la valeur de type de paramètre est ";VALUE=BINARY", alors le paramètre de codage en ligne DOIT être spécifié avec la valeur ";ENCODING=BASE64".

Exemple :
ATTACH;FMTTYPE=text/plain;ENCODING=BASE64;VALUE=BINARY:TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4=

 	3.2.8	Type de format
Nom du paramètre : FMTTYPE
Objet : spécifier le type de contenu d'un objet référencé.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

fmttypeparam = "FMTTYPE" "=" type-name "/" subtype-name
; où "type-name" et "subtype-name" sont définis au paragraphe 4.2 de la [RFC4288]. ;

Description : ce paramètre peut être spécifié sur les propriétés qui sont utilisées pour référencer un objet. Le paramètre spécifie le type de supports [RFC4288] d'un objet référencé. Par exemple, sur la propriété "ATTACH", une valeur d'URI de type FTP ne doit pas nécessairement par elle-même convoyer le type de contenu associé à la ressource. La valeur de paramètre DOIT être le texte pour un type de supports enregistré par l'IANA ou un type de supports non standard.

Exemple : ATTACH;FMTTYPE=application/msword:ftp://exemple.com/pub/docs/agenda.doc

 	3.2.9	Type de temps libre/occupé
Nom du paramètre : FBTYPE
Objet : spécifier le type de temps libre ou occupé.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

fbtypeparam  = "FBTYPE" "=" ("FREE" / "BUSY" / "BUSY-UNAVAILABLE" / "BUSY-TENTATIVE"
                          / x-name	; type expérimental free/busy iCalendar.
                          / iana-token)	; autre type free/busy iCalendar enregistré par l'IANA.

Description : ce paramètre spécifie le type de temps libre ou occupé. La valeur FREE indique que l'intervalle de temps est libre pour une programmation. La valeur BUSY indique que l'intervalle de temps est occupé parce que un ou plusieurs événements ont été programmés pour cet intervalle. La valeur BUSY-UNAVAILABLE indique que l'intervalle de temps est occupé et qu'il ne peut pas être programmé. La valeur BUSY-TENTATIVE indique que l'intervalle de temps est occupé parce qu'une ou plusieurs tentatives d'événements ont été programmées pour cet intervalle. Si il n'est pas spécifié sur une propriété qui permet ce paramètre, la valeur par défaut est BUSY. Les applications DOIVENT traiter les valeurs x-name et iana-token qu'elles ne reconnaissent pas de la même façon que la valeur BUSY.

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

FREEBUSY;FBTYPE=BUSY:19980415T133000Z/19980415T170000Z

 	3.2.10.	Langage
Nom du paramètre : LANGUAGE
Objet : spécifier le langage pour les valeurs de texte dans une propriété ou paramètre de propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

languageparam = "LANGUAGE" "=" langage

langage = étiquette de langue	; comme défini dans la [RFC5646].

Description : ce paramètre identifie le langage du texte dans la valeur de propriété et de tous les paramètres de valeur de propriété de la propriété. La valeur du paramètre de propriété "LANGUAGE" est celle définie dans la [RFC5646]. Pour un transport dans une entité MIME, le champ d'en-tête Content-Language peut être utilisé pour régler le langage par défaut pour le corps entier. Autrement, aucun langage par défaut n'est supposé.

Exemple : voici des exemples de ce paramètre sur les propriétés "SUMMARY" et "LOCATION" :

SUMMARY;LANGUAGE=en-US:Company Holiday Party
LOCATION;LANGUAGE=en:Germany
LOCATION;LANGUAGE=no:Tyskland

 	3.2.11	Groupe ou liste de membres
Nom du paramètre : MEMBER
Objet : spécifier le groupe ou la liste des membres de l'utilisateur de calendrier spécifié par la propriété.
Définition de format : ce 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 être spécifié sur des propriétés qui ont un type de valeur CAL-ADDRESS. Le paramètre identifie les groupes ou listes de membres pour l'utilisateur de calendrier spécifié 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 VIRGULES, chacune dans une chaîne entre guillemets. Les valeurs individuelles de paramètre d'adresse de calendrier DOIVENT chacune être spécifiées dans une chaîne entre guillemets.

Exemple :

ATTENDEE;MEMBER="mailto:ietf-calsch@exemple.org":mailto:jsmith@exemple.com

ATTENDEE;MEMBER="mailto:projectA@exemple.com","mailto:projectB@exemple.com":mailto:jandoe@exemple.com

 	3.2.12	État de participation
Nom du paramètre : PARTSTAT
Objet : spécifier l'état de participation pour l'utilisateur de calendrier spécifié par la propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

partstatparam = "PARTSTAT" "=" (partstat-event / partstat-todo / partstat-jour)

partstat-event = ("NEEDS-ACTION"	; l'événement a besoin d'une action
                        / "ACCEPTED"	; événement accepté
                        / "DECLINED" 	; événement refusé
                        / "TENTATIVE"	; événement accepté sous réserve
                        / "DELEGATED"	; événement délégué
                        / x-name	; état expérimental
                        / iana-token)	; autre état enregistré par l'IANA
; ce sont les états de participation pour un "VEVENT". La valeur par défaut est NEEDS-ACTION.

partstat-todo = ("NEEDS-ACTION"	; la chose à faire a besoin d'une action
                        / "ACCEPTED"	; la chose à faire est acceptée
                        / "DECLINED" 	; la chose à faire est refusée
                        / "TENTATIVE"	; la chose à faire est acceptée sous réserve
                        / "DELEGATED"	; la chose à faire est déléguée
                        / "COMPLETED"	; chose à faire achevée ; la propriété a DATE-TIME achevée
                        / "IN-PROCESS"	; la chose à faire en cours d'achèvement
                        / x-name 	; état expérimental
                        / iana-token)	; autre état enregistré par l'IANA
; ce sont les états de participation pour un "VTODO". La valeur par défaut est NEEDS-ACTION.

partstat-jour = ("NEEDS-ACTION"	; Journal a besoin d'une action
                        / "ACCEPTED"	; Journal accepté
                        / "DECLINED" 	; Journal refusé
                        / x-name	; état expérimental
                        / iana-token)	; autre état enregistré par l'IANA
; ce sont les états de participation pour un "VJOURNAL". La valeur par défaut est NEEDS-ACTION.

Description : ce paramètre peut être spécifié sur des propriétés qui ont le type de valeur CAL-ADDRESS. Le paramètre identifie l'état de participation pour l'utilisateur de calendrier spécifié par la valeur de propriété. Les valeurs de paramètre diffèrent selon qu'elles sont associées à un "VEVENT", "VTODO", ou "VJOURNAL" de groupe programmé. Les valeurs DOIVENT correspondre à une des valeurs permises pour le composant de calendrier concerné.  Si il n'est pas spécifié sur une propriété qui permet ce paramètre, la valeur par défaut est NEEDS-ACTION. Les applications DOIVENT traiter les valeurs x-name et iana-token qu'elles ne reconnaissent pas de la même façon que la valeur NEEDS-ACTION.

Exemple : ATTENDEE;PARTSTAT=DECLINED:mailto:jsmith@exemple.com

 	3.2.13	Gamme d'identifiants de récurrence
Nom du paramètre : RANGE
Objet :  spécifier la gamme effective des instances de récurrence à partir de l'instance spécifiée par l'identifiant de récurrence spécifié par la propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

rangeparam = "RANGE" "=" "THISANDFUTURE"
; pour spécifier l'instance spécifiée par l'identifiant de récurrence et toutes les instances de récurrence suivantes.

Description : ce paramètre peut être spécifié sur une propriété qui spécifie un identifiant de récurrence. Le paramètre spécifie la gamme effective d'instances de récurrence qui est spécifiée par la propriété. La gamme effective est à partir de l'identifiant de récurrence spécifié par la propriété. Si ce paramètre n'est pas spécifié sur une propriété permise, alors la gamme par défaut est la seule instance spécifiée par la valeur de l'identifiant de récurrence de la propriété. La valeur de paramètre peut seulement être "THISANDFUTURE" pour indiquer une gamme définie par l'identifiant de récurrence et toutes ses instances suivantes. La valeur "THISANDPRIOR" est déconseillés par cette révision de iCalendar et NE DOIT PAS être générée par les applications.

Exemple : RECURRENCE-ID;RANGE=THISANDFUTURE:19980401T133000Z

 	3.2.14	Relation de déclenchement d'alarme
Nom du paramètre : RELATED
Objet : spécifier la relation du déclencheur d'alarme par rapport au début ou à la fin du composant de calendrier.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

trigrelparam = "RELATED" "="("START"	; déclenche le début
                                                    / "END")	; déclenche la fin

Description : ce paramètre peut être spécifié sur les propriétés qui spécifient un déclenchement d'alarme avec un type de valeur "DURATION". Le paramètre spécifie si l'alarme va se déclencher par rapport au début ou à la fin du composant de calendrier. La valeur de paramètre START va régler l'alarme à se déclencher à partir du début du composant de calendrier ; la valeur de paramètre END va régler l'alarme à se déclencher à la fin du composant de calendrier. Si le paramètre n'est pas spécifié sur une propriété permise, la valeur par défaut est START.

Exemple : TRIGGER;RELATED=END:PT5M

 	3.2.15	Type de relations
Nom du paramètre : RELTYPE
Objet : spécifier le type de relation hiérarchique associé au composant de calendrier spécifié par la propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

reltypeparam = "RELTYPE" "="
                           ("PARENT"	; relation de parent – par défaut
                          / "CHILD"	; relation d'enfant
                          / "SIBLING"	; relation de parenté
                          / iana-token	; autre type de relation iCalendar enregistrée par l'IANA
                          / x-name)	; type de relation non standard, expérimentale

Description : ce paramètre peut être spécifié sur une propriété qui fait référence à un autre calendrier en relation. Le paramètre spécifie 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 supérieur du composant de calendrier ; CHILD pour indiquer que le composant de calendrier référencé est un subordonné du composant de calendrier ; ou SIBLING pour indiquer que le composant de calendrier référencé est un homologue du composant de calendrier. Si ce paramètre n'est pas spécifié sur une propriété permise, le type de relation par défaut est PARENT. Les applications DOIVENT traiter les valeurs x-name et iana-token qu'elles ne reconnaissent pas de la même façon que la valeur PARENT.

Exemple : RELATED-TO;RELTYPE=SIBLING:19960401-080045-4000F192713@exemple.com

 	3.2.16	Rôle de participation 
Nom du paramètre : ROLE
Objet :spécifier le rôle de participation pour l'utilisateur de calendrier spécifié par la propriété.
Définition de format : ce 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 un participant dont la participation est exigée
                  / "OPT-PARTICIPANT"	; indique un participant dont la participation est facultative
                  / "NON-PARTICIPANT"	; indique un participant qui est en copie pour des seuls besoins d'information
                  / x-name	; rôle expérimental
                  / iana-token)	; autre rôle enregistré par l'IANA
	; REQ-PARTICIPANT est par défaut.

Description : ce paramètre peut être spécifié sur une propriété qui a le type de valeur CAL-ADDRESS. Le paramètre spécifie le rôle de participation pour l'utilisateur de calendrier spécifié par la propriété dans le composant de calendrier de programmation de groupe. Si il n'est pas spécifié sur une propriété qui permet ce paramètre, la valeur par défaut est REQ-PARTICIPANT. Les applications DOIVENT traiter les valeurs x-name et iana-token qu'elles ne reconnaissent pas de la même façon qu'elle le feraient de la valeur REQ-PARTICIPANT.

Exemple :  ATTENDEE;ROLE=CHAIR:mailto:mrbig@exemple.com

 	3.2.17	Attentes de RSVP
Nom du paramètre : RSVP
Objet : spécifier si il y a une attente en faveur d'une réponse de l'utilisateur de calendrier spécifié par la valeur de propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

rsvpparam = "RSVP" "=" ("TRUE" / "FALSE")	; FALSE par défaut

Description : ce paramètre peut être spécifié sur des propriétés avec un type de valeur CAL-ADDRESS. Le paramètre identifie l'attente d'une réponse de la part de l'utilisateur de calendrier spécifié par la valeur de propriété. Ce paramètre est utilisé par l'"Organisateur" pour demander une réponse d'état de participation de la part d'un "Participant" d'un événement de groupe programmé ou de chose à faire. Si il n'est pas spécifié sur une propriété qui permet ce paramètre, la valeur par défaut est FALSE.

Exemple : ATTENDEE;RSVP=TRUE:mailto:jsmith@exemple.com

 	3.2.18	Sent By
Nom du paramètre : SENT-BY
Objet : spécifier l'utilisateur de calendrier qui agit au nom de l'utilisateur de calendrier spécifié par la propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

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

Description : ce paramètre peut être spécifié sur des propriétés avec un type de valeur CAL-ADDRESS. Le paramètre spécifie l'utilisateur de calendrier qui agit au nom de l'utilisateur de calendrier spécifié par la propriété. La valeur de paramètre DOIT être un URI mailto comme défini dans la [RFC2368]. Les valeurs individuelles de paramètre d'adresse de calendrier DOIVENT chacune être spécifiées dans une chaîne entre guillemets.

Exemple : ORGANIZER;SENT-BY="mailto:sray@exemple.com":mailto:jsmith@exemple.com

 	3.2.19	Identifiant de zone horaire
Nom du paramètre : TZID
Objet : spécifier l'identifiant de la définition de zone horaire pour un composant de temps dans la valeur de propriété.
Définition de format : ce paramètre de propriété est défini par la notation suivante :

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

Description : ce paramètre DOIT être spécifié sur les propriétés "DTSTART", "DTEND", "DUE", "EXDATE", et "RDATE" quand un type de valeur DATE-TIME ou TIME est spécifié et quand la valeur n'est ni un temps UTC ni un temps "flottant". Se reporter à la définition du type de valeur DATE-TIME ou TIME pour la description des formats de temps UTC et "flottant". Ce paramètre de propriété spécifie une valeur de texte qui identifie de façon univoque le composant de calendrier "VTIMEZONE" à utiliser quand on évalue la portion de temps de la propriété. La valeur du paramètre de propriété "TZID" va être égale à la valeur de la propriété "TZID" pour la définition de zone horaire correspondante. Un composant de calendrier "VTIMEZONE" individuel DOIT être spécifié pour chaque valeur de paramètre "TZID" unique spécifiée dans l'objet iCalendar. Le paramètre DOIT être spécifié sur les propriétés qui ont une valeur DATE-TIME si la DATE-TIME n'est ni un temps UTC ni un temps "flottant". Manquer à inclure et à suivre les définitions de VTIMEZONE dans des objets iCalendar peut conduire à des compréhensions incohérentes de l'heure locale dans tout lieu donné. La présence du caractère BARRE OBLIQUE comme préfixe, indique que cette "TZID" représente un identifiant univoque dans un registre de zone horaire défini mondialement (quand un tel registre est défini).

Note : Le présent document ne définit pas de convention de dénomination pour les identifiants de zone horaire. Les développeurs peuvent vouloir utiliser les conventions de dénomination définies dans les spécifications existantes de zones horaires telles que la base de données du domaine public TZ [TZDB]. La spécification d'identifiants de zone horaires uniques au monde n'est pas traitée dans le présent document et fera l'objet d'études ultérieures.

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

DTSTART;TZID=America/New_York:19980119T020000

DTEND;TZID=America/New_York:19980119T030000

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

L'utilisation d'une heure locale dans une valeur DATE-TIME ou TIME sans le paramètre de propriété "TZID" est à interpréter comme une heure flottante, sans considération de l'existence de composants de calendrier "VTIMEZONE" dans l'objet iCalendar. Pour plus d'informations, voir les paragraphes sur les types de valeurs DATE-TIME et TIME.

 	3.2.20	Types de données de valeur
Nom du paramètre : VALUE
Objet : spécifier explicitement le format de type de valeur pour une valeur de propriété.
Définition de format : ce paramètre de propriété 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	; certains types de valeur iCalendar expérimentales.
                    / iana-token)	; autres types de valeur iCalendar enregistrés par l'IANA.

Description : ce paramètre spécifie le type de valeur et le format de la valeur de propriété. Les valeurs de propriété DOIVENT être d'un seul type de valeur. Par exemple, une propriété "RDATE" ne peut pas avoir une combinaison de types de valeur DATE-TIME et TIME. Si la valeur de la propriété est le type de valeur par défaut, alors ce paramètre n'a pas besoin d'être spécifié. Cependant, si le type de valeur par défaut de la propriété est outrepassé par un autre type de valeur admissible, alors ce paramètre DOIT être spécifié. Les applications DOIVENT préserver les données de la valeur pour les valeurs x-name et iana-token qu'elles ne reconnaissent pas sans tenter d'interpréter ou analyser les données de la valeur.

 	3.3	Types de données de valeur de propriété
Les propriétés dans un objet iCalendar sont fortement typées. La définition de chaque propriété restreint la valeur à être d'un des types de données de la valeur, ou simplement des types de valeur, définis dans ce paragraphe. Le type de valeur pour une propriété va soit être spécifié implicitement comme le type de valeur par défaut, soit va être explicitement spécifié par le paramètre "VALUE". Si le type de valeur d'une propriété est un des types de remplacement valides, il DOIT alors être explicitement spécifié par le paramètre "VALUE".

 	3.3.1	Binaire
Nom de valeur : BINARY
Objet : ce type de valeur est utilisé pour identifier les propriétés qui contiennent un codage de caractère de données binaires en ligne. Par exemple, une pièce jointe en ligne d'un document pourrait être incluse dans un objet iCalendar.
Définition de format : ce type de valeur est défini par la notation suivante :

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

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

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

Description : les valeurs de propriété qui ont ce type de valeur DOIVENT aussi inclure la séquence de paramètre de codage en ligne de ";ENCODING=BASE64". C'est-à-dire, toutes les données binaires en ligne DOIVENT d'abord être codées en caractères en utilisant la méthode de codage "BASE64" définie dans la [RFC2045]. Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur.

Exemple : Voici un exemple de données de valeur binaire codées en "BASE64" :

ATTACH;FMTTYPE=image/vnd.microsoft.icon;ENCODING=BASE64;VALUE=BINARY:AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgIAAAICAgADAwMAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAAAAABNEMQAAAAAAAkQgAAAAAAJEREQgAAACECQ0QgEgAAQxQzM0E0AABERCRCREQAADRDJEJEQwAAAhA0QwEQAAAAAEREAAAAAAAAREQAAAAAAAAkQgAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

 	3.3.2	Booléen
Nom de valeur : BOOLEAN
Objet : ce type de valeur est utilisé pour identifier les propriétés qui contiennent une valeur booléenne "TRUE" ou "FALSE".
Définition de format : ce type de valeur est défini par la notation suivante :

boolean = "TRUE" / "FALSE"

Description : ces valeurs sont du texte insensible à la casse. Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, le codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur.

Exemple : Voici un exemple d'une propriété hypothétique qui a un type de valeur BOOLEAN : TRUE

 	3.3.3	Adresse d'utilisateur de calendrier
Nom de valeur : CAL-ADDRESS
Objet : ce type de valeur est utilisé pour identifier les propriétés qui contiennent une adresse d'utilisateur de calendrier.
Définition de format : ce type de valeur est défini par la notation suivante :

cal-address = uri

Description : la valeur est un URI comme défini par la [RFC3986] ou toute autre forme enregistrée par l'IANA pour un URI. Quand utilisé pour porter une adresse de transport de messagerie électronique Internet pour un utilisateur de calendrier, la valeur DOIT être un URI mailto, comme défini par la [RFC2368]. Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, le codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur.

Exemple :  mailto:jane_doe@exemple.com

 	3.3.4	Date
Nom de valeur : DATE
Objet : ce type de valeur est utilisé pour identifier des valeurs qui contiennent une date de calendrier.
Définition de format : ce 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 de l'année

Description : Si la propriété le permet, plusieurs valeurs de "date" sont spécifiées comme une liste de valeurs séparées par des VIRGULES. Le format pour le type de valeur de fonde sur une représentation complète de [ISO.8601], format de base pour une date de calendrier. Le format textuel spécifie un année de quatre chiffres, un mois de deux chiffres, et un jour dans le mois de deux chiffres. Il n'y a pas de caractère de séparation entre le texte de composant an, mois et jour. Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, le codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur.

Exemple : ce qui suit représente le 14 juillet 1997 : 19970714

 	3.3.5	Date-heure
Nom de valeur : DATE-TIME
Objet : ce type de valeur est utilisé pour identifier des valeurs qui spécifient une date et heure précise de calendrier.
Définition de format : ce type de valeur est défini par la notation suivante :

date-time = date "T" time 	; comme spécifié dans la définition de valeur DATE et TIME.

Description : Si la propriété le permet, plusieurs valeurs "DATE-TIME" sont spécifiées comme une liste de valeurs séparées par des VIRGULES. Aucun codage de  valeur de contenu supplémentaire (c'est-à-dire, le codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur. Le type de valeur "DATE-TIME" est utilisé pour identifier des valeurs qui contiennent une date et heure précise du calendrier. Le format est fondé sur la représentation complète de [ISO.8601], format de base d'une date et heure de calendrier. Le format de texte est un enchaînement de la "date", suivie par le caractère LATIN CAPITAL LETTER T, la désignation de l'heure, suivie par le format "time". Le type de valeur "DATE-TIME" exprime des valeurs de temps sous trois formes. La forme de date et heure avec le décalage à l'UTC NE DOIT PAS être utilisée. Par exemple, ce qui suit n'est pas valide pour une valeur de DATE-TIME :

19980119T230000-0800 	; format de temps invalide.

Forme n° 1 : date avec heure locale :
La forme de date avec l'heure locale est simplement une valeur DATE-TIME qui ne contient pas le désignant UTC et ne fait pas référence à une zone horaire. Par exemple, ce qui suit représente le 18 janvier 1998, à 23 heure :

19980118T230000

Les valeurs DATE-TIME de ce type sont dites être "flottantes" et ne sont pas liées à une zone horaire en particulier. Elles sont utilisées pour représenter la même valeur d'heure, minute, et seconde sans considération de quelle zone horaire est actuellement observée. Par exemple, un événement peut être défini qui indique qu'un individu va être occupé de 11:00 à 13:00 chaque jour, sans s'occuper de la zone horaire où la personne se trouve. Dans ces cas, une heure locale peut être spécifiée. Le receveur d'un objet iCalendar avec une valeur de propriété consistant en une heure locale, sans aucune information relative à la zone horaire, DEVRAIT interpréter la valeur comme étant fixe quelle que soit la zone horaire où le "ATTENDEE" est à un moment donné. Cela signifie que deux "Participants", dans des zones horaires différentes, qui reçoivent la même définition d'événement comme une heure flottante, peuvent participer à l'événement à des heures réelles différentes. L'heure flottante DEVRAIT seulement être utilisée lorsque c'est le comportement raisonnable.

Dans la plupart des cas, une heure fixe est désirée. Pour communiquer correctement une heure fixée dans une valeur de propriété, le temps UTC ou l'heure locale avec une référence de zone DOIT être spécifié.

L'utilisation de l'heure locale dans une valeur DATE-TIME sans le paramètre de propriété "TZID" est à interpréter comme une heure flottante, sans considération de l'existence de composants de calendrier "VTIMEZONE" dans l'objet iCalendar.

Forme n° 2 : date avec temps UTC
La date avec temps UTC, ou temps absolu, est identifiée par un suffixe du caractère LATIN CAPITAL LETTER Z, le désignant UTC, ajouté à la valeur du temps. Par exemple, ce qui suit représente le 19 janvier 1998, à 0700 UTC :

19980119T070000Z

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

Forme n° 3 : date avec heure locale et référence de zone horaire
La date et l'heure locale avec référence aux informations de zone horaire est identifiée par l'utilisation du paramètre de propriété "TZID" pour faire référence à la définition de la zone horaire appropriée. "TZID" est discuté en détails au paragraphe 3.2.19. Par exemple, ce qui suit représente 14:00 à New York le 19 janvier 1998 :

TZID=America/New_York:19980119T020000

Si, sur la base de la définition de la zone horaire référencée, l'heure locale décrite se produit plus d'une fois (quand on change de l'heure d'été à l'heure standard) la valeur DATE-TIME se réfère à la première occurrence de l'heure référencée. Donc, TZID=America/New_York:20071104T013000 indique le 4 novembre 2007 à 1:30 A.M. EDT (UTC-04:00). Si l'heure locale décrite ne se produit pas (quand on change de l'heure standard à l'heure d'été) la valeur DATE-TIME est interprétée en utilisant le décalage UTC avant le trou dans les heures locales. Donc, TZID=America/New_York:20070311T023000 indique le 11 mars 2007 à 3:30 A.M. EDT (UTC-04:00) une heure après 1:30 A.M. EST (UTC-05:00).

Une valeur d'heure DOIT seulement spécifier la seconde 60 quand elle spécifie une seconde sautée positive. Par exemple :

19970630T235960Z

Les mises en œuvre qui ne prennent pas en charge les secondes sautées DEVRAIENT interpréter la seconde 60 comme équivalente à la seconde 59.

Exemple : ce qui suit représente le 14 juillet 1997, à 13:30 à New York City dans chacun des trois formats de temps, en utilisant la propriété "DTSTART".

DTSTART:19970714T133000	; heure locale
DTSTART:19970714T173000Z	; temps UTC
DTSTART;TZID=America/New_York:19970714T133000	; heure locale et référence de zone horaire

 	3.3.6	Durée
Nom de valeur : DURATION
Objet : ce type de valeur est utilisé pour identifier les propriétés qui contiennent une durée.
Définition de format : ce 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é le permet, plusieurs valeurs "duration" sont spécifiées par une liste de valeurs séparées par des VIRGULES. le format se fonde sur la représentation complète en format de base de [ISO.8601] avec des désignations pour la durée. Le format peut représenter des durées nominales (semaines et jours) et des durées précises (heures, minutes, et secondes). Noter qu'à la différence de [ISO.8601], ce type de valeur ne prend pas en charge les désignations "Y" et "M" pour spécifier les durées en termes d'années et de mois.

La durée d'une semaine ou d'un jour dépend de sa position dans le calendrier. Dans le cas de discontinuités dans l'échelle des temps, comme un changement de l'heure d'hiver à l'heure d'été et vice-versa, le calcul de la durée exacte exige la soustraction ou l'addition du changement de durée de la discontinuité. Les secondes sautées NE DOIVENT PAS être considérées dans le calcul d'une durée exacte. Quand on calcule une durée exacte, les plus grands composants d'ordre de temps DOIVENT être ajoutés d'abord, c'est à dire, le nombre de jours DOIT être ajouté en premier, suivi par le nombre d'heures, le nombre de minutes, et le nombre de secondes.
Les durées négatives sont normalement utilisées pour programmer une alarme à déclencher avant une heure associée (voir le paragraphe 3.8.6.3).
Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, de codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur.

Exemple : une durée de 15 jours, 5 heures, et 20 secondes serait : P15DT5H0M20S
	une durée de 7 semaines serait :  P7W

 	3.3.7	Flottant
Nom de valeur : FLOAT
Objet : ce type de valeur est utilisé pour identifier des propriétés qui contiennent une valeur de nombre réel.
Définition de format : ce type de valeur est défini par la notation suivante :

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

Description : si la propriété le permet, plusieurs valeurs "float" sont spécifiées par une liste de valeurs séparées par une VIRGULE. Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, de codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur.

Exemple :
1000000.0000001
1.333
-3.14

 	3.3.8	Entier
Nom de valeur : INTEGER
Objet : ce type de valeur est utilisé pour identifier les propriétés qui contiennent une valeur d'entier signé.
Définition de format : ce type de valeur est défini par la notation suivante :

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

Description : si la propriété le permet, plusieurs valeurs "integer" sont spécifiées par une liste de valeurs séparées par une VIRGULE. La gamme valide pour "integer" est de  -2147483648 à 2147483647. Si le signe n'est pas spécifié, alors la valeur est supposée être positive. Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, un codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur.

Exemples :
1234567890
-1234567890
+1234567890
432109876

 	3.3.9	Période de temps
Nom de valeur : PERIOD
Objet : ce type de valeur est utilisé pour identifier des valeurs qui contiennent une période précise.
Définition de format : ce type de valeur est défini par la notation suivante :

period = period-explicit / period-start

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

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

Description : si la propriété le permet, plusieurs valeurs "period" sont spécifiées par une liste de valeurs séparées par une VIRGULE. Il y a deux formes de périodes. D'abord, une période est identifiée par son début et sa fin. Ce format se fonde sur la représentation [ISO.8601] complète en format de base pour le "DATE-TIME" de début de la période, suivi par un caractère BARRE OBLIQUE suivi le "DATE-TIME" de la fin de la période. Le début de la période DOIT être avant sa fin. Ensuite, une période peut aussi être définie par un début et une durée positive. Le format se fonde sur la représentation [ISO.8601] complète, format de base, pour le "DATE-TIME" de début de la période, suivi par un caractère BARRE OBLIQUE, suivi par le format de base [ISO.8601] pour la "DURATION" de la période.

Exemple : la période commençant à 18:00:00 UTC, le 1er janvier 1997 et se terminant à 07:00:00 UTC le 2 janvier 1997 va être :

19970101T180000Z/19970102T070000Z

La période qui débute à 18:00:00 le 1er janvier 1997 et qui dure 5 heures et 30 minutes serait :

19970101T180000Z/PT5H30M

Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, un codage de caractère BACKSLASH, voir le paragraphe  3.3.11) n'est défini pour ce type de valeur.

 	3.3.10	Règle de récurrence
Nom de valeur : RECUR
Objet : ce type de valeur est utilisé pour identifier les propriétés qui contiennent une spécification de règle de récurrence.
Définition de format : ce type de valeur est défini par la notation suivante :

recur = recur-rule-part *( ";" recur-rule-part )
; Les parties de règle ne sont pas ordonnées dans une séquence particulière.
; La partie de règle FREQ est EXIGÉE, mais NE DOIT PAS se produire plus d'une fois.
; Les parties de règle UNTIL ou COUNT sont FACULTATIVE, mais NE DOIVENT PAS se produire dans la même récurrence. ;
; Les autres parties de règle sont FACULTATIVES, mais NE DOIVENT PAS se produire plus d'une fois.

recur-rule-part = ( "FREQ" "=" freq )
                            / ( "UNTIL" "=" enddate )
                            / ( "COUNT" "=" 1*DIGIT )
                            / ( "INTERVAL" "=" 1*DIGIT )
                            / ( "BYSECOND" "=" byseclist )
                            / ( "BYMINUTE" "=" byminlist )
                            / ( "BYHOUR" "=" byhrlist )
                            / ( "BYDAY" "=" bywdaylist )
                            / ( "BYMONTHDAY" "=" bymodaylist )
                            / ( "BYYEARDAY" "=" byyrdaylist )
                            / ( "BYWEEKNO" "=" bywknolist )
                            / ( "BYMONTH" "=" bymolist )
                            / ( "BYSETPOS" "=" bysplist )
                            / ( "WKST" "=" weekday )

freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" / "WEEKLY" / "MONTHLY" / "YEARLY"
enddate = date / date-time
byseclist = ( seconds *("," seconds) )
seconds = 1*2DIGIT 	; 0 à 60
byminlist = ( minutes *("," minutes) )
minutes = 1*2DIGIT 	; 0 à 59
byhrlist = ( hour *("," hour) )
hour = 1*2DIGIT 	; 0 à 23
bywdaylist  = ( weekdaynum *("," weekdaynum) )	; (numéro du jour de la semaine)
weekdaynum  = [[plus / moins] ordwk] weekday
plus = "+"
moins = "-"
ordwk = 1*2DIGIT	; 1 à 53
weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
; Correspondant aux jours de la semaine dimanche, lundi, mardi, mercredi, jeudi, vendredi, et samedi.
bymodaylist = ( monthdaynum *("," monthdaynum) )	; (numéro du jour du mois)
monthdaynum = [plus / moins] ordmoday
ordmoday    = 1*2DIGIT 	; 1 à 31
byyrdaylist = ( yeardaynum *("," yeardaynum) )	; (numéro du jour de l'année)
yeardaynum  = [plus / moins] ordyrday
ordyrday    = 1*3DIGIT 	; 1 à 366
bywknolist  = ( weeknum *("," weeknum) )
weeknum     = [plus / moins] ordwk
bymolist    = ( monthnum *("," monthnum) )
monthnum    = 1*2DIGIT	; 1 à 12
bysplist    = ( setposday *("," setposday) )
setposday   = yeardaynum

Description : ce type de valeur est une valeur structurée consistant en une liste d'une ou plusieurs parties de grammaire de récurrence. Chaque partie de règle est définie par une paire NAME=VALUE. Les parties de règle sont séparées les unes des autres par le caractère POINT-VIRGULE. Les parties de règle ne sont pas ordonnées dans une séquence particulière. Les parties de règle individuelles DOIVENT être spécifiées une seule fois. Les applications conformes DOIVENT accepter des parties de règle ordonnées dans toute séquence, mais pour assurer la rétro compatibilité avec les applications qui datent d'avant la présente révision de iCalendar la partie de règle FREQ DOIT être la première partie de règle spécifiée dans une valeur RECUR.

La partie de règle FREQ identifie le type de règle de récurrence. Cette partie de règle DOIT être spécifiée dans la règle de récurrence. Les valeurs valides incluent SECONDLY (par seconde), pour spécifier les événements répétitifs sur la base d'un intervalle d'une seconde ou plus ; MINUTELY (par minute), pour spécifier les événements répétitifs sur la base d'un intervalle d'une minute ou plus ; HOURLY (par heure), pour spécifier les événements répétitifs sur la base d'un intervalle d'une heure ou plus ; DAILY (quotidien), pour spécifier les événements répétitifs sur la base d'un intervalle d'un jour ou plus ; WEEKLY (hebdomadaire), pour spécifier les événements répétitifs sur la base d'un intervalle d'une semaine ou plus ; MONTHLY (mensuel), pour spécifier des événements répétitifs sur la base d'un intervalle d'un mois ou plus ; et YEARLY (annuel), pour spécifier des événements répétitifs sur la base d'un intervalle d'une année ou plus.

La partie de règle INTERVAL contient un entier positif qui représente à quels intervalles 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 une règle MINUTELY, chaque heure pour une règle HOURLY, chaque jour pour une règle DAILY, chaque semaine pour une règle WEEKLY, chaque mois pour une règle MONTHLY, et chaque année pour une règle YEARLY. Par exemple, dans une règle DAILY, une valeur de "8" signifie tous les huit jours.

La partie de règle UNTIL définit une valeur de DATE ou DATE-TIME qui lie la règle de récurrence d'une manière inclusive. Si la valeur spécifiée par UNTIL est synchronisée avec la récurrence spécifiée, cette DATE ou DATE-TIME devient la dernière instance de la récurrence. La valeur de la partie de règle UNTIL DOIT avoir le même type de valeur que la propriété "DTSTART". De plus, si la propriété "DTSTART" est spécifiée comme une date avec heure locale, alors la partie de règle UNTIL DOIT aussi être spécifiée comme une date avec heure locale. Si la propriété "DTSTART" est spécifiée comme une date avec temps UTC ou une date avec heure locale et référence de zone horaire, alors la partie de règle UNTIL DOIT être spécifiée comme date avec temps UTC. Dans le cas de sous composants "STANDARD" et "DAYLIGHT", la partie de règle UNTIL DOIT toujours être spécifiée comme une date avec temps UTC. Si elle est spécifiée comme une valeur DATE-TIME, elle DOIT alors être spécifiée dans un format de temps UTC. Si elle n'est pas présente, et si la partie de règle COUNT est aussi absente, la "RRULE" est considérée se répéter pour toujours.

La partie de règle COUNT définit le nombre d'occurrences de la récurrence. La valeur de propriété "DTSTART" compte toujours comme la première occurrence.

La partie de règle BYSECOND spécifie une liste de secondes séparées par une VIRGULE au sein d'une minute. Les valeurs valides sont 0 à 60. La partie de règle BYMINUTE spécifie une liste de minutes séparées par une VIRGULE au sein d'une heure. Les valeurs valides sont 0 à 59. La partie de règle BYHOUR spécifie une liste d'heures du jour séparées par une VIRGULE. Les valeurs valides sont de 0 à 23. Les parties de règle BYSECOND, BYMINUTE et BYHOUR NE DOIVENT PAS être spécifiées quand la propriété associée "DTSTART" a un type de valeur DATE. Ces parties de règle DOIVENT être ignorées dans une valeur RECUR qui viole l'exigence ci-dessus (par exemple, générée par des applications qui datent d'avant la présente révision de iCalendar).

La partie de règle BYDAY spécifie une liste de jours de la semaine séparés par une VIRGULE ; SU indique dimanche ; MO indique lundi ; TU indique mardi ; WE indique mercredi ; TH indique jeudi ; FR indique vendredi ; et SA indique samedi.

Chaque valeur BYDAY peut aussi être précédée d'un entier positif (+n) ou négatif (-n). Si il est présent, cela indique le nombre d'occurrences d'un jour spécifique au sein de la "RRULE" MONTHLY ou YEARLY.

Par exemple, au sein d'une règle MONTHLY, +1MO (ou simplement 1MO) représente le premier lundi dans le mois, tandis que -1MO représente le dernier lundi du mois. La valeur numérique d'une partie de règle BYDAY avec la partie de règle FREQ réglée à YEARLY correspond à un décalage au sein du mois quand la partie de règle BYMONTH est présente, et correspond à un décalage dans l'année quand les parties de règle BYWEEKNO ou BYMONTH sont présentes. Si un modificateur entier n'est pas présent, cela signifie tous les jours de ce type dans la fréquence spécifiée. Par exemple, dans une règle MONTHLY, MO représente tous les lundis dans le mois. La partie de règle BYDAY NE DOIT PAS être spécifiée avec une valeur numérique quand la partie de règle FREQ n'est pas réglée à MONTHLY ou YEARLY. De plus, la partie de règle BYDAY NE DOIT PAS être spécifiée avec une valeur numérique dont la partie de règle FREQ serait réglée à YEARLY quand la partie de règle BYWEEKNO est spécifiée.

La partie de règle BYMONTHDAY spécifie une liste de jours du mois séparés par une VIRGULE. Les valeurs valides sont de 1 à 31 ou de -31 à -1. Par exemple, -10 représente du dixième au dernier jour du mois. La partie de règle BYMONTHDAY NE DOIT PAS être spécifiée quand la partie de règle FREQ est réglée à WEEKLY.

La partie de règle BYYEARDAY spécifie une liste de jours de l'année séparés par une VIRGULE. Les valeurs valides sont de 1 à 366 ou de -366 à -1. Par exemple, -1 représente le dernier jour de l'année (31 décembre) et -306 représente le 306ème jour à partir du dernier jour de l'année (le 1er mars). La partie de règle BYYEARDAY NE DOIT PAS être spécifiée quand la partie de règle FREQ est réglée à DAILY, WEEKLY, ou MONTHLY.

La partie de règle BYWEEKNO spécifie une liste séparée de VIRGULES des ordinaux qui spécifient les semaines de l'année. Les valeurs valides sont de 1 à 53 ou de -53 à -1. Cela correspond aux semaines selon le numérotage des semaines défini dans [ISO.8601]. Une semaine est définie comme une période de sept jours, commençant le jour de la semaine défini comme étant le début de la semaine (voir WKST). Le semaine numéro un de l'année calendaire est la première semaine qui contient au moins quatre (4) jours de cette année calendaire. Cette partie de règle NE DOIT PAS être utilisée quand la partie de règle FREQ est réglée à autre chose que YEARLY. Par exemple, 3 représente la troisième semaine de l'année.

Note : en supposant un début de semaine le lundi, la semaine 53 peut seulement se produire quand le premier janvier est un jeudi ou si il y a une année bissextile et que le 1er janvier est un mercredi.

La partie de règle BYMONTH spécifie une liste des mois de l'année séparés par des VIRGULES. Les valeurs valides sont de 1 à 12.

La partie de règle WKST spécifie le jour où commence la semaine de travail. Les valeurs valides sont MO, TU, WE, TH, FR, SA, et SU. Ceci est significatif quand une "RRULE" WEEKLY a un intervalle supérieur à 1, et qu'une partie de règle BYDAY est spécifiée. Ceci est aussi significatif quand dans une "RRULE" YEARLY une partie de règle BYWEEKNO est spécifiée. La valeur par défaut est MO.

La partie de règle BYSETPOS spécifie une liste séparée par une VIRGULE des valeurs qui correspondent à la énième occurrence au sein de l'ensemble des instances de récurrence spécifié par la règule. BYSETPOS opère sur un ensemble d'instances de récurrence dans un intervalle de la règle de récurrence. Par exemple, dans une règle WEEKLY, l'intervalle va être une semaine. Un ensemble d'instances de récurrence commence au début de l'intervalle défini par la partie de règle FREQ. Les valeurs valides sont de 1 à 366 ou de -366 à -1. Elle DOIT seulement être utilisée en conjonction avec une autre partie de règle BYxxx. Par exemple "le dernier jour ouvrable du mois" pourrait être représenté comme :

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

Chaque valeur BYSETPOS peut inclure un entier positif (+n) ou négatif (-n). Si il est présent, cela indique la énième occurrence de l'occurrence spécifique au sein de l'ensemble des occurrences spécifié par la règle.

Les règles de récurrence peuvent générer des instances de récurrence avec une date invalide (par exemple, le 30 février) ou une heure locale non existante (par exemple, 1:30 AM un jour où l'heure locale est avancée d'une heure à 1:00 AM). De telles instances de récurrence DOIVENT être ignorées et NE DOIVENT PAS être comptées au titre de l'ensemble de récurrences.

Les informations, non contenues dans la règle, nécessaires pour déterminer l'heure de début et les dates de diverses instances récurrentes sont déduites de l'attribut de composant Heure de début ("DTSTART"). Par exemple, "FREQ=YEARLY;BYMONTH=1" ne spécifie pas un jour spécifique dans le mois ou une heure. Cette information serait la même que ce qui est spécifié pour "DTSTART".

Les parties de règle BYxxx modifient la récurrence d'une certaine manière. Les parties de règle BYxxx pour une période qui est la même ou supérieure à la fréquence réduisent ou limitent généralement le nombre d'occurrences de la récurrence générée. Par exemple, "FREQ=DAILY;BYMONTH=1" réduit le nombre d'instances de récurrence de tous les jours (si la partie de règle BYMONTH n'est pas présente) à tous les jours de janvier. Les parties de règle BYxxx pour une période inférieure à la fréquence augmentent ou étendent généralement le nombre d'occurrences de la récurrence. Par exemple, "FREQ=YEARLY;BYMONTH=1,2" augmente le nombre de jours au sein de l'ensemble de récurrences annuelles de 1 (si la partie de règle BYMONTH n'est pas présente) à 2.

Si plusieurs parties de règle BYxxx sont spécifiées, alors après avoir évalué les parties de règle FREQ et INTERVAL spécifiées, les parties de règle BYxxx sont appliquées à l'ensemble courant d'occurrences évaluées dans l'ordre suivant : BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR, BYMINUTE, BYSECOND et BYSETPOS ; ensuite COUNT et UNTIL sont évalués.

Le tableau ci-dessous résume les dépendances du comportement d'expansion ou de limitation de partie de règle BYxxx sur la valeur de partie de règle FREQ.

Le terme "N/A" signifie que la partie de règle BYxxx correspondante NE DOIT PAS être utilisée avec la valeur FREQ correspondante.

BYDAY a un comportement un peu particulier selon la valeur de FREQ et cela est décrit dans des notes séparées en dessous du tableau.

	SECONDLY	MINUTELY	HOURLY	DAILY	WEEKLY	MONTHLY	YEARLY
BYMONTH	Limite	Limite	Limite	Limite	Limite	Limite	Étend
BYWEEKNO	N/A	N/A	N/A	N/A	N/A	N/A	Étend
BYYEARDAY	Limite	Limite	Limite	N/A	N/A	N/A	Étend
BYMONTHDAY	Limite	Limite	Limite	Limite	N/A	Étend	Étend
BYDAY	Limite	Limite	Limite	Limite	Étend	Note 1	Note 2
BYHOUR	Limite	Limite	Limite	Étend	Étend	Étend	Étend
BYMINUTE	Limite	Limite	Étend	Étend	Étend	Étend	Étend
BYSECOND	Limite	Étend	Étend	Étend	Étend	Étend	Étend
BYSETPOS	Limite	Limite	Limite	Limite	Limite	Limite	Limite 

Note 1 : Limite si BYMONTHDAY est présent; autrement, extension spéciale pour MONTHLY.

Note 2 :	Limite si BYYEARDAY ou BYMONTHDAY est présent ; autrement, extension spéciale pour WEEKLY si BYWEEKNO est présent ; autrement, extension spéciale pour MONTHLY si BYMONTH est présent ; autrement, extension spéciale pour YEARLY.

Voici un exemple d'évaluation de plusieurs parties de règle BYxxx.

DTSTART;TZID=America/New_York:19970105T083000
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;BYMINUTE=30

D'abord, le "INTERVAL=2" va être appliqué à "FREQ=YEARLY" pour arriver à "tous les deux ans". Ensuite, "BYMONTH=1" va être appliqué pour arriver à "chaque janvier, tous les deux ans". Puis, "BYDAY=SU" va être appliqué pour arriver à "tous les dimanches de janvier, tous les deux ans". Puis, "BYHOUR=8,9" va être appliqué pour arriver à "tous les dimanches de janvier à 8 AM et 9 AM, tous les deux ans". Puis, "BYMINUTE=30" va être appliqué pour arriver à "tous les dimanches de janvier à 8:30 AM et 9:30 AM, tous les deux ans". Ensuite, faute d'informations pour "RRULE", la seconde est déduite de "DTSTART", pour finir avec "tous les dimanches de janvier à 8:30 AM et 9:30 AM, tous les deux ans". De même, si la partie de règle BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY, ou BYMONTH manque, les minutes, heures, jours, ou mois appropriés vont être restitués à partir de la propriété "DTSTART".

Si l'heure de début locale calculée d'une instance récurrente n'existe pas, ou se produit plus d'une fois, pour la zone horaire spécifiée, l'heure de l'instance récurrente est interprétée de la même manière qu'une valeur DATE-TIME explicite décrivant cette date et heure, comme spécifié au paragraphe 3.3.5.

Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, de codage de caractère BACKSLASH, voir le paragraphe  3.3.11) n'est défini pour ce type de valeur.

Exemple : voici une règle spécifiant 10 occurrences qui se produisent tous les deux jours :

FREQ=DAILY;COUNT=10;INTERVAL=2

D'autres exemples sont spécifiés au paragraphe 3.8.5.3.

 	3.3.11	Texte
Nom de valeur : TEXT
Objet : ce type de valeur est utilisé pour identifier des valeurs qui contiennent du texte lisible par l'homme.
Définition de format : ce type de valeur est défini par la notation suivante :

text = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)	; replié selon la description ci-dessus.

ESCAPED-CHAR = ("\\" / "\;" / "\," / "\N" / "\n")	; \\ code \, \N ou \n code une nouvelle ligne, \; code ;, \, code ,

TSAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-5B / %x5D-7E / NON-US-ASCII
; tout caractère sauf CONTROL non nécessaire pour le jeu de caractères courant, DQUOTE, ";", ":", "\", ","

Description : Si la propriété le permet, plusieurs valeurs TEXT sont spécifiées par une liste de valeurs séparées par une VIRGULE. Le langage dans lequel le texte est représenté peut être contrôlé par le paramètre de propriété "LANGUAGE". Une coupure de ligne de texte formatée intentionnelle DOIT seulement être incluse dans une valeur de propriété "TEXT" en représentant la coupure de ligne avec la séquence de caractère BARRE OBLIQUE INVERSE, suivi par une LATIN SMALL LETTER N ou une LATIN CAPITAL LETTER N, c'est-à-dire "\n" ou "\N". Les valeurs de propriété "TEXT" peuvent aussi contenir des caractères spéciaux qui sont utilisés comme délimiteurs, comme un caractère VIRGULE pour les listes de valeurs ou un caractère POINT-VIRGULE pour les valeurs structurées. Afin de prendre en charge l'inclusion de ces caractères spéciaux dans les valeurs de propriété "TEXT", elles DOIVENT être échappées avec un caractère  BARRE OBLIQUE INVERSE. Un caractère BARRE OBLIQUE INVERSE dans une valeur de propriété "TEXT" DOIT être échappé avec un autre caractère BARRE OBLIQUE INVERSE. Un caractère VIRGULE dans une valeur de propriété "TEXT" DOIT être échappé avec un caractère BARRE OBLIQUE INVERSE. Un caractère POINT-VIRGULE dans une valeur de propriété "TEXT" DOIT être échappé avec un caractère BARRE OBLIQUE INVERSE. Cependant, un caractère DEUX-POINTS dans une valeur de propriété "TEXT" NE DEVRA PAS être échappé avec un caractère BARRE OBLIQUE INVERSE.

Exemple : valeur de plusieurs lignes de :

Projet XYZ relecture finale
Salle de conférence - 3B
Soyez prêts.

serait représentée comme :

Projet XYZ relecture finale\nSalle de conférence – 3B\nSoyez prêts.

 	3.3.12	Heure
Nom de valeur : TIME
Objet : ce type de valeur est utilisé pour identifier des valeurs qui contiennent une heure.
Définition de format : ce type de valeur 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" est utilisée pour prendre en compte les secondes "sautées" positives.

time-utc = "Z"

Description : Si la propriété le permet, plusieurs valeurs "time" sont spécifiées par une liste de valeurs séparées par une VIRGULE. Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, de codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur. Le type de valeur "TIME" est utilisé pour identifier des valeurs qui contiennent une heure. Le format est fondé sur la représentation [ISO.8601] complète, format de base pour une heure. Le format de texte consiste en deux chiffres des 24 heures d'une journée (c'est-à-dire, des valeurs de 00 à 23) deux chiffres de minutes dans l'heure (c'est-à-dire, des valeurs de 00 à 59) et deux chiffres de secondes dans la minute (c'est-à-dire, des valeurs de 00 à 60). La valeur de secondes de 60 DOIT seulement être utiliséE pour tenir compte de seconde "sautée" positive. Les fractions de seconde ne sont pas prises en charge par ce format. En parallèle de la définition de "DATE-TIME" ci-dessus, le type de valeur "TIME" exprime des valeurs de temps sous trois formes : la forme de temps avec décalage à l'UTC NE DOIT PAS être utilisée. Par exemple, ce qui suit n'est pas valide pour une valeur de temps :

230000-0800	; format de temps invalide

Forme n° 1 : Heure locale
La forme Heure locale est simplement une valeur de temps qui ne contient pas la désignation UTC et ne fait pas référence à une zone horaire. Par exemple, pour 23:00 : 230000

Les valeurs de temps de ce type sont dites "flottantes" et ne sont pas liées à une zone horaire en particulier. Elles sont utilisées pour représenter la même valeur d'heure, minute, et seconde sans considération de la zone horaire actuellement observée. Par exemple, un événement peut être défini qui indique qu'un individu va être occupé de 11:00 à 13:00 chaque jour, sans se soucier de la zone horaire où la personne se trouve. Dans ces cas, une heure locale peut être spécifiée. Le receveur d'un objet iCalendar avec une valeur de propriété consistant en une heure locale, sans aucune information relative à une zone horaire, DEVRAIT interpréter la valeur comme fixée quelle que soit la zone horaire dans laquelle se trouve le "ATTENDEE" à tout instant. Cela signifie que deux "Participants", peuvent participer au même événement à des temps UTC différents ; les temps flottants DEVRAIENT seulement être utilisés quand c'est un comportement raisonnable.

Dans la plupart des cas, une heure fixée est désirable. Pour communiquer correctement une heure fixée dans une valeur de propriété, soit le temps UTC, soit l'heure locale avec référence de zone horaire, DOIT être spécifié.

L'utilisation de l'heure locale dans une valeur TIME sans le paramètre de propriété "TZID" est à interpréter comme une heure flottante, sans considération de l'existence de composants de calendrier "VTIMEZONE" dans l'objet iCalendar.

Forme n° 2 : Temps UTC
Le temps UTC, ou temps absolu, est identifié par un suffixe du caractère LATIN CAPITAL LETTER Z, la désignation UTC, ajoutée à la valeur de temps. Par exemple, pour représenter 07:00 UTC : 070000Z

Le paramètre de propriété "TZID" NE DOIT PAS être appliqué aux propriétés TIME dont les valeurs de temps sont spécifiées en UTC.

 	Forme n° 3 : Heure locale et référence de zone horaire
La forme d'heure locale avec référence aux informations de zone horaire est identifiée par l'utilisation du paramètre de propriété "TZID" pour faire référence à la définition de zone horaire appropriée. "TZID" est discuté en détails au paragraphe 3.2.19.

Exemple : ce qui suit représente 8:30 à New York en hiver, cinq heures après l'UTC, dans chacun des trois formats :
083000
133000Z
TZID=America/New_York:083000

 	3.3.13	URI
Nom de valeur : URI
Objet : ce type de valeur est utilisé pour identifier des valeurs qui contiennent un type de référence d'identifiant de ressource universel (URI, uniform resource identifier) à la valeur de propriété.
Définition de format : ce type de valeur est défini par la notation suivante :

uri = <comme défini à la Section 3 de la [RFC3986]>

Description : ce type de valeur pourrait être utilisé pour référencer des informations binaires, pour des valeurs qui sont grandes, ou qu'il est autrement indésirable d'inclure directement dans l'objet iCalendar. Les valeurs de propriété qui ont ce type de valeur DOIVENT suivre la syntaxe générique d'URI définie dans la [RFC3986]. Quand un paramètre de valeur de propriété est un type de valeur d'URI, l'URI DOIT être spécifié comme une valeur de chaîne entre guillemets. Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, de codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur.

Exemple : ce qui suit est un URI pour un fichier réseau :  http://exemple.com/my-report.txt

 	3.3.14	Décalage à l'UTC
Nom de valeur : UTC-OFFSET
Objet : ce type de valeur est utilisé pour identifier des propriétés qui contiennent un décalage de l'heure locale par rapport à l'UTC.
Définition de format : ce type de valeur est défini par la notation suivante :

utc-offset = time-numzone

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

Description : le caractère SIGNE PLUS DOIT être spécifié pour les décalages positifs à l'UTC (c'est-à-dire, après l'UTC). Le caractère TIRET-MOINS DOIT être spécifié pour les décalages négatifs à l'UTC (c'est-à-dire, en avance de l'UTC).  Les valeurs de "-0000" et "-000000" ne sont pas permises. Une time-second, si elle est présente, NE DOIT PAS être 60 ; si elle est absente, elle est zéro par défaut. Aucun codage de valeur de contenu supplémentaire (c'est-à-dire, un codage de caractère BACKSLASH, voir le paragraphe 3.3.11) n'est défini pour ce type de valeur.

Exemple : les décalages suivants à l'UTC sont donnés pour l'heure standard à New York (cinq heures après l'UTC) et Genève (une heure en avance de l'UTC) : -0500,  +0100.

 	3.4	Objet iCalendar 
L'objet de cœur de calendrier et de programmation est une collection d'informations de calendrier et de programmation. Normalement, ces informations vont consister en un flux iCalendar avec un seul objet iCalendar. Cependant, plusieurs objets iCalendar peuvent être groupés à la suite dans un flux iCalendar. La première ligne et la dernière de l'objet iCalendar DOIVENT contenir une paire de chaînes de délimiteur d'objet iCalendar. La syntaxe d'un flux iCalendar est comme suit :

icalstream = 1*icalobject	; (flux iCalendar = 1*objet iCalendar)

icalobject = "BEGIN" ":" "VCALENDAR" CRLF	; (objet iCalendar = "DÉBUT" ":" "VCALENDAR" CRLF)
                    icalbody	; (corps iCalendar)
                    "END" ":" "VCALENDAR" CRLF	; ("FIN" ":" "VCALENDAR" CRLF)

Ce qui suit est un exemple simple d'objet iCalendar :

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:19970610T172345Z-AF23B2@exemple.com
DTSTAMP:19970610T172345Z
DTSTART:19970714T170000Z
DTEND:19970715T040000Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR

 	3.5	Propriété
Une propriété est la définition d'un attribut individuel décrivant un objet de calendrier ou un composant de calendrier. Une propriété prend la forme définie par la notation "contentline" définie au paragraphe 3.1.

Voici un exemple de propriété : DTSTART:19960415T133000Z

Le présent mémoire n'impose aucun ordre des propriétés au sein d'un objet iCalendar.

Les noms de propriétés, les noms de paramètres, et les valeurs de paramètre énumérés sont insensibles à la casse. Par exemple, le nom de propriété "DUE" est la même chose que "due" et "Due", DTSTART;TZID=America/New_York:19980714T120000 est la même chose que DtStart;TzID=America/New_York:19980714T120000.

 	3.6	Composants de calendrier
Le corps de l'objet iCalendar consiste en 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 à l'objet de calendrier comme un tout. Les composants de calendrier sont des collections de propriétés qui expriment une sémantique particulière de calendrier. Par exemple, le composant de calendrier peut spécifier un événement, un chose à faire, une entrée de journal, des informations de zone horaire, des informations de temps libre/occupé, ou une alarme.

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

icalbody = calprops component

calprops = *(	; le suivant est EXIGÉ, mais NE DOIT PAS se produire plus d'une fois. ;
prodid / version /	; le suivant est FACULTATIF, mais NE DOIT PAS se produire plus d'une fois. ;
calscale / method /	; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
x-prop / iana-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. Des formes spéciales d'objets iCalendar sont possibles pour ne publier que les heures d'occupation (c'est-à-dire, seulement un composant de calendrier "VFREEBUSY") ou une zone horaire (c'est-à-dire, seulement un composant de calendrier "VTIMEZONE"). De plus, un objet iCalendar complexe qui est utilisé pour capturer une photographie complète du contenu d'un calendrier est possible (par exemple, composé de nombreux composants de calendriers différents). Plus couramment, un objet iCalendar va consister en juste un seul composant de calendrier "VEVENT", "VTODO", ou "VJOURNAL". Les applications DOIVENT ignorer les valeurs x-comp et iana-comp qu'elles ne reconnaissent pas. Les applications qui prennent en charge l'importation d'objets iCalendar DEVRAIENT prendre en charge tous les types de composant définis dans le présent document, et NE DEVRAIT PAS éliminer en silence de composants car cela peut conduire à la perte des données de l'utilisateur.

 	3.6.1	Composant d'événement
Nom de composant : VEVENT
Objet : fournir un groupement de propriétés de composants qui décrivent un événement.
Définition de format : un composant de calendrier "VEVENT" est défini par la notation suivante :

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

eventprop  = *(	; le suivant est EXIGÉ, mais NE DOIT PAS se produire plus d'une fois. ;
dtstamp / uid /	; le suivant est EXIGÉ si le composant apparaît dans un objet iCalendar qui ne spécifie pas la propriété "METHOD" ; autrement, il est FACULTATIF ; en tout cas, il NE DOIT PAS se produire plus d'une fois. ;
dtstart /	; le suivant est FACULTATIF, mais NE DOIT PAS se produire plus d'une fois. ;
class / created / description / geo / last-mod / location / organizer / priority / seq / status / summary / transp / url / recurid /
	; le suivant est FACULTATIF, mais NE DEVRAIT PAS se produire plus d'une fois. ;
rrule /	; 'dtend' ou 'duration' PEUT apparaître dans 'eventprop', mais 'dtend' et 'duration' NE DOIVENT PAS se produire dans le même 'eventprop'. ;
dtend / duration /	; les suivants sont FACULTATIF, et PEUVENT se produire plus d'une fois. ;
attach / attendee / categories / comment / contact / exdate / rstatus / related / resources / rdate / x-prop / iana-prop
;
)

Description : un composant de calendrier "VEVENT" est un groupement de propriétés de composant, incluant éventuellement des composants de calendrier "VALARM", qui représentent une durée programmée sur un calendrier. Par exemple, il peut être une activité, comme une réunion de département d'une heure de 8:00 AM à 9:00 AM, demain. Généralement, un événement va prendre du temps sur un calendrier individuel. Donc, l'événement va apparaître comme un intervalle opaque dans une recherche des temps occupés. Autrement, l'événement peut avoir sa transparence de temps réglée à "TRANSPARENT" afin d'empêcher le blocage de l'événement dans les recherches de temps occupé.

Le "VEVENT" est aussi le composant de calendrier utilisé pour spécifier un rappel d'anniversaire ou de jours particuliers dans un calendrier. Ces événements ont un type de valeur DATE pour la propriété "DTSTART" au lieu du type de valeur par défaut de DATE-TIME. Si un tel "VEVENT" a une propriété "DTEND", il DOIT être spécifié aussi comme une valeur DATE. Le type anniversaire de "VEVENT" peut s'étendre sur plus d'une date (c'est-à-dire, la valeur de propriété "DTEND" est réglée à une date de calendrier après la valeur de propriété "DTSTART"). Si un tel "VEVENT" a une propriété "DURATION", il DOIT être spécifié comme une valeur "dur-day" ou "dur-week".

La propriété "DTSTART" pour un "VEVENT" spécifie le début inclusif de l'événement. Pour les événements récurrents, elle spécifie aussi la toute première instance dans l'ensemble de récurrences. La propriété "DTEND" pour un composant de calendrier "VEVENT" spécifie la fin non inclusive de l'événement. Dans les cas où un composant de calendrier "VEVENT" spécifie une propriété "DTSTART" avec un type de valeur DATE mais pas de propriété "DTEND" ni "DURATION", la durée de l'événement est prise comme étant d'un jour. Dans les cas où un composant de calendrier "VEVENT" spécifie une propriété "DTSTART" avec un type de valeur DATE-TIME mais pas de propriété "DTEND", l'événement se termine à la même date et heure de calendrier que spécifié par la propriété "DTSTART".

Le composant de calendrier "VEVENT" ne peut pas être incorporé dans un autre composant de calendrier. Cependant, les composants de calendrier "VEVENT" peuvent être en relation les uns avec les autres ou avec un composant de calendrier "VTODO" ou "VJOURNAL" avec la propriété "RELATED-TO".

Exemple : Voici un exemple du composant de calendrier "VEVENT" utilisé pour représenter une réunion qui va aussi être opaque aux recherches de temps occupé :

BEGIN:VEVENT
UID:19970901T130000Z-123401@exemple.com
DTSTAMP:19970901T130000Z
DTSTART:19970903T163000Z
DTEND:19970903T190000Z
SUMMARY:Revue annuelle des employés
CLASS:PRIVATE
CATEGORIES:BUSINESS,HUMAN RESOURCES
END:VEVENT

Voici un exemple du composant de calendrier "VEVENT" utilisé pour représenter un rappel qui ne va pas être opaque, mais plutôt transparent, aux recherches de temps d'occupation :

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

Voici un exemple du composant de calendrier "VEVENT" utilisé pour représenter un anniversaire qui va se produire tous les ans :

BEGIN:VEVENT
UID:19970901T130000Z-123403@exemple.com
DTSTAMP:19970901T130000Z
DTSTART;VALUE=DATE:19971102
SUMMARY:Our Blissful Anniversary
TRANSP:TRANSPARENT
CLASS:CONFIDENTIAL
CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
RRULE:FREQ=YEARLY
END:VEVENT

Voici un exemple du composant de calendrier "VEVENT" utilisé pour représenter un événement sur plusieurs jours programmé du 28 juin 2007 au 8 juillet, 2007 inclus. Noter que la propriété "DTEND" est réglée au 9 juillet 2007, car la propriété "DTEND" spécifie la fin non incluse de l'événement.

BEGIN:VEVENT
UID:20070423T123432Z-541111@exemple.com
DTSTAMP:20070423T123432Z
DTSTART;VALUE=DATE:20070628
DTEND;VALUE=DATE:20070709
SUMMARY:Festival International de Jazz de Montréal
TRANSP:TRANSPARENT
END:VEVENT

 	3.6.2	Composant To-Do 
Nom de composant : VTODO
Objet : fournir un groupement de propriétés de calendrier qui décrivent une chose à faire.
Définition de format : un composant de calendrier "VTODO" est défini par la notation suivante :

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

todoprop = *(	; le suivant est EXIGÉ, mais NE DOIT PAS se produire plus d'une fois. ;
dtstamp / uid /	; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
class / completed / created / description / dtstart / geo / last-mod / location / organizer / percent / priority / recurid / seq / status / summary / url /	; le suivant est FACULTATIF, mais NE DEVRAIT PAS se produire plus d'une fois. ;
rrule /	; 'due' ou 'duration' PEUT apparaître dans une 'todoprop', mais 'due' et 'duration' NE DOIVENT PAS se produire dans la même 'todoprop'. Si 'duration' apparaît dans une 'todoprop', alors 'dtstart' DOIT aussi apparaître dans la même 'todoprop'. ;
due / duration /	; les suivants sont FACULTATIFS, et PEUVENT se produire plus d'une fois. ;
attach / attendee / categories / comment / contact / exdate / rstatus / related / resources / rdate / x-prop / iana-prop
;
)

Description : un composant de calendrier "VTODO" est un groupement de propriétés de composant et éventuellement de composants de calendrier "VALARM" qui représentent un élément d'action ou une affectation. Par exemple, il peut être utilisé pour représenter un élément de travail affecté à un individu, comme "rapporter aujourd'hui les frais de déplacement". Le composant de calendrier "VTODO" ne peut pas être incorporé dans un autre composant de calendrier.  Cependant, les composants de calendrier "VTODO" peuvent se rapporter l'un à l'autre ou à un "VEVENT" ou à un composant de calendrier "VJOURNAL" avec la propriété "RELATED-TO". Un composant de calendrier "VTODO" sans les  propriétés "DTSTART" et "DUE" (ou "DURATION") spécifie une chose à faire qui va être associée à chaque date successive de calendrier, jusqu'à ce qu'elle soit achevée.

Exemples : Voici un exemple d'un composant de calendrier "VTODO" qui doit être achevé avant le 1er mai 2007. À minuit le 1er mai, 2007 cette chose à faire sera considérée dépassée.

BEGIN:VTODO
UID:20070313T123432Z-456553@exemple.com
DTSTAMP:20070313T123432Z
DUE;VALUE=DATE:20070501
SUMMARY:envoyer la déclaration de revenus du Québec pour 2006
CLASS:CONFIDENTIAL
CATEGORIES:FAMILY,FINANCE
STATUS:NEEDS-ACTION
END:VTODO

Voici un exemple d'un composant de calendrier "VTODO" qui était dû avant 13:00 UTC le 9 juillet 2007 et a été achevé le 7 juillet 2007 à 10:00 UTC.

BEGIN:VTODO
UID:20070514T103211Z-123404@exemple.com
DTSTAMP:20070514T103211Z
DTSTART:20070514T110000Z
DUE:20070709T130000Z
COMPLETED:20070707T100000Z
SUMMARY:Soumettre le projet Internet révisé
PRIORITY:1
STATUS:NEEDS-ACTION
END:VTODO

 	3.6.3	Composant Journal
Nom de composant : VJOURNAL
Objet : fournit un groupement de propriétés de composant qui décrivent une entrée de journal.
Définition de format : un composant de calendrier "VJOURNAL" est défini par la notation suivante :

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

jourprop  = *(
; Les suivants sont EXIGÉS, mais NE DOIVENT PAS se produire plus d'une fois. ;
dtstamp / uid /	
; Les suivants sont FACULTATIF, mais NE DOIVENT PAS se produire plus d'une fois. ;
class / created / dtstart / last-mod / organizer / recurid / seq / status / summary / url /
; Le suivant est FACULTATIF, mais NE DEVRAIT PAS se produire plus d'une fois. ;
rrule /
; Les suivants sont FACULTATIFS, et PEUVENT se produire plus d'une fois. ;
attach / attendee / categories / comment / contact / description / exdate / related / rdate / rstatus / x-prop / iana-prop
;
)

Description : un composant de calendrier "VJOURNAL" est un groupement de propriétés de composant qui représente une ou plusieurs notes de texte descriptif associées à une date de calendrier particulière. La propriété est utilisée pour spécifier la date de calendrier à laquelle l'entrée de journal est associée. Généralement, il va avoir un type de données de valeur de DATE, mais il peut aussi être utilisé pour spécifier un type de données de valeur DATE-TIME. Des exemples d'entrée de journal incluent un enregistrement journalier de corps législatif ou une entrée de journal de contacts téléphoniques individuels du jour ou une liste ordonnée des réalisations du jour. Le composant de calendrier "VJOURNAL" peut aussi être utilisé pour associer un document à une date du calendrier. Le composant de calendrier "VJOURNAL" ne prend pas de temps sur le calendrier. Donc, il ne joue pas de rôle dans les recherches de temps libre ou occupé -- il est vu comme une valeur de temps transparente de TRANSPARENT. Il est transparent pour toutes ces recherches. Le composant de calendrier "VJOURNAL" ne peut pas être incorporé dans un autre composant de calendrier. Cependant, les composants de calendrier "VJOURNAL" peuvent être en relation les uns avec les autres ou avec un composant de calendrier "VEVENT" ou "VTODO", avec la propriété "RELATED-TO".

Exemple : Voici un exemple de composant de calendrier "VJOURNAL" :

BEGIN:VJOURNAL
UID:19970901T130000Z-123405@exemple.com
DTSTAMP:19970901T130000Z
DTSTART;VALUE=DATE:19970317
SUMMARY:compte-rendu de la réunion du personnel
DESCRIPTION:1. réunion du personnel : Participants iJoe\,Lisa\, et Bob.
 Les plans du projet Aurora ont été revus.
  Il n'y a actuellement pas de réserves budgétaires pour ce projet.
  Lisa va revoir la gestion. Prochaine réunion mardi.\n
  2. Conférence téléphonique : appel au représentant des ventes de ABC Corp.
  pour discuter de la nouvelle imprimante. Promis de nous faire une démo vendredi.\n3.
 Henry Miller (Handsoff Insurance): la voiture a été
  écrasée par un arbre. Il cherche un loueur de voitures. 555-2323 (tél).
END:VJOURNAL

 	3.6.4	Composant Libre/occupé
Nom de composant : VFREEBUSY
Objet :  fournir un groupement des propriétés de composant qui décrivent une demande des temps libres/occupés, une réponse à une demande des temps libres/occupés, ou un ensemble publié des temps occupés.
Définition de format : un composant de calendrier "VFREEBUSY" est défini par la notation suivante :

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

fbprop  = *(	; les suivants sont EXIGÉS, mais NE DOIVENT PAS se produire plus d'une fois. ;
dtstamp / uid /	; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
contact / dtstart / dtend / organizer / url /
; les suivants sont FACULTATIFS, et PEUVENT se produire plus d'une fois. ;
attendee / comment / freebusy / rstatus / x-prop / iana-prop
;
)

Description : un composant de calendrier "VFREEBUSY" est un groupement de propriétés de composant qui représente soit une demande des informations de temps libre ou occupé, une réponse à une demande des informations de temps libre ou occupé, ou un ensemble publié d'informations de temps occupé. Quand utilisé pour demander des informations de temps libre ou occupé, la propriété "ATTENDEE" spécifie les utilisateurs de calendrier dont le temps libre/occupé es demandé ; la propriété "ORGANIZER" spécifie l'utilisateur de calendrier qui demande le temps libre/occupé ; les propriétés "DTSTART" et "DTEND" spécifient la fenêtre de temps pour laquelle le temps libre/occupé est demandé ; les propriétés "UID" et "DTSTAMP" sont spécifiées pour aider à un séquençage approprié de plusieurs demandes de temps libre/occupé. Quand utilisé pour répondre à une demande de temps libre/occupé , la propriété "ATTENDEE" spécifie l'utilisateur de calendrier qui répond à la demande de temps libre/occupé ; la propriété "ORGANIZER" spécifie l'utilisateur de calendrier qui a à l'origine demandé le temps libre/occupé ; la propriété "FREEBUSY" spécifie les informations de temps libre/occupé (si elles existent) ; et les propriétés "UID" et "DTSTAMP" sont spécifiées pour aider au séquençage approprié de plusieurs réponses de temps libre/occupé. Quand utilisé pour publier le temps occupé, la propriété "ORGANIZER" spécifie l'utilisateur de calendrier associé au temps occupé publié ; les propriétés "DTSTART" et "DTEND" spécifient une fenêtre de temps inclusive qui entoure les informations de temps occupé ; la propriété "FREEBUSY" spécifie les informations de temps libre/occupé publiées ; et la propriété "DTSTAMP" spécifie la DATE-TIME à laquelle cet objet iCalendar a été créé.

Le composant de calendrier "VFREEBUSY" ne peut pas être incorporé dans un autre composant de calendrier. Plusieurs composants de calendrier "VFREEBUSY" peuvent être spécifiés dans un objet iCalendar. Cela permet le groupement des informations de temps libre/occupé dans des collections logiques, comme des regroupements mensuels d'informations de temps libre/occupé.

Le composant de calendrier "VFREEBUSY" est destiné à être utilisé dans des méthodes d'objet iCalendar qui impliquent des demandes de temps libre, des demandes de temps occupé, des demandes des temps libres et occupés, et les réponses associées.

Les informations libre/occupé sont représentées par la propriété "FREEBUSY". Cette propriété donne une représentation concise des périodes. Une ou plusieurs propriétés "FREEBUSY" peuvent être spécifiées dans le composant de calendrier "VFREEBUSY".

Quand elles sont présentes dans un composant de calendrier "VFREEBUSY", les propriétés "DTSTART" et "DTEND" DEVRAIENT être spécifiées avant toute propriété "FREEBUSY".

Les propriétés de récurrence ("RRULE", "RDATE", "EXDATE") ne sont pas permises dans un composant de calendrier "VFREEBUSY". Tous les événements récurrents sont résolus dans leur période d'occupation individuelle en utilisant la propriété "FREEBUSY".

Exemple : Voici un exemple d'un composant de calendrier "VFREEBUSY" utilisé pour demander les informations de temps libre ou occupé :

BEGIN:VFREEBUSY
UID:19970901T082949Z-FA43EF@exemple.com
ORGANIZER:mailto:jane_doe@exemple.com
ATTENDEE:mailto:john_public@exemple.com
DTSTART:19971015T050000Z
DTEND:19971016T050000Z
DTSTAMP:19970901T083000Z
END:VFREEBUSY

Voici un exemple d'un composant de calendrier "VFREEBUSY" utilisé pour répondre à la demande avec les informations de temps occupé :

BEGIN:VFREEBUSY
UID:19970901T095957Z-76A912@exemple.com
ORGANIZER:mailto:jane_doe@exemple.com
ATTENDEE:mailto:john_public@exemple.com
DTSTAMP:19970901T100000Z
FREEBUSY:19971015T050000Z/PT8H30M,
19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
URL:http://exemple.com/pub/busy/jpublic-01.ifb
COMMENT:Ce fichier iCalendar contient les informations de temps
 d'occupation pour les trois prochains mois.
END:VFREEBUSY

Voici un exemple d'un composant de calendrier "VFREEBUSY" utilisé pour publier les informations de temps occupé :

BEGIN:VFREEBUSY
UID:19970901T115957Z-76A912@exemple.com
DTSTAMP:19970901T120000Z
ORGANIZER:jsmith@exemple.com
DTSTART:19980313T141711Z
DTEND:19980410T141711Z
FREEBUSY:19980314T233000Z/19980315T003000Z
FREEBUSY:19980316T153000Z/19980316T163000Z
FREEBUSY:19980318T030000Z/19980318T040000Z
URL:http://www.exemple.com/calendar/busytime/jsmith.ifb
END:VFREEBUSY

 	3.6.5	Composant Zone horaire
Nom de composant : VTIMEZONE
Objet : donne un groupement des propriétés de composant qui définissent une zone horaire.
Définition de format : un composant de calendrier "VTIMEZONE" est défini par la notation suivante :

timezonec  = "BEGIN" ":" "VTIMEZONE" CRLF
                    *(
tzid /	; 'tzid' est EXIGÉ, mais NE DOIT PAS se produire plus d'une fois. ;
; 'last-mod' et 'tzurl' sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
last-mod / tzurl /
; un de 'standardc' ou 'daylightc' DOIT se produire et chacun PEUT se produire plus d'une fois. ;
standardc / daylightc /
; les suivants sont FACULTATIFS, et PEUVENT se produire plus d'une fois. ;
x-prop / iana-prop
;
)
"END" ":" "VTIMEZONE" CRLF

standardc  = "BEGIN" ":" "STANDARD" CRLF
                     tzprop
                    "END" ":" "STANDARD" CRLF

daylightc  = "BEGIN" ":" "DAYLIGHT" CRLF
                     tzprop
                    "END" ":" "DAYLIGHT" CRLF

tzprop  = *(	; les suivants sont EXIGÉS, mais NE DOIVENT PAS se produire plus d'une fois. ;
dtstart / tzoffsetto / tzoffsetfrom /
; le suivant est FACULTATIF, mais NE DEVRAIT PAS se produire plus d'une fois. ;
rrule /
; les suivants sont FACULTATIFS, et PEUVENT se produire plus d'une fois. ;
comment / rdate / tzname / x-prop / iana-prop
;
)

Description : une zone horaire est définie sans ambiguïté par l'ensemble des règles de mesure du temps déterminées par l'organisme gouvernemental d'une certaine aire géographique. Ces règles décrivent, au minimum, le décalage de base à l'égard de la zone horaire de l'UTC, souvent appelé le décalage à l'heure standard. De nombreuses localisations ajustent leur heure standard d'une heure vers l'avant ou l'arrière, afin de s'accommoder de changements saisonnier du nombre d'heures à la lumière du jour, qu'on appelle souvent l'heure d'été. Certaines localisations ajustent leur heure d'une fraction d'heure. L'heure standard est aussi appelée l'heure d'hiver. L'heure pour économiser la lumière du jour est aussi appelée l'heure avancée, l'heure d'été, ou l'heure légale dans certains pays. Le tableau suivant montre les changements des règles de zones horaires en effet pour la ville de New York à partir de 1967. Chaque ligne représente une description ou règle d'observation particulière.

Règle d'observation effective

Date	(Date-Time)	Décalage	Abréviation
1967-1973	dernier dimanche d'avril à 02:00	0400	EDT
1967-2006	dernier dimanche d'octobre à 02:00	-0500	EST
1974-1974	6 janvier à 02:00	-0400	EDT
1975-1975	23 février à 02:00 	-0400	EDT
1976-1986	dernier dimanche d'avril à 02:00	-0400	EDT
1987-2006	premier dimanche d'avril à 02:00	-0400	EDT
2007-*	second dimanche de mars à 02:00	-0400	EDT
2007-*	premier dimanche de novembre à 02:00	-0500	EST

Note : La spécification d'un registre mondial des zones horaires n'est pas traitée par le présent document et est laissé pour des études ultérieures. Cependant, les développeurs peuvent trouver dans la base de données TZ [TZDB] une référence utile. C'est une collection informelle, dans le domaine public des informations de zones horaires, qui est actuellement tenue par des participants volontaires de l'Internet, et est utilisée dans plusieurs systèmes d'exploitation. Cette base de données contient  les informations actuelles et historiques de zone horaire pour une grande diversité de localisations tout autour du globe ; elle donne un identifiant de zone horaire pour chaque ensemble de règles uniques de zone horaire en utilisation réelle depuis 1970, avec des données historiques remontant à l'introduction de l'heure standard.

L'interopérabilité entre deux applications de calendrier et programmation, en particulier pour les événements récurrents, les choses à faire ou les entrées de journal, dépend de la capacité de capturer et transporter les informations de date et heure dans un format non ambigu. La spécification des informations de zone horaire actuelles fait partie intégrante de ce comportement.

Si il est présent, le composant de calendrier "VTIMEZONE" définit l'ensemble des règles de temps standard et d'économie des heures du jour pour une zone horaire particulière pour un intervalle de temps donné. Le composant de calendrier "VTIMEZONE" ne peut pas être incorporé dans d'autres composants de calendrier. Plusieurs composants de calendrier "VTIMEZONE" peuvent exister dans un objet iCalendar. Dans cette situation, chaque "VTIMEZONE" DOIT représenter une unique définition de zone horaire. Ceci est nécessaire pour certaines classes d'événements, comme les vols aériens, qui commencent dans une zone horaire et se terminent dans une autre.

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

Un composant de calendrier individuel "VTIMEZONE" DOIT être spécifié pour chaque valeur de paramètre unique "TZID" spécifié dans l'objet iCalendar. De plus, un composant de calendrier "VTIMEZONE", référencé par un composant récurrent de calendrier, DOIT fournir des informations valides de zone horaire pour toutes les instances de récurrence.

Chaque composant de calendrier "VTIMEZONE" consiste en une collection d'un ou plusieurs sous composants qui décrivent la règle pour une pratique particulière (d'heure standard ou d'heure d'économie des heures de jour). Le sous composant "STANDARD" consiste en une collection de propriétés qui décrivent l'heure standard. Le sous composant "DAYLIGHT" consiste en une collection de propriétés qui décrivent l'heure d'économie des heures de jour. En général, cette collection de propriétés consiste en :
* la première occurrence de DATE-TIME pour la pratique ;
* la dernière occurrence de DATE-TIME pour la pratique, si une dernière occurrence est connue ;
* le décalage à appliquer pour la pratique ;
* une règle qui décrit le jour et l'heure où la pratique prend effet ;
* un nom facultatif pour la pratique.

Pour une zone horaire donnée, il peut y avoir plusieurs définitions uniques des pratiques sur une période. Chaque pratique est décrite en utilisant un sous composant "STANDARD" ou "DAYLIGHT". La collection de ces sous composants est utilisée pour décrire la zone horaire pour une période donnée. Le décalage à appliquer à un moment donné est trouvé en localisant la pratique qui a la dernière occurrence de date et heure avant l'heure en question, et en utilisant la valeur du décalage à partir de la pratique.

Les propriétés de niveau supérieur dans un composant de calendrier "VTIMEZONE" sont :
-	La  propriété obligatoire "TZID" est une valeur de texte qui identifie de façon univoque le composant de calendrier "VTIMEZONE" dans la portée d'un objet iCalendar.
-	La propriété facultative "LAST-MODIFIED" est une valeur d'UTC qui spécifie la date et l'heure à laquelle cette définition de zone horaire ont été mises à jour pour la dernière fois.
-	La propriété facultative "TZURL" est une valeur d'url qui pointe sur une définition publiée de "VTIMEZONE". "TZURL" DEVRAIT se référer à une ressource accessible à quiconque a besoin d'interpréter l'objet. Ce NE DEVRAIT  normalement PAS être un URL "file" ou un autre URL non largement accessible.
-	La collection des propriétés qui sont utilisées pour définir les sous composants "STANDARD" et "DAYLIGHT" inclut :
-	La propriété obligatoire "DTSTART" donne la date et heure locale effective de début pour la définition du sous composant de zone horaire. "DTSTART" dans cet usage DOIT être spécifié comme une date avec une valeur d'heure locale.
-	La propriété obligatoire "TZOFFSETFROM" donne le décalage à l'UTC qui est utilisé quand le début de la pratique de cette zone horaire commence. "TZOFFSETFROM" est combiné avec "DTSTART" pour définir le début effectif de la définition du sous composant de zone horaire. Par exemple, ce qui suit représente l'heure à laquelle la pratique de l'heure standard a pris effet fin 1967 pour la ville de New York :
DTSTART:19671029T020000
TZOFFSETFROM:-0400
-	La propriété obligatoire "TZOFFSETTO" donne le décalage à l'UTC pour le sous composant de zone horaire (heure standard ou économie des heures de jour) quand cette pratique est utilisée.
-	La propriété facultative "TZNAME" est le nom d'usage de la zone horaire. Elle pourrait être utilisée pour afficher les dates.
-	Les valeurs de DATE-TIME de début pour la pratique définie par le sous composant de zone horaire sont définies par les propriétés "DTSTART", "RRULE", et "RDATE".

La propriété "RRULE" définit la règle de récurrence pour le début de la pratique définie par ce sous composant de zone horaire. Des exigences spécifiques pour l'usage de "RRULE" à cette fin incluent :

	Si il est connu que la pratique a une date de fin effective, le paramètre "UNTIL" de la règle de récurrence DOIT être utilisé pour spécifier la dernière occurrence valide de cette pratique (c'est-à-dire, le UNTIL DATE-TIME va être égal à la dernière instance générée par le schéma de récurrence). Il DOIT être spécifié en temps UTC.

*	Les propriétés "DTSTART" et "TZOFFSETFROM" DOIVENT être utilisées quand on génère les valeurs DATE-TIME  de début (instances) à partir de "RRULE".

La propriété "RDATE" peut aussi être utilisée pour définir le début de la pratique en donnant la date et l'heure des occurrences individuelles. "RDATE" dans cet usage DOIT être spécifié comme date avec valeur d'heure locale, par rapport au décalage UTC spécifié dans la propriété "TZOFFSETFROM".

La  propriété facultative "COMMENT" est aussi permise pour le texte descriptif d'explications.

Exemple : ce qui suit sont des exemples du composant de calendrier "VTIMEZONE" :

Voici un exemple qui montre toutes les règles de zone horaire pour la ville de New York depuis le 30 avril 1967 à 03:00:00 EDT.

BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
BEGIN:DAYLIGHT
DTSTART:19670430T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU;UNTIL=20061029T060000Z
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19740106T020000
RDATE:19750223T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19760425T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19860427T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
END:VTIMEZONE

Voici un exemple qui montre des informations de zone horaire pour la ville de New York en utilisant seulement la propriété "DTSTART". Noter que cela ne convient que pour un événement récurrent qui commence le 11 mars 2007 à 03:00:00 EDT ou plus tard (c'est-à-dire, la date et heure de transition effective au plus tôt) et ne se termine pas plus tard que le 9 mars 2008 à 01:59:59 EST (c'est-à-dire, la dernière date et heure valide pour EST dans ce scénario). Par exemple, cela peut être utilisé pour un événement récurrent qui se produit le vendredi de 8:00 A.M. à 9:00 A.M., commençant le 1er juin 2007, et se terminant le 31 décembre 2007,

BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
BEGIN:STANDARD
DTSTART:20071104T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE

Voici un exemple simple qui montre les règles actuelles de zone horaire pour la ville de New York en utilisant un schéma de récurrence "RRULE". Noter qu'il n'y a pas de date de fin effective dans les règles d'heure standard ou d'économie des heures de jour. Ces informations seraient valides pour un événement récurrent commençant aujourd'hui et se poursuivant indéfiniment .

BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
TZURL:http://zones.exemple.com/tz/America-New_York.ics
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE

Voici un exemple d'ensemble de règles pour une zone horaire fictive où la règle d'heure d'économie des heures du jour a une date de fin effective (c'est-à-dire, après cette date, l'heure d'économie des heures de jour n'est plus observée).

BEGIN:VTIMEZONE
TZID:Fictitious
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

Voici un exemple d'un ensemble de règles pour une zone horaire fictive où la première règle d'économies de l'heure du jour a une date de fin effective. Il y a une seconde règle d'économie d'heure du jour qui commence là où l'autre se termine.

BEGIN:VTIMEZONE
TZID:Fictitious
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

 	3.6.6	Composant Alarme
Nom de composant : VALARM
Objet : fournir un groupement de propriétés de composant qui définissent une alarme.
Définition de format : un composant de calendrier "VALARM" est défini par la notation suivante :

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

audioprop  = *(
; 'action' et 'trigger' sont tous deux EXIGÉS, mais NE DOIVENT PAS se produire plus d'une fois. ;
action / trigger /
; 'duration' et 'repeat' sont tous deux FACULTATIFS, et NE DOIVENT PAS se produire plus d'une fois chacun ; mais si l'un se produit, l'autre le DOIT aussi. ;
duration / repeat /
; ce qui suit est FACULTATIF, mais NE DOIT PAS se produire plus d'une fois. ;
attach /
; ce qui suit est FACULTATIF, et PEUT se produire plus d'une fois. ;
x-prop / iana-prop
;
)

dispprop   = *(
; les suivants sont EXIGÉS, mais NE DOIVENT PAS se produire plus d'une fois. ;
action / description / trigger /
; 'duration' et 'repeat' sont tous deux FACULTATIFS, et NE DOIVENT PAS se produire plus d'une fois chacun ; mais si l'un se produit, l'autre le DOIT aussi. ;
duration / repeat /
; ce qui suit est FACULTATIF, et PEUT se produire plus d'une fois. ;
x-prop / iana-prop
;
)

emailprop  = *(
; les suivants sont tous EXIGÉS, mais NE DOIVENT PAS se produire plus d'une fois. ;
action / description / trigger / summary /
; le suivant est EXIGÉ, et PEUT se produire plus d'une fois. ;
attendee /
; 'duration' et 'repeat' sont tous deux FACULTATIFS, et NE DOIVENT PAS se produire plus d'une fois chacun ; mais si l'un se produit, l'autre le DOIT aussi. ;
duration / repeat /
; les suivants sont FACULTATIFS, et PEUVENT se produire plus d'une fois. ;
attach / x-prop / iana-prop
;
)

Description : un composant de calendrier "VALARM" est a groupement de propriétés de composant qui est un rappel ou une alarme pour un événement ou une chose à faire. Par exemple, il peut être utilisé pour définir un rappel pour un événement ou une chose à faire à venir.

Le composant de calendrier "VALARM" DOIT inclure les propriétés "ACTION" et "TRIGGER". La propriété "ACTION" contraint un peu plus le composant de calendrier "VALARM" de la façon suivante :

Quand l'action est "AUDIO", l'alarme peut aussi inclure une et seulement une propriété "ATTACH", qui DOIT pointer sur une ressource sonore, qui est rendue quand l'alarme est déclenchée.

Quand l'action est "DISPLAY", l'alarme DOIT aussi inclure une propriété "DESCRIPTION", qui contient le texte à afficher quand l'alarme est déclenchée.

Quand l'action est "EMAIL", l'alarme DOIT inclure une propriété "DESCRIPTION", qui contient le texte à utiliser comme corps de message, une propriété "SUMMARY", qui contient le texte à utiliser comme sujet du message, et une ou plusieurs propriétés "ATTENDEE", qui contiennent l'adresse de messagerie électronique des participants pour recevoir le message. Elle peut aussi inclure une ou plusieurs propriétés "ATTACH", qui sont destinées à être envoyées comme pièces jointes du message. Quand l'alarme est déclenchée, le message électronique est envoyé.

Le composant de calendrier "VALARM" DOIT seulement apparaître au sein d'un composant de calendrier "VEVENT" ou "VTODO". Les composants de calendrier "VALARM" ne peuvent pas être incorporés. Plusieurs composants de calendrier"VALARM" mutuellement indépendants peuvent être spécifiés pour un seul composant de calendrier "VEVENT" ou "VTODO".

La propriété "TRIGGER" spécifie quand l'alarme va être déclenchée. La propriété "TRIGGER" spécifie une durée avant le début d'un événement ou d'une chose à faire. La bordure de "TRIGGER" peut être explicitement réglée à être relative au début ou à la fin de l'événement ou chose à faire avec le paramètre "RELATED" de la propriété "TRIGGER". Le type de valeur de la propriété "TRIGGER" peut autrement être réglé à une date de calendrier absolue avec le temps UTC.

Dans une alarme réglée à se déclencher au début "START" d'un événement ou chose à faire, la propriété "DTSTART" DOIT être présente dans l'événement ou chose à faire associé. Dans une alarme dans un composant de calendrier "VEVENT" réglé à se déclencher à la fin "END" de l'événement, soit la propriété "DTEND" DOIT être présente, soit les propriétés "DTSTART" et "DURATION" DOIVENT toutes deux être présentes. Dans une alarme dans un composant de calendrier "VTODO" réglé à se déclencher à la "END" de la chose à faire, soit la propriété "DUE" DOIT être présente, soit les propriétés "DTSTART" et "DURATION" DOIVENT toutes deux être présentes.

L'alarme peut être définie de façon à ce qu'elle se déclenche répétitivement. Une définition d'une alarme à déclenchement répétitif DOIT inclure les deux propriétés "DURATION" et "REPEAT". La propriété "DURATION" spécifie la période de délai après laquelle l'alarme va se répéter. La propriété "REPEAT" spécifie le nombre de répétitions supplémentaires du déclenchement de l'alarme. Ce compte de répétitions est en plus du déclenchement initial de l'alarme. Ces deux propriétés DOIVENT être présentes afin de spécifier une alarme répétitive. Si une de ces deux propriétés est absente, alors l'alarme 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 spécifier le type d'action invoquée quand l'alarme est déclenchée. Les propriétés "VALARM" fournissent assez d'informations pour qu'une action spécifique soit invoquée. Il est normalement de la responsabilité d'un agent d'utilisateur de calendrier (CUA, Calendar User Agent) de livrer l'alarme de la façon spécifiée. Une valeur de propriété "ACTION" de AUDIO spécifie une alarme qui cause l'exécution d'un son pour alerter l'utilisateur ; DISPLAY spécifie une alarme qui cause l'affichage du texte d'un message à l'utilisateur ; et EMAIL spécifie une alarme qui cause la livraison d'un message électronique à une ou plusieurs adresses de messagerie électronique.

Dans une alarme AUDIO, si la propriété facultative "ATTACH" est incluse, elle DOIT spécifier une ressource de son audio. L'intention est que le son soit exécuté comme effet d'alarme. Si une propriété "ATTACH" est spécifiée qui ne se réfère pas à une ressource sonore, ou si la ressource sonore spécifiée ne peut pas être rendue (parce que son format n'est pas pris en charge, ou parce que elle ne peut pas être restituée) alors le CUA ou autre entité responsable de l'exécution du son peut choisir une action de repli, telle que d'exécuter un son incorporé par défaut, ou de n'exécuter aucun son du tout.

Dans une alarme DISPLAY, l'effet d'alarme prévu est l'affichage à l'utilisateur de la valeur de texte de la propriété "DESCRIPTION".

Dans une alarme EMAIL, l'effet d'alarme prévu est la composition d'un message électronique et sa livraison à toutes les adresses spécifiées par les propriétés "ATTENDEE" dans le composant de calendrier "VALARM". La propriété "DESCRIPTION" du composant de calendrier "VALARM" DOIT être utilisée comme texte de corps du message, et la propriété "SUMMARY" DOIT être utilisée comme texte du sujet. Toutes les propriétés "ATTACH" dans le composant de calendrier "VALARM" DEVRAIENT être envoyées comme pièces jointes du message.

Note : Les mises en œuvre devraient examiner avec attention si elles acceptent des composants d'alarme provenant de sources qui ne sont pas de confiance, par exemple, quand elles importent des objets de calendrier provenant de sources externes. Une politique raisonnable est de toujours ignorer les composants d'alarme que l'utilisateur de calendrier n'a pas établis lui-même, ou au moins de demander confirmation dans ce cas.

Exemple : L'exemple suivant est pour un composant de calendrier "VALARM" qui spécifie une alarme audio qui va résonner à une heure précise et se répéter quatre fois de plus à un intervalle de 15 minutes :

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

L'exemple suivant est pour un composant de calendrier "VALARM" qui spécifie un affichage d'alarme qui va se déclencher 30 minutes avant le début programmé de l'événement ou chose à faire à laquelle elle est associée et va se répéter deux fois de plus à un intervalle de 15 minutes :

BEGIN:VALARM
TRIGGER:-PT30M
REPEAT:2
DURATION:PT15M
ACTION:DISPLAY
DESCRIPTION:Réunion petit déjeuner avec\n
l'équipe de direction à 8:30 AM EST.
END:VALARM

L'exemple suivant est pour un composant de calendrier "VALARM" qui spécifie une alarme de message électronique qui se déclenche 2 jours avant la DATE-TIME programmée d'une chose à faire à laquelle elle est associée. Elle ne se répète pas. Le message électronique a un sujet, un corps, et une liaison de rattachement.

BEGIN:VALARM
TRIGGER;RELATED=END:-P2D
ACTION:EMAIL
ATTENDEE:mailto:john_doe@exemple.com
SUMMARY:*** RAPPEL : ENVOYER L'AGENDA POUR LA RÉUNION HEBDOMADAIRE DU PERSONNEL ***
DESCRIPTION:Un projet d'agenda doit être envoyé aux participants
 à la réunion hebdomadaire des gestionnaires (MGR-LIST). Un pointeur est
 joint sur le gabarit de document de fichier d'agenda.
ATTACH;FMTTYPE=application/msword:http://exemple.com/templates/agenda.doc
END:VALARM

 	3.7	Propriétés de calendrier
Les propriétés de calendrier sont des attributs qui s'appliquent à l'objet iCalendar comme un tout. Ces propriétés n'apparaissent pas au sein d'un composant de calendrier. Elles DEVRAIENT être spécifiées après la chaîne de délimiteur "BEGIN:VCALENDAR" et avant tout composant de calendrier.

 	3.7.1	Échelle de calendrier
Nom de propriété : CALSCALE
Objet : cette propriété définit l'échelle de calendrier utilisée pour les informations de calendrier spécifiées dans l'objet iCalendar.
Type de valeur :  TEXT
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée une seule fois dans un objet iCalendar. La valeur par défaut est "GREGORIAN".
Description : Le présent mémoire se fonde sur l'échelle du calendrier grégorien. L'échelle de calendrier grégorien est supposée si cette propriété n'est pas spécifiée dans l'objet iCalendar. On prévoit que d'autres échelles de calendrier seront définies dans d'autres spécifications ou par de futures versions du présent mémoire.
Définition de format : cette propriété est définie par la notation suivante :

calscale = "CALSCALE" calparam ":" calvalue CRLF

calparam = *(";" other-param)

calvalue = "GREGORIAN"

Exemple : Voici un exemple de cette propriété :  CALSCALE:GREGORIAN

 	3.7.2	Méthode
Nom de propriété : METHOD
Objet : 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é IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifié une seule fois dans un objet iCalendar.
Description : quand elle est utilisée dans une entité de message MIME, la valeur de cette propriété DOIT être la même que la valeur de paramètre "method" du type de contenu. Si la propriété "METHOD" ou le paramètre "method" du type de contenu est spécifié, alors l'autre DOIT aussi être spécifié. Aucune méthode n'est définie par la présente spécification. C'est l'objet d'autres spécifications, comme le protocole d'interopérabilité iCalendar indépendant du transport (iTIP) défini par la [RFC5546]. Si cette propriété n'est pas présente dans l'objet iCalendar, on NE DOIT PAS supposer une transaction de programmation. Dans un tel cas, l'objet iCalendar est simplement utilisé pour transporter une photographie de certaines informations de calendrier, sans intention de porter une sémantique de programmation.
Définition de format : cette propriété est définie par la notation suivante :

method = "METHOD" metparam ":" metvalue CRLF
metparam = *(";" other-param)
metvalue = iana-token

Exemple : Voici un exemple hypothétique de cette propriété pour convoyer que l'objet iCalendar est une demande de programmation :

METHOD:REQUEST

 	3.7.3	Identifiant de produit
Nom de propriété : PRODID
Objet : cette propriété spécifie l'identifiant pour le produit qui a créé l'objet iCalendar.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : la propriété DOIT être spécifiée une seule fois dans un objet iCalendar.
Description : le fabricant de la mise en œuvre DEVRAIT s'assurer que c'est un identifiant unique au monde, en utilisant une technique comme une valeur FPI, comme défini dans [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 spécifiée dans le présent mémoire. Par exemple, elle n'est pas à utiliser pour étendre la signification de propriétés non standard.
Définition de format : cette propriété est définie par la notation suivante :
prodid = "PRODID" pidparam ":" pidvalue CRLF
pidparam = *(";" other-param)
pidvalue  = text
; tout texte qui décrit le produit et la version et qui est généralement supposé être unique.

Exemple : Voici un exemple de cette propriété. Il n'implique pas que l'anglais soit la langue par défaut.

PRODID:-//ABC Corporation//NONSGML My Product//EN

 	3.7.4	Version
Nom de propriété : VERSION
Objet : cette propriété spécifie l'identifiant correspondant au plus haut numéro de version ou la gamme minimum et maximum de la spécification iCalendar exigée afin d'interpréter l'objet iCalendar.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété DOIT être spécifiée une seule fois dans un objet iCalendar.
Description : une valeur de "2.0" correspond au présent mémoire.
Définition de format : cette propriété est définie par la notation suivante :
version = "VERSION" verparam ":" vervalue CRLF
verparam = *(";" other-param)
vervalue  = "2.0"  	; Le présent mémoire
                  / maxver / (minver ";" maxver)
minver = <identifiant de version iCalendar enregistré par l'IANA>
; version iCalendar minimum nécessaire pour analyser l'objet iCalendar.
maxver = <identifiant de version iCalendar enregistré par l'IANA>
; version iCalendar maximum nécessaire pour analyser l'objet iCalendar.

Exemple :  Voici un exemple de cette propriété : VERSION:2.0

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

 	3.8.1	Propriétés descriptives de composant
Les propriétés suivantes spécifient des informations descriptives sur les composants de calendrier.

 	3.8.1.1	Rattachement
Nom de propriété : ATTACH
Objet : cette propriété donne la capacité d'associer un objet document à un composant de calendrier.
Type de valeur : le type de valeur par défaut pour cette propriété est URI. Le type de valeur peut aussi être réglé à BINARY pour indiquer des informations de contenu codées en ligne en binaire.
Paramètres de propriété : des paramètres de propriété IANA, non standard, de codage en ligne, et de type de données de valeur peuvent être spécifiés sur cette propriété. Le paramètre de type de format peut être spécifié sur cette propriété et est RECOMMANDÉ pour des informations de contenu codées en ligne en binaire.
Conformité : cette propriété peut être spécifiée plusieurs fois dans un composant de calendrier "VEVENT", "VTODO", "VJOURNAL", ou "VALARM" à l'exception de l'alarme AUDIO qui permet seulement que cette propriété se produise une seule fois.
Description : cette propriété est utilisée dans les composants de calendrier "VEVENT", "VTODO", et "VJOURNAL" pour associer une ressource (par exemple, un document) au composant de calendrier. Cette propriété est utilisée dans les composants de calendrier "VALARM" pour spécifier une ressource de son audio ou un rattachement de message électronique. Cette propriété peut être spécifiée comme un URI pointant sur une ressource ou un contenu codé en ligne en binaire. Quand cette propriété est spécifiée comme contenu codé en ligne en binaire, les applications de calendrier PEUVENT tenter de deviner le type de supports de la ressource via l'inspection de son contenu si et seulement si le type de supports de la ressource n'est pas donné par le paramètre "FMTTYPE". Si le type de supports reste inconnu, les applications de calendrier DEVRAIENT le traiter comme type "application/octet-stream".
Définition de format : cette propriété est définie par la notation suivante :

attach = "ATTACH" attachparam ( ":" uri ) / ( ";" "ENCODING" "=" "BASE64" ";" "VALUE" "=" "BINARY"
                ":" binary ) CRLF

attachparam = *(
; le suivant est FACULTATIF pour une valeur d'URI, RECOMMANDÉ pour une valeur BINARY, et NE DOIT PAS se produire plus d'une fois. ;
(";" fmttypeparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" pther-param)
;
)

Exemple : voici des exemples de cette propriété :

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

ATTACH;FMTTYPE=application/postscript:ftp://exemple.com/pub/reports/r-960812.ps

 	3.8.1.2	Catégories
Nom de propriété : CATEGORIES
Objet : cette propriété définit les catégories pour un composant de calendrier.
Type de valeur : TEXT
Paramètres de propriété : les paramètres de propriété IANA, non standard, et langage peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée dans les composants de calendrier "VEVENT", "VTODO", ou "VJOURNAL".
Description : cette propriété est utilisée pour spécifier des catégories ou sous types du composant de calendrier. Les catégories sont utiles dans la recherche d'un composant de calendrier pour un type et catégorie particuliers. Dans les composants de calendrier "VEVENT", "VTODO", ou "VJOURNAL", plus d'une catégorie peut être spécifiée comme une liste de catégories séparées par une VIRGULE.
Définition de format : cette propriété est définie par la notation suivante :

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

catparam = *(
; le suivant est FACULTATIF, mais NE DOIT PAS se produire plus d'une fois. ;
(";" languageparam ) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Exemple : voici des exemples ce cette propriété :

CATEGORIES:APPOINTMENT,EDUCATION
CATEGORIES:MEETING

 	3.8.1.3	Classification
Nom de propriété : CLASS
Objet : cette propriété définit les classes d'accès pour un composant de calendrier.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée une seule fois dans un composant de calendrier "VEVENT", "VTODO", ou "VJOURNAL".
Description : une classification d'accès est seulement d'un composant du système général de sécurité au sein d'une application de calendrier. Elle donne une méthode pour capturer la portée de l'accès que le propriétaire du calendrier veut pour les informations au sein d'une entrée individuelle de calendrier. La classification d'accès d'un composant individuel iCalendar est utile quand on la mesure avec les autres composants de sécurité d'un système de calendrier (par exemple, l'authentification, l'autorisation, les droits d'accè, le rôle d'accès, etc. de l'utilisateur du calendrier). Donc, la sémantique des classifications d'accès individuelles ne peut pas être complètement définie par le présent mémoire seul. De plus, du fait de la nature "aveugle" de la plupart des processus d'échange qui utilisent le présent mémoire, ces classifications d'accès ne peuvent pas servir de déclaration d'applicabilité pour un système qui reçoit un objet iCalendar. Elles fournissent plutôt une méthode pour capturer l'intention du propriétaire du calendrier pour l'accès au composant de calendrier. Si elle n'est pas spécifiée dans un composant qui permet cette propriété, la valeur par défaut est PUBLIC. Les applications DOIVENT traiter les valeurs x-name et iana-token qu'elles ne reconnaissent pas de la même façon que la valeur PRIVATE.
Définition de format : cette propriété est définie par la notation suivante :

class = "CLASS" classparam ":" classvalue CRLF
classparam = *(";" other-param)
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

 	3.8.1.4	Commentaire
Nom de propriété : COMMENT
Objet : cette propriété spécifie des informations non de traitement destinées à fournir un commentaire à l'utilisateur de calendrier.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA, non standard, d'autre représentation de texte, et de langage peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée plusieurs fois dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL", et "VFREEBUSY" ainsi que dans les sous composants "STANDARD" et "DAYLIGHT".
Description : cette propriété est utilisée pour spécifier un commentaire à l'utilisateur de calendrier.
Définition de format : cette propriété est définie par la notation suivante :

comment = "COMMENT" commparam ":" text CRLF
commparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" altrepparam) / (";" languageparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Exemple : Voici un exemple de cette propriété :

COMMENT: la réunion a réellement besoin d'inclure à la fois nous-mêmes et les clients. On ne peut pas tenir cette réunion sans eux. En fait\, le lieu de la réunion devrait être sur leur site. - - John

 	3.8.1.5	Description
Nom de propriété : DESCRIPTION
Objet : cette propriété donne une description plus complète du composant de calendrier que ce qui est fourni par la propriété "SUMMARY".
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA, non standard, d'autre représentation de texte, et de langage peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL", ou "VALARM". La propriété peut être spécifiée plusieurs fois seulement au sein d'un composant de calendrier "VJOURNAL".
Description : cette propriété est utilisée dans "VEVENT" et "VTODO" pour saisir de longues descriptions textuelles associées à l'activité. Cette propriété est utilisée dans le composant de calendrier "VJOURNAL" pour saisir une ou plusieurs entrées de texte de journal. Cette propriété est utilisée dans le composant de calendrier "VALARM" pour saisir le texte à afficher pour une catégorie d'alarme DISPLAY, et pour saisir le texte du corps pour une catégorie d'alarme EMAIL.
Définition de format : cette propriété est définie par la notation suivante :

description = "DESCRIPTION" descparam ":" text CRLF

descparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" altrepparam) / (";" languageparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Exemple : Voici un exemple de cette propriété avec des coupures de ligne formatées dans la valeur de propriété:

DESCRIPTION : Réunion pour faire la révision technique du projet "Phoenix".\nSalle de conférence Happy Face. L'équipe de conception Phoenix DOIT participer à cette réunion.\nRSVP au chef d'équipe.

 	3.8.1.6	Position géographique
Nom de propriété : GEO
Objet : cette propriété spécifie les informations relatives à la position globale pour l'activité spécifiée par un composant de calendrier.
Type de valeur : FLOAT. La valeur DOIT être de deux valeurs FLOAT séparées par deux points.
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans les composants de calendrier "VEVENT" ou "VTODO".
Description : cette valeur de propriété spécifie la latitude et longitude, dans cet ordre (c'est-à-dire, l'ordre "LAT LON"). La longitude représente la localisation est ou ouest du premier méridien comme un nombre réel respectivement positif ou négatif. Les valeurs de longitude et latitude PEUVENT être spécifiées jusqu'à six chiffres décimaux, qui vont permettre une précision d'un mètre de position géographique. Les applications receveuses DOIVENT accepter des valeurs de cette précision et PEUVENT tronquer des valeurs de plus grande précision. Les valeurs de latitude et longitude devront être exprimées comme des fractions décimales de degrés. Les degrés de latitude pleins devront être représentés par un nombre décimal de deux chiffres allant de 0 à 90. Les pleins degrés de longitude devront être représentés par un nombre décimal allant de 0 à 180. Quand une fraction décimale de degré est spécifiée, elle devra être séparée du nombre entier de degrés par une virgule. Les latitudes au nord de l'équateur devront être spécifiées par un signe plus (+), ou par l'absence de signe moins (-), précédant les chiffres qui désignent les degrés. Les latitudes au sud de l'équateur devront être désignées par un signe moins (-) précédant les chiffres qui désignent les degrés. Un point sur l'équateur devra être alloué à l'hémisphère Nord. Les longitudes à l'est du premier méridien devront être spécifiées avec un signe plus (+), ou par l'absence d'un signe moins (-), précédant les chiffres désignant les degrés. Les longitudes à l'ouest du méridien devront être désignées par un signe moins (-) précédant les chiffres désignant les degrés. Un point sur le premier méridien devra être alloué à l'hémisphère Est. Un point sur le 180ème méridien devra être alloué à l'hémisphère Ouest. Une exception à cette dernière convention est permise. Pour la condition particulière de description d'une bande de latitude autour de la Terre, l'élément de données de coordonnées de lien ouest devra recevoir la valeur +180 degrés. Toute adresse spatiale avec une latitude de +90 ou -90 degrés va spécifier la position respectivement au pôle Nord ou Sud. Le composant de longitude peut avoir toute valeur légale. À l'exception de la condition particulière décrite ci-dessus, cette forme est spécifiée dans [INCITS.61]. La formule simple pour convertir les degrés-minutes-secondes en degrés décimaux est :

décimal = degrés + minutes/60 + secondes/3600.

Définition de format : cette propriété est définie par la notation suivante :

geo = "GEO" geoparam ":" geovalue CRLF

geoparam = *(";" other-param)

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

Exemple : Voici un exemple de cette propriété :  GEO:37.386013;-122.082932

 	3.8.1.7	Localisation
Nom de propriété : LOCATION
Objet : cette 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é IANA, non standard, d'autres représentations de texte, et de langage peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans le composant de calendrier "VEVENT" ou "VTODO".
Description : des lieux spécifiques comme des salles de conférence ou de réunion peuvent être explicitement spécifiés en utilisant cette propriété. Une autre représentation peut être spécifiée qui est un URI pointant sur des informations de répertoire avec une spécification plus structurée de la localisation. Par exemple, l'autre représentation peut spécifier un URI LDAP [RFC4516] pointant sur une entrée de serveur LDAP ou un URI CID [RFC2392] pointant sur une partie de corps MIME contenant une carte d'informations virtuelles (vCard, Virtual-Information Card) [RFC2426] pour la localisation.
Définition de format : cette propriété est définie par la notation suivante :

location = "LOCATION"  locparam ":" text CRLF

locparam  = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" altrepparam) / (";" languageparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

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

 	3.8.1.8	Pourcentage complet
Nom de propriété : PERCENT-COMPLETE
Objet : cette propriété est utilisée par un allocataire ou délégué d'une chose à faire pour porter le pourcentage d'achèvement d'une chose à faire à l'"Organisateur".
Type de valeur : INTEGER
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée une seule fois dans un composant de calendrier "VTODO".
Description : la valeur de propriété est un entier positif entre 0 et 100. Une valeur de "0" indique que la chose à faire n'a pas encore commencé. Une valeur de "100" indique que la chose à faire a été achevée. Des valeurs d'entier entre les deux indiquent le pourcentage partiellement achevé. Quand une chose à faire est allouée à plusieurs individus, la valeur de propriété indique le pourcentage achevé pour la portion de chose à faire allouée à l'affectataire ou délégué. Par exemple, si une chose à faire est allouée à deux individus "A" et "B". Une réponse de "A" avec un pourcentage d'achèvement de "70" indique que "A" a réalisé 70 % de la chose à faire qui lui est allouée. Une réponse de "B" avec un pourcentage d'achèvement de "50" indique que "B" a réalisé 50 % de la chose à faire qui lui est allouée.
Définition de format : cette propriété est définie par la notation suivante :

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

pctparam = *(";" other-param)

Exemple : Voici un exemple de cette propriété pour montrer un achèvement à 39 % : PERCENT-COMPLETE:39

 	3.8.1.9	Priorité
Nom de propriété : PRIORITY
Objet : cette propriété définit la priorité relative pour un composant de calendrier.
Type de valeur : INTEGER
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans les composants de calendrier "VEVENT" et "VTODO".
Description : cette priorité est spécifiée comme un entier dans la gamme 0 à 9. Une valeur de 0 spécifie une priorité indéfinie. Une valeur de 1 est a la plus haute priorité. Une valeur de 2 est la seconde plus haute priorité. Les chiffres suivants spécifient une priorité d'ordre décroissant. Une valeur de 9 est la plus basse priorité. Un CUA avec un schéma de priorité à trois niveaux de "HIGH", "MEDIUM", et "LOW" est transposé dans cette propriété de façon qu'une valeur de propriété dans la gamme de 1 à 4 spécifie une priorité "HIGH". Une valeur de 5 est la priorité normale ou "MEDIUM". Une valeur dans la gamme de 6 à 9 est une priorité "LOW". Un CUA avec un schéma de priorité de "A1", "A2", "A3", "B1", "B2", ..., "C3" est transposé dans cette propriété de telle façon qu'une valeur de propriété de 1 spécifie "A1", une valeur de propriété de 2 spécifie "A2", une valeur de propriété de 3 spécifie "A3", et ainsi de suite jusqu'à une valeur de propriété de 9 qui spécifie "C3". D'autres valeurs d'entier sont réservées pour une utilisation future. Dans un composant de calendrier "VEVENT", cette propriété spécifie une priorité pour l'événement. Cette propriété peut être utile quand plus d'un événement est programmé pour une certaine période. Dans un composant de calendrier "VTODO", cette propriété spécifié une priorité pour la chose à faire. Cette propriété est utile pour prioriser plusieurs éléments d'action sur une certaine période.
Définition de format : cette propriété est définie par la notation suivante :

priority = "PRIORITY" prioparam ":" priovalue CRLF	; la valeur par défaut est zéro (c'est-à-dire, indéfinie).

prioparam = *(";" other-param)

priovalue = integer	; doit être dans la gamme [0..9]. Toutes les autres valeurs sont réservées pour utilisation future.

Exemple : Voici un exemple d'une propriété avec la plus haute priorité : PRIORITY:1

Voici un exemple d'une propriété avec une priorité seconde : PRIORITY:2

Voici un exemple de propriété sans priorité. Ceci est équivalent à ne pas spécifier la propriété "PRIORITY": PRIORITY:0

 	3.8.1.10	Ressources
Nom de propriété : RESOURCES
Objet : cette propriété définit l'équipement ou les ressources prévues pour une activité spécifiée par un composant de calendrier.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA, non standard, d'autre représentation de texte, et de langage peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée une seule fois dans un composant de calendrier "VEVENT" ou "VTODO".
Description : la valeur de propriété est un texte arbitraire. Plus d'une ressource peut être spécifiée comme une liste de ressources séparées par une VIRGULE.
Définition de format : cette propriété est définie par la notation suivante :

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

resrcparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" altrepparam) / (";" languageparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Exemple : Voici un exemple de cette propriété :

RESOURCES:EASEL,PROJECTOR,VCR

RESOURCES;LANGUAGE=fr:Nettoyeur haute pression

 	3.8.1.11	État
Nom de propriété : STATUS
Objet : cette propriété définit l'état global ou de confirmation pour le composant de calendrier.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée une seule fois dans les composants de calendrier "VEVENT", "VTODO", ou "VJOURNAL".
Description : dans un composant de calendrier programmé pour un groupe, la propriété est utilisée par l'"Organisateur" pour fournir une confirmation de l'événement aux "Participants". Par exemple dans un composant de calendrier "VEVENT", l'"Organisateur" peut indiquer qu'une réunion est une tentative, est confirmée, ou annulée. Dans un composant de calendrier "VTODO", l'"Organisateur" peut indiquer qu'un élément d'action a besoin d'une action, est achevé, est en cours ou en progrès, ou a été annulé. Dans un composant de calendrier "VJOURNAL", l'"Organisateur" peut indiquer qu'une entrée de journal est un projet, est finalisée, ou a été annulée ou supprimée.
Définition de format : cette propriété est définie par la notation suivante :

status  = "STATUS" statparam ":" statvalue CRLF

statparam = *(";" ather-param)

statvalue = (statvalue-event / statvalue-todo / statvalue-day)

statvalue-event = "TENTATIVE"	; indique que l'événement est une tentative.
                            / "CONFIRMED" 	; indique que l'événement est définitif.
                            / "CANCELLED"	; indique que l'événement a été annulé.
	; valeurs d'état pour un "VEVENT"

statvalue-todo = "NEEDS-ACTION"	; indique que la chose à faire demande une action.
                          / "COMPLETED"	; indique que la chose à faire est achevée.
                          / "IN-PROCESS" 	; indique que la chose à faire est en cours.
                          / "CANCELLED"	; indique que la chose à faire a été annulée.
	; valeurs d'état pour un "VTODO".

statvalue-day = "DRAFT" 	; indique que le journal est un projet.
                          / "FINAL"	; indique que le journal est finalisé.
                          / "CANCELLED"	; indique que le journal est supprimé.
	; valeurs d'état pour un "VJOURNAL".

Exemple : 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

 	3.8.1.12	Résumé
Nom de propriété : SUMMARY
Objet : cette propriété définit un bref résumé ou sujet pour le composant de calendrier.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA, non standard, d'autre représentation de texte, et de langage peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée dans des composants de calendrier "VEVENT", "VTODO", "VJOURNAL", ou "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 sur l'activité ou l'entrée de journal. Cette propriété est utilisée dans le composant de calendrier "VALARM" pour saisir le sujet d'une catégorie d'alarme EMAIL.
Définition de format : cette propriété est définie par la notation suivante :

summary = "SUMMARY" summparam ":" text CRLF

summparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" altrepparam) / (";" languageparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Exemple : Voici un exemple de cette propriété : SUMMARY:fête du département

 	3.8.2	Propriétés de composant Date et heure
Les propriétés suivantes spécifient les informations relatives à la date et l'heure dans les composants de calendrier.

 	3.8.2.1	Date-heure d'achèvement
Nom de propriété : COMPLETED
Objet : cette propriété définit la date et l'heure à laquelle une chose à faire a été en fait achevée.
Type de valeur : DATE-TIME
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée dans un composant de calendrier "VTODO". La valeur DOIT être spécifiée comme date avec temps UTC.
Description : cette propriété définit la date et l'heure à laquelle une chose à faire a été effectivement achevée.
Définition de format : cette propriété est définie par la notation suivante :

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

compparam = *(";" other-param)

Exemple : Voici un exemple de cette propriété : COMPLETED:19960401T150000Z

 	3.8.2.2	Date-heure de fin
Nom de propriété : DTEND
Objet : cette propriété spécifie la date et l'heure de fin d'un composant de calendrier.
Type de valeur : le type de valeur par défaut est DATE-TIME. Le type de valeur peut être réglé à un type de valeur DATE.
Paramètres de propriété : des paramètres de propriété IANA, non standard, type de données de valeur, et identifiant de zone horaire peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans des composants de calendrier "VEVENT" ou "VFREEBUSY".
Description : dans le composant de calendrier "VEVENT", cette propriété définit la date et l'heure à laquelle l'événement se termine. Le type de valeur de cette propriété DOIT être le même que celui de la propriété "DTSTART", et sa valeur DOIT être plus tard que la valeur de la propriété "DTSTART". De plus, cette propriété DOIT être spécifiée comme date avec heure locale si et seulement si la propriété "DTSTART" est aussi spécifiée comme date avec heure locale. Dans le composant de calendrier "VFREEBUSY", cette propriété définit la date et l'heure de fin des informations de temps libre ou occupé. L'heure DOIT être spécifiée en format d'heure UTC. La valeur DOIT être plus tard que la valeur de la propriété "DTSTART".
Définition de format : cette propriété est définie par la notation suivante :

dtend = "DTEND" dtendparam ":" dtendval CRLF

dtendparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" tzidparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

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

Exemple : Voici des exemples de cette propriété : 	DTEND:19960401T150000Z
	DTEND;VALUE=DATE:19980704

 	3.8.2.3	Date-heure prévue
Nom de propriété : DUE
Objet : cette propriété définit la date et l'heure à laquelle une chose à faire est supposée être terminée.
Type de valeur : le type de valeur par défaut est DATE-TIME. Le type de valeur peut être réglé à un type de valeur DATE.
Paramètres de propriété : des paramètres de propriété IANA, non standard, type de données de valeur, et identifiant de zone horaire peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée une seule fois dans un composant de calendrier "VTODO".
Description : cette propriété définit la date et l'heure avant laquelle une chose à faire est supposée être terminée. Pour les cas où cette propriété est spécifiée dans un composant de calendrier "VTODO" qui spécifie aussi une propriété "DTSTART", le type de valeur de cette propriété DOIT être le même que celui de la propriété "DTSTART", et la valeur de cette propriété DOIT être plus tard que la valeur de la propriété "DTSTART". De plus, cette propriété DOIT être spécifiée comme date avec heure locale si et seulement si la propriété "DTSTART" est aussi spécifiée comme date avec heure locale.
Définition de format : cette propriété est définie par la notation suivante :

due = "DUE" dueparam ":" dueval CRLF

dueparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" tzidparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

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

Exemple : Voici un exemple de cette propriété : DUE:19980430T000000Z

 	3.8.2.4	Date-heure de début
Nom de propriété : DTSTART
Objet : cette propriété spécifie quand commence le composant de calendrier.
Type de valeur :  le type de valeur par défaut est DATE-TIME. La valeur de l'heure DOIT être dans une des formes définies pour le type de valeur DATE-TIME. Le type de valeur peut être réglé à un type de valeur DATE.
Paramètres de propriété : des paramètres de propriété IANA, non standard, type de données de valeur, et identifiant de zone horaire peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée une seule fois dans les composants de calendrier "VEVENT", "VTODO", ou "VFREEBUSY" ainsi que dans les sous composants "STANDARD" et "DAYLIGHT". Cette propriété est EXIGÉE dans tous les types de composants de calendrier récurrents qui spécifient la propriété "RRULE". Cette propriété est aussi EXIGÉE dans les composants de calendrier "VEVENT" contenus dans des objets iCalendar qui ne spécifient pas la propriété "METHOD".
Description : dans le composant de calendrier "VEVENT", cette propriété définit la date et 'heure de début de l'événement. Dans le composant de calendrier "VFREEBUSY", cette propriété définit la date et l'heure de début des informations de temps libre ou occupé. L'heure DOIT être spécifiée en temps UTC. Dans les sous composants "STANDARD" et "DAYLIGHT", cette propriété définit la date et l'heure effective de début pour une spécification de zone horaire. Cette propriété est EXIGÉE dans chaque sous composant "STANDARD" et "DAYLIGHT" inclus dans des composants de calendrier "VTIMEZONE" et DOIT être spécifiée comme date avec heure locale sans paramètre de propriété "TZID".
Définition de format : cette propriété est définie par la notation suivante :

dtstart = "DTSTART" dtstparam ":" dtstval CRLF

dtstparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" tzidparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

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

Exemple : Voici un exemple de cette propriété : DTSTART:19980118T073000Z

 	3.8.2.5	Durée
Nom de propriété : DURATION
Objet : cette propriété spécifie une durée positive.
Type de valeur : DURATION
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans des composants de calendrier "VEVENT", "VTODO", ou "VALARM".
Description : dans un composant de calendrier "VEVENT" la propriété peut être utilisée pour spécifier une durée de l'événement, au lieu d'une fin DATE-TIME explicite. Dans un composant de calendrier "VTODO" la propriété peut être utilisée pour spécifier une durée pour la chose à faire, au lieu d'une DATE-TIME due explicite. Dans un composant de calendrier "VALARM" la propriété peut être utilisée pour spécifier la période de délai avant de répéter une alarme. Quand la propriété "DURATION" se rapporte à une propriété "DTSTART" spécifiée comme valeur de DATE, alors la propriété "DURATION" DOIT être spécifiée comme une valeur de "dur-day" ou "dur-week".
Définition de format : cette propriété est définie par la notation suivante :

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

durparam  = *(";" other-param)

Exemple : Voici un exemple de cette propriété qui spécifie un intervalle de temps d'une heure, zéro minute, zéro seconde :
DURATION:PT1H0M0S

Voici un exemple de cette propriété qui spécifie un intervalle de 15 minutes : DURATION:PT15M

 	3.8.2.6	Temps libre/occupé
Nom de propriété : FREEBUSY
Objet : cette propriété définit un ou plusieurs intervalles de temps libre ou occupé.
Type de valeur : PERIOD
Paramètres de propriété : des paramètres de propriété IANA, non standard, et de type de temps libre/occupé peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée dans un composant de calendrier "VFREEBUSY".
Description : ces périodes peuvent être spécifiées comme une DATE-TIME de début et de fin ou comme une DATE-TIME de début et une DURATION. La date et l'heure DOIVENT être en format de temps UTC. Les propriétés "FREEBUSY" au sein du composant de calendrier "VFREEBUSY" DEVRAIENT être triées en ordre ascendant, sur la base de l'heure de début et ensuite de l'heure de fin, avec les périodes les plus tôt en premier. La propriété "FREEBUSY" peut spécifier plus d'une valeur, séparées par le caractère VIRGULE. Dans ce cas, les valeurs de propriété "FREEBUSY" DOIVENT toutes être du même type de paramètre de propriété "FBTYPE" (par exemple, toutes les valeurs d'un "FBTYPE" particulier mentionnées ensemble dans une seule propriété).
Définition de format : cette propriété est définie par la notation suivante :

freebusy = "FREEBUSY" fbparam ":" fbvalue CRLF

fbparam = *(
; le suivant est FACULTATIF, mais NE DOIT PAS se produire plus d'une fois. ;
(";" fbtypeparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

fbvalue  = period *("," period)	; la valeur en temps DOIT être dans le format du 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

 	3.8.2.7	Temps transparent
Nom de propriété : TRANSP
Objet : cette 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é IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée une seule fois dans un composant de calendrier "VEVENT".
Description : la transparence au temps est la caractéristique d'un événement qui détermine si il apparaît comme consommant du temps sur un calendrier. Les événements qui consomment du temps réel pour l'individu ou la ressource associé au calendrier DEVRAIENT être enregistrés comme OPAQUE, leur permettant d'être détectés par les recherches de temps libre/occupé. Les autres événements, qui ne prennent pas le temps de l'individu (ou de la ressource) DEVRAIENT être enregistrés comme TRANSPARENT, les rendant invisibles aux recherches de temps libre/occupé.
Définition de format : cette propriété est définie par la notation suivante :

transp = "TRANSP" transparam ":" transvalue CRLF

transparam = *(";" other-param)

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

Exemple : Voici un exemple de cette propriété pour un événement qui est transparent ou ne bloque pas sur les recherches de temps libre/occupé :

TRANSP:TRANSPARENT

Voici un exemple de cette propriété pour un événement qui est opaque ou bloque sur les recherches de temps libre/occupé :

TRANSP:OPAQUE

 	3.8.3	Propriétés de composant de zone horaire
Les propriétés suivantes spécifient les informations de zone horaire dans les composants de calendrier.

 	3.8.3.1	Identifiant de zone horaire
Nom de propriété : TZID
Objet : cette propriété spécifie la valeur de texte qui identifie de façon univoque le composant de calendrier "VTIMEZONE" dans la portée d'un objet iCalendar.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété DOIT être spécifiée dans un composant de calendrier "VTIMEZONE".
Description : c'est l'étiquette par laquelle est référencé un composant de calendrier de zone horaire par toute propriété iCalendar dont le type de valeur est DATE-TIME ou TIME et n'est pas destiné à spécifier un temps UTC ou "flottant". La présence du caractère BARRE OBLIQUE comme préfixe, indique que ce "TZID" représente un identifiant univoque dans un registre mondial de définition de zone horaire (quand un tel registre sera défini).

Note : Le présent document ne définit pas de convention de dénomination pour les identifiants de zone horaire. Les développeurs peuvent vouloir utiliser les conventions de dénomination définies dans les spécifications existantes de zone horaire comme la base de données du domaine public TZ [TZDB]. La spécification d'identifiants de zone horaire uniques au monde n'est pas traitée par le présent document et fera l'objet d'études futures.

Définition de format : cette propriété est définie par la notation suivante :

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

tzidpropparam = *(";" other-param)

;tzidprefix = "/"	; défini précédemment ; mentionné ici pour l'agrément du lecteur.

Exemple : voici des exemples d'identifiants de zone horaire non uniques au monde :
TZID:America/New_York
TZID:America/Los_Angeles

Voici un exemple d'identifiant de zone horaire unique au monde fictif : TZID:/exemple.org/America/New_York

 	3.8.3.2.	Nom de zone horaire
Nom de propriété : TZNAME
Objet :cette propriété spécifie la désignation courante pour une description de zone horaire.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA, non standard, et de langage peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans les sous composants "STANDARD" et "DAYLIGHT".
Description : cette propriété spécifie un nom courant qui peut être utilisé quand on affiche les dates où se produit un événement durant l'observance définie par le sous composant de zone horaire.
Définition de format : cette propriété est définie par la notation suivante :

tzname = "TZNAME" tznparam ":" text CRLF

tznparam = *(
; le suivant est FACULTATIF, mais NE DOIT PAS se produire plus d'une fois. ;
(";" languageparam) /
; le following est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Exemple : voici des exemples de cette propriété :	TZNAME:EST
	TZNAME;LANGUAGE=fr-CA:HNE

 	3.8.3.3.	Décalage de zone horaire à partir de
Nom de propriété : TZOFFSETFROM
Objet : cette propriété spécifie le décalage utilisé avant la pratique de cette zone horaire.
Type de valeur : UTC-OFFSET
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété DOIT être spécifiée dans les sous composants "STANDARD" et "DAYLIGHT".
Description : cette propriété spécifie le décalage utilisé avant cette pratique de temps. Elle est utilisée pour calculer l'heure absolue à laquelle a lieu la transition à une certaine pratique. Cette propriété DOIT seulement être spécifiée dans un composant de calendrier "VTIMEZONE". Un composant de calendrier "VTIMEZONE" DOIT inclure cette propriété. La valeur de propriété est un nombre signé qui indique le nombre d'heures et éventuellement de minutes à partir de l'UTC. Les nombres positifs représentent les zones à l'est du premier méridien, ou en avance de l'UTC. Les nombres négatifs représentent les zones horaires à l'ouest du premier méridien, ou après l'UTC.
Définition de format : cette propriété est définie par la notation suivante :

tzoffsetfrom = "TZOFFSETFROM" frmparam ":" utc-offset CRLF

frmparam = *(";" other-param)

Exemple : voici des exemples de cette propriété :
TZOFFSETFROM:-0500
TZOFFSETFROM:+1345

 	3.8.3.4	Décalage de zone horaire de
Nom de propriété : TZOFFSETTO
Objet : cette propriété spécifie le décalage utilisé dans la pratique de cette zone horaire.
Type de valeur : UTC-OFFSET
Paramètres de propriété : des paramètres de propriété IANA et non-standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété DOIT être spécifiée dans les sous composants "STANDARD" et "DAYLIGHT".
Description : cette propriété spécifie le décalage utilisé dans la pratique de cette zone horaire. Elle est utilisée pour calculer le temps absolu pour la nouvelle pratique. La valeur de propriété est un nombre signé qui indique le nombre d'heures et éventuellement de minutes par rapport à l'UTC. Les nombres positifs représentent les zones à l'est du premier méridien, ou en avance de l'UTC. Les nombres négatifs représentent les zones à l'ouest du premier méridien, ou après l'UTC.
Définition de format : cette propriété est définie par la notation suivante :

tzoffsetto = "TZOFFSETTO" toparam ":" utc-offset CRLF

toparam = *(";" other-param)

Exemple : voici des exemples de cette propriété :	TZOFFSETTO:-0400
	TZOFFSETTO:+1245

 	3.8.3.5.	URL de zone horaire
Nom de propriété : TZURL
Objet : cette propriété donne le moyen à un composant "VTIMEZONE" de pointer sur une localisation de réseau qui peut être utilisée pour restituer une version à jour de lui-même.
Type de valeur : URI
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans un composant de calendrier "VTIMEZONE".
Description : cette propriété donne le moyen à un composant "VTIMEZONE" de pointer sur une localisation de réseau qui peut être utilisée pour restituer une version à jour de lui-même. Cela donne une accroche pour traiter des changements que des organes gouvernementaux imposent aux définitions de zone horaire. La restitution de ces ressource résulte en un objet iCalendar contenant un seul composant "VTIMEZONE" et une propriété "METHOD" réglée à PUBLISH.
Définition de format : cette propriété est définie par la notation suivante :

tzurl = "TZURL" tzurlparam ":" uri CRLF

tzurlparam = *(";" other-param)

Exemple : Voici un exemple de cette propriété : TZURL:http://timezones.exemple.org/tz/America-Los_Angeles.ics

 	3.8.4	Propriétés de composant de relation
Les propriétés suivantes spécifient des informations de relations dans les composants de calendrier.

 	3.8.4.1	Participant
Nom de propriété : ATTENDEE
Objet : cette propriété définit un "Participant" dans un composant de calendrier.
Type de valeur : CAL-ADDRESS
Paramètres de propriété : des paramètres de propriété IANA, non standard, de langage, de type d'utilisateur de calendrier, de groupe ou liste de membres, de rôle de participation, d'état de participation, d'attentes de RSVP, de délégué, de délégant, envoyé par, nom commun, ou référence d'entrée de répertoire peuvent être spécifiés sur cette propriété.
Conformité : cette propriété DOIT être spécifiée dans un objet iCalendar qui spécifie une entité de calendrier de groupe programmé. Cette propriété NE DOIT PAS être spécifiée dans un objet iCalendar quand on publie les informations de calendrier (par exemple, PAS dans un objet iCalendar qui spécifie la publication des temps d'occupation d'un utilisateur de calendrier, de ses événements, choses à faire, ou journal). Cette propriété n'est pas spécifiée dans un objet iCalendar qui spécifie seulement une définition de zone horaire ou qui définit des composants de calendrier qui ne sont pas des composants de groupe programmé, mais sont des composants seulement sur le calendrier d'un seul utilisateur.
Description : cette propriété DOIT seulement être spécifiée dans des composants de calendrier pour spécifier des participants, des non participants, et le président d'une entité de calendrier de groupe programmé. La propriété est spécifiée dans une catégorie "EMAIL" du composant de calendrier "VALARM" pour spécifier une adresse de messagerie électronique destinée à recevoir le type de message d'alarme iCalendar. Le paramètre de propriété "CN" est pour le nom commun ou affichable associé à l'adresse de calendrier; "ROLE", pour le rôle prévu que le participant va avoir dans le composant de calendrier; "PARTSTAT", pour l'état de participation des participants; "RSVP", pour indiquer si une réponse est exigée; "CUTYPE", pour indiquer le type d'utilisateur de calendrier; "MEMBER", pour indiquer les groupes auxquels le participant appartient, "DELEGATED-TO", pour indiquer aux utilisateurs de calendrier que la demande d'origine a été déléguée, et "DELEGATED-FROM", pour indiquer de qui la demande a été déléguée, "SENT-BY", pour indiquer qui agit au nom du "ATTENDEE", et "DIR", pour indiquer l'URI qui pointe sur les informations de répertoire correspondant au participant. Ces paramètres de propriété peuvent être spécifiés sur une propriété "ATTENDEE" dans un composant de calendrier "VEVENT", "VTODO", ou "VJOURNAL". Ils NE DOIVENT PAS être spécifiés dans une propriété "ATTENDEE" dans un composant de calendrier "VFREEBUSY" ou "VALARM". Si le paramètre de propriété "LANGUAGE" est spécifié, le langage identifié s'applique au paramètre "CN". Un receveur délégué à une demande DOIT hériter des valeurs "RSVP" et "ROLE" du participant qui lui a délégué la demande. Plusieurs participants peuvent être spécifiés en incluant plusieurs propriétés "ATTENDEE" dans le composant de calendrier.
Définition de format : cette propriété est définie par la notation suivante :

attendee  = "ATTENDEE" attparam ":" cal-address CRLF

attparam  = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" cutypeparam) / (";" memberparam) / (";" roleparam) / (";" partstatparam) /
(";" rsvpparam) / (";" deltoparam) / (";" delfromparam) / (";" sentbyparam) /
(";" cnparam) / (";" dirparam) / (";" languageparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Exemple : voici des exemples de l'utilisation de cette propriété pour une chose à faire :
ATTENDEE;MEMBER="mailto:DEV-GROUP@exemple.com":mailto:joecool@exemple.com
ATTENDEE;DELEGATED-FROM="mailto:immud@exemple.com":mailto:ildoit@exemple.com

Voici un exemple de cette propriété utilisé pour spécifier plusieurs participants à un événement :
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=HenryCabot:mailto:hcabot@exemple.com
ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="mailto:bob@exemple.com";PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:jdoe@exemple.com

Voici un exemple de cette propriété avec un URI sur les informations de répertoire associées au participant :
ATTENDEE;CN=John Smith;DIR="ldap://exemple.com:6666/o=ABC%20Industries,c=US???(cn=Jim%20Dolittle)":mailto:jimdo@exemple.com

Voici un exemple de cette propriété avec des informations de "délégué" et "déléguant" pour un événement :
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM="mailto:iamboss@exemple.com";CN=Henry Cabot:mailto:hcabot@exemple.com
ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:hcabot@exemple.com";CN=The Big Cheese:mailto:iamboss@exemple.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:jdoe@exemple.com

Exemple : Voici un exemple de l'utilisation de cette propriété quand un autre utilisateur de calendrier agit au nom du "Participant" :
ATTENDEE;SENT-BY=mailto:jan_doe@exemple.com;CN=John Smith:mailto:jsmith@exemple.com

 	3.8.4.2	Contact
Nom de propriété : CONTACT
Objet : cette propriété est utilisée pour représenter des informations de contact ou autrement une référence à des informations de contact associées au composant de calendrier.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA, non standard, d'autre représentation de texte, et de langage peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans un composant de calendrier "VEVENT", "VTODO", "VJOURNAL", ou "VFREEBUSY".
Description : la valeur de propriété consiste en informations de contact textuelles. Une autre représentation pour la valeur de propriété peut aussi être spécifiée qui se réfère à un URI pointant sur une autre forme, comme une vCard [RFC2426], pour les informations de contact.
Définition de format : cette propriété est définie par la notation suivante :

contact = "CONTACT" contparam ":" text CRLF

contparam  = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" altrepparam) / (";" languageparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Exemple : Voici un exemple de cette propriété faisant référence à des informations de contact textuelles :
CONTACT:Jim Dolittle\, ABC Industries\, +1-919-555-1234

Voici un exemple de cette propriété avec une autre représentation d'un URI LDAP à une entrée de répertoire contenant les informations de contact :
CONTACT;ALTREP="ldap://exemple.com:6666/o=ABC%20Industries\,c=US???(cn=Jim%20Dolittle)":Jim Dolittle\, ABC Industries\, +1-919-555-1234

Voici un exemple de cette propriété avec une autre représentation d'une partie de corps MIME contenant les informations de contact, comme une vCard [RFC2426] incorporée dans un type de supports text/directory [RFC2425] :
CONTACT;ALTREP="CID:part3.msg970930T083000SILVER@exemple.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, comme un objet vCard [RFC2426] contenant les informations de contact :
CONTACT;ALTREP="http://exemple.com/pdi/jdoe.vcf":Jim Dolittle\, ABC Industries\, +1-919-555-1234

 	3.8.4.3	Organisateur
Nom de propriété : ORGANIZER
Objet : cette propriété définit l'organisateur pour un composant de calendrier.
Type de valeur : CAL-ADDRESS
Paramètres de propriété : des paramètres de propriété IANA, non standard, langage, nom commun, référence d'entrée de répertoire, et envoyé par, peuvent être spécifiés sur cette propriété.
Conformité : cette propriété DOIT être spécifiée dans un objet iCalendar qui spécifie une entité de calendrier de groupe programmé. Cette propriété DOIT être spécifiée dans un objet iCalendar qui spécifie la publication des temps d'occupation d'un utilisateur de calendrier. Cette propriété NE DOIT PAS être spécifiée dans un objet iCalendar qui spécifie seulement une définition de zone horaire ou qui définit des composants de calendrier qui ne sont pas des composants de groupe programmé, mais sont des composants seulement d'un seul calendrier d'utilisateur.
Description : cette propriété est spécifiée dans les composants de calendrier "VEVENT", "VTODO", et "VJOURNAL" pour spécifier l'organisateur d'une entité de calendrier de groupe programmé. La propriété est spécifiée dans le composant de calendrier "VFREEBUSY" pour spécifier l'utilisateur de calendrier qui demande les temps libres ou occupés. Quand on publie un composant de calendrier "VFREEBUSY", la propriété est utilisée pour spécifier le calendrier d'où les temps d'occupation publiés proviennent. La propriété a les paramètres de propriété "CN", pour spécifier le nom commun ou d'affichage associé à l'"Organisateur", "DIR", pour spécifier un pointeur sur les informations de répertoire associées à l'"Organisateur", "SENT-BY", pour spécifier un autre utilisateur de calendrier qui agit au nom de l'"Organisateur". Des paramètres non standard peuvent aussi être spécifiés sur cette propriété. Si le paramètre de propriété "LANGUAGE" est spécifié, le langage identifié s'applique à la valeur de paramètre "CN".
Définition de format : cette propriété est définie par la notation suivante :

organizer = "ORGANIZER" orgparam ":" cal-address CRLF

orgparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" cnparam) / (";" dirparam) / (";" sentbyparam) / (";" languageparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Exemple : Voici un exemple de cette propriété : ORGANIZER;CN=John Smith:mailto:jsmith@exemple.com

Voici un exemple de cette propriété avec un pointeur sur les informations de répertoire associées à l'organisateur :
ORGANIZER;CN=JohnSmith;DIR="ldap://exemple.com:6666/o=DC%20Ass
        ociates,c=US???(cn=John%20Smith)":mailto:jsmith@exemple.com

Voici un exemple de cette propriété utilisée par un autre utilisateur de calendrier qui agit au nom de l'organisateur, avec des réponses destinées à être renvoyées à l'organisateur, non à d'autres utilisateurs de calendrier :
ORGANIZER;SENT-BY="mailto:jane_doe@exemple.com":mailto:jsmith@exemple.com

 	3.8.4.4	Identifiant de récurrence
Nom de propriété : RECURRENCE-ID
Objet : cette propriété est utilisée en conjonction avec les propriétés "UID" et "SEQUENCE" pour identifier une instance spécifique de  composant de calendrier récurrente "VEVENT", "VTODO", ou "VJOURNAL". La valeur de propriété est la valeur originale de la propriété "DTSTART" de l'instance récurrente.
Type de valeur : le type de valeur par défaut est DATE-TIME. Le type de valeur peut être réglé à un type de valeur DATE.  Cette propriété DOIT avoir le même type de valeur que la propriété "DTSTART" contenue dans le composant récurrent.  De plus, cette propriété DOIT être spécifiée comme date avec heure locale si et seulement si la propriété "DTSTART" contenue dans le composant récurrent est spécifiée comme date avec heure locale.
Paramètres de propriété : des paramètres IANA, non standard, type de données de valeur, identifiant de zone horaire, et gamme d'identifiants de récurrence peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans un objet iCalendar contenant un composant récurrent de calendrier.
Description : la gamme complète de composants de calendrier spécifiée par un ensemble de récurrence est référencée en mentionnant juste la valeur de propriété "UID" correspondant au composant de calendrier. La propriété "RECURRENCE-ID" permet la référence à une instance individuelle au sein de l'ensemble de récurrences. Si la valeur de la propriété "DTSTART" est une valeur de type DATE, alors la valeur DOIT être la date de calendrier pour l'instance récurrente. La valeur DATE-TIME est réglée à l'heure où l'instance récurrente originale va se produire, ce qui signifie que si l'intention est de changer une réunion du vendredi au jeudi, le DATE-TIME est toujours réglé à la réunion originale du vendredi. La propriété "RECURRENCE-ID" est utilisée en conjonction avec les propriétés "UID" et "SEQUENCE" pour identifier une instance particulière d'un événement, chose à faire, ou journal, récurrent. Pour une certaine paire de valeurs de propriété "UID" et "SEQUENCE", la valeur "RECURRENCE-ID" pour une instance récurrente est fixe. Le paramètre "RANGE" est utilisé pour spécifier la gamme effective d'instances de récurrence à partir de l'instance spécifiée par la valeur de propriété "RECURRENCE-ID". La valeur pour le paramètre de gamme peut seulement être "THISANDFUTURE" pour indiquer une gamme définie par l'instance récurrente donnée et toutes les instances suivantes. Les instances suivantes sont déterminées par leur valeur "RECURRENCE-ID" et non leur heure de début programmée courante. Les instances suivantes définies dans des composants séparés ne sont pas impactées par l'instance récurrente donnée. Quand l'instance récurrente donnée est reprogrammée, toutes les instances suivantes sont aussi reprogrammées de la même différence de temps. Par exemple, si l'instance récurrente donnée est reprogrammée pour commencer deux heures plus tard, alors toutes les instances suivantes sont aussi reprogrammées deux heures plus tard. De même, si la durée de l'instance récurrente données est modifiée, alors toutes les instances suivantes sont aussi modifiées pour avoir cette même durée.

Note : le paramètre "RANGE" peut n'être pas approprié pour reprogrammer les instances suivantes spécifiques d'un composant récurrent de calendrier complexe. En supposant un composant récurrent de calendrier sans limite programmé pour se produire les lundis et mercredis, le paramètre "RANGE" ne pourrait pas être utilisé pour reprogrammer seulement les instances futures de lundi à se produire les mardis à la place. Dans ce cas, l'application de calendrier pourrait simplement tronquer le composant récurrent de calendrier sans limite (c'est-à-dire, avec les parties de règle "COUNT" ou "UNTIL") et créer deux nouveaux composants de calendrier récurrents non limités pour les instances futures.

Définition de format : cette propriété est définie par la notation suivante :

recurid = "RECURRENCE-ID" ridparam ":" ridval CRLF

ridparam   = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) / (";" tzidparam) / (";" rangeparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

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

 	3.8.4.5	En rapport avec
Nom de propriété : RELATED-TO
Objet : cette propriété est utilisée pour représenter une relation ou référence entre un composant de calendrier et un autre.
Type de valeur : TEXT
Paramètres de propriété : des types de paramètres de propriété IANA, non standard, et de relation peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans les composants de calendrier "VEVENT", "VTODO", et "VJOURNAL".
Description : la valeur de propriété consiste en l'identifiant persistent, unique au monde 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 sur un autre composant de calendrier qui a une relation de PARENT avec l'objet de référence. Le paramètre de propriété "RELTYPE" est utilisé pour déclarer explicitement le type par défaut de relation PARENT au composant de calendrier référencé ou pour écraser le type de relation par défaut PARENT et spécifier une relation CHILD ou SIBLING. La relation PARENT indique que le composant de calendrier est un subordonné du composant de calendrier référencé. La relation CHILD indique que le composant de calendrier est un supérieur du composant de calendrier référencé. La relation SIBLING indique que le composant de calendrier est un homologue du composant de calendrier référencé. Les changements d'un composant de calendrier référencé par cette propriété peuvent avoir un impact implicite sur le composant de calendrier en rapport. Par exemple, si un événement de groupe change son heure de début ou de fin, alors les événements en rapport dépendants vont avoir besoin de changer leurs dates de début et de fin de façon correspondante. De même, si un composant de calendrier PARENT est annulé ou supprimé, il y a alors un impact implicite sur les composants de calendrier CHILD en rapport. Cette propriété est destinée seulement à donner des informations sur les relations des composants de calendrier. Il appartient au système de calendrier cible de tenir toutes les implications de propriété de ces relations.
Définition de format : cette propriété est définie par la notation suivante :

related  = "RELATED-TO" relparam ":" text CRLF

relparam = *(
; le suivant est FACULTATIF, mais NE DOIT PAS se produire plus d'une fois. ;
(";" reltypeparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

Voici un exemple de cette propriété :
RELATED-TO:jsmith.part7.19960817T083000.xyzMail@exemple.com
RELATED-TO:19960401-080045-4000F192713-0052@exemple.com

 	3.8.4.6	Localisateur universel de ressource
Nom de propriété : URL
Objet : cette propriété définit un localisateur de ressource universel (URL, Uniform Resource Locator) associé à l'objet iCalendar.
Type de valeur : URI
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée une seule fois dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL", ou "VFREEBUSY".
Description : cette propriété peut être utilisée dans un composant de calendrier pour porter une localisation où un rendu plus dynamique des informations de calendrier associées au composant de calendrier peut être trouvé. Le présent mémoire ne tente pas de normaliser la forme de l'URI, ni le format de la ressource pointée par la valeur de propriété. Si la propriété URL et l'en-tête Content-Location MIME sont tous deux spécifiés, ils DOIVENT pointer sur la même ressource.
Définition de format : cette propriété est définie par la notation suivante :

url = "URL" urlparam ":" uri CRLF

urlparam = *(";" other-param)

Exemple : Voici un exemple de cette propriété : URL:http://exemple.com/pub/calendars/jsmith/mytime.ics

 	3.8.4.7	Identifiant univoque
Nom de propriété : UID
Objet : cette propriété définit l'identifiant persistent, unique au monde pour le composant de calendrier.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : la propriété DOIT être spécifiée dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL", ou "VFREEBUSY".
Description : l'"UID" lui-même DOIT être un identifiant unique au monde. Le générateur de l'identifiant DOIT garantir que l'identifiant est unique. Il y a plusieurs algorithmes qui peuvent être utilisés pour faire cela. Une bonne méthode pour assurer l'unicité est de mettre le nom de domaine ou une adresse IP littérale de domaine de l'hôte sur lequel l'identifiant a été créé sur le côté droit d'un "@", et sur le côté gauche, de mettre une combinaison de la date et l'heure courante du calendrier (c'est-à-dire, formaté comme une valeur DATE-TIME) avec quelque autre identifiant actuellement unique (peut-être séquentiel) disponible sur le système, par exemple, un numéro d'identifiant de processus). Utiliser une valeur de DATE-TIME sur le côté gauche et un nom de domaine ou littéral de domaine sur le côté droit rend possible de garantir l'unicité parce qu'il n'y a pas deux hôtes qui devraient utiliser le même nom de domaine ou adresse IP en même temps. Bien que d'autres algorithmes fonctionneraient, il est RECOMMANDÉ que le côté droit contienne un identifiant de domaine (celui de l'hôte lui-même ou un autre) de façon que le générateur de l'identifiant du message puisse garantir l'unicité du côté gauche dans la portée de ce domaine. C'est la méthode pour corréler les messages de programmation avec le composant de calendrier "VEVENT", "VTODO", ou "VJOURNAL" référencé .La gamme complète des composants de calendrier spécifiés par un ensemble de récurrences est référencée par la seule valeur de propriété"UID" correspondant au composant de calendrier. La propriété "RECURRENCE-ID" permet la référence à une instance individuelle au sein de l'ensemble de récurrences. Cette propriété est une méthode importante pour les applications de programmation de groupe pour faire correspondre les demandes aux réponses, modifications, ou demandes de suppression ultérieures. Les applications de calendrier et programmation DOIVENT générer cette propriété dans les composants de calendrier "VEVENT", "VTODO", et "VJOURNAL" pour assurer l'interopérabilité avec les autres applications de programmation de groupe. Cet identifiant est créé par le système de calendrier qui génère un objet iCalendar. Les mises en œuvre DOIVENT être capables de recevoir et conserver des valeurs d'au moins 255 octets pour cette propriété, mais elles NE DOIVENT PAS tronquer les valeurs au milieu d'une séquence UTF-8 multi octets.
Définition de format : cette propriété est définie par la notation suivante :

uid = "UID" uidparam ":" text CRLF

uidparam = *(";" other-param)

Exemple : Voici un exemple de cette propriété : UID:19960401T080045Z-4000F192713-0052@exemple.com

 	3.8.5	Propriétés de composant de récurrence
Les propriétés suivantes spécifient les informations de récurrence dans les composants de calendrier.

 	3.8.5.1	Exceptions de date-heures
Nom de propriété : EXDATE
Objet : cette propriété définit la liste des exceptions de DATE-TIME pour les événements, choses à faire, entrées de journal, ou définitions de zone horaire récurrentes.
Type de valeur : le type de valeur par défaut pour cette propriété est DATE-TIME. Le type de valeur peut être réglé à DATE.
Paramètres de propriété : des paramètres de propriété IANA, non standard, type de données de valeur, et identifiant de zone horaire peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans les composants de calendrier "VEVENT", "VTODO", et "VJOURNAL" récurrents ainsi que dans les sous composants "STANDARD" et "DAYLIGHT" de composant de calendrier "VTIMEZONE".
Description : les dates d'exception, si il en est de spécifiées, sont utilisées pour calculer l'ensemble de récurrence. L'ensemble de récurrence est l'ensemble complet d'instances de récurrence pour un composant de calendrier. L'ensemble de récurrence est généré en considérant la propriété initiale "DTSTART" avec les propriétés "RRULE", "RDATE", et "EXDATE" contenues dans le composant récurrent. La propriété "DTSTART" définit la première instance dans l'ensemble de récurrence. La valeur de propriété "DTSTART" DEVRAIT correspondre au schéma de la règle de récurrence, si elle est spécifiée. L'ensemble de récurrence généré avec une valeur de propriété "DTSTART" qui ne correspond pas au schéma de la règle est indéfini. L'ensemble de récurrence final est généré en rassemblant toutes les valeur de début de DATE-TIME générées par toutes les propriétés "RRULE" et "RDATE" spécifiées, et ensuite en excluant toutes les valeurs de début de DATE-TIME spécifiées par les propriétés "EXDATE". Cela implique que les valeurs de DATE-TIME de début spécifiées par les propriétés "EXDATE" ont la préséance sur celles spécifiées par les propriétés d'inclusion (c'est-à-dire, "RDATE" et "RRULE"). Quand des instances dupliquées sont générées par les propriétés "RRULE" et "RDATE", seulement une récurrence est considérée. Les instances dupliquées sont ignorées. La propriété "EXDATE" peut être utilisée pour exclure la valeur spécifié dans "DTSTART". Cependant, dans ce cas, la date "DTSTART" originale DOIT quand même être maintenue par le système de calendrier et programmation parce que la valeur de "DTSTART" originale a des dépendances d'usage inhérentes pour d'autres propriétés comme le "RECURRENCE-ID".

Définition de format : cette propriété est définie par la notation suivante :

exdate = "EXDATE" exdtparam ":" exdtval *("," exdtval) CRLF

exdtparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
;
(";" tzidparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

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

Exemple : Voici un exemple de cette propriété : EXDATE:19960402T010000Z,19960403T010000Z,19960404T010000Z

 	3.8.5.2.	Dates-heures récurrentes
Nom de propriété : RDATE
Objet : cette propriété définit la liste des valeurs DATE-TIME pour les événements, choses à faire, entrées de journal, ou définitions de zone horaire récurrents.
Type de valeur : le type de valeur par défaut pour cette propriété est DATE-TIME. Le type de valeur peut être réglé à DATE ou à PERIOD.
Paramètres de propriété : des paramètres de propriété IANA, non standard, type de données de valeur, et identifiant de zone horaire peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans les composants de calendrier"VEVENT", "VTODO", et "VJOURNAL" récurrents ainsi que dans les sous composants "STANDARD" et "DAYLIGHT" du composant de calendrier "VTIMEZONE".
Description : cette propriété peut apparaître avec la propriété "RRULE" pour définir un ensemble agrégé d'occurrences répétées. Quand elles apparaissent toutes deux dans un composant récurrent, les instances de récurrence sont définies par l'union des occurrences définies par "RDATE" et "RRULE". Les dates de récurrence, si elles sont spécifiées, sont utilisées pour calculer l'ensemble de récurrence. L'ensemble de récurrence est l'ensemble complet des instances de récurrence pour un composant de calendrier. L'ensemble de récurrence est généré en considérant la propriété "DTSTART" initiale avec les propriétés "RRULE", "RDATE", et "EXDATE" contenues dans le composant récurrent. La propriété "DTSTART" définit la première instance dans l'ensemble de récurrence. La valeur de propriété "DTSTART" DEVRAIT correspondre au schéma de la règle de récurrence, si il est spécifié. L'ensemble de récurrence généré avec une valeur de propriété "DTSTART" qui ne correspond pas au schéma de la règle est indéfini. L'ensemble de récurrence final est généré en rassemblant toutes les valeurs de DATE-TIME de début générées par toutes les propriétés "RRULE" et "RDATE" spécifiées, et ensuite en excluant toutes les valeurs DATE-TIME de début spécifiées par les propriétés "EXDATE". Cela implique que les valeurs DATE-TIME de début spécifiées par les propriétés "EXDATE" ont la préséance sur celles spécifiées par les propriétés d'inclusion (c'est-à-dire, "RDATE" et "RRULE"). Lorsque des instances dupliquées sont générées par les propriétés "RRULE" et "RDATE", une seule récurrence est considérée. les instances dupliquées sont ignorées.

Définition de format : cette propriété est définie par la notation suivante :

rdate = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF

rdtparam = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" "VALUE" "=" ("DATE-TIME" / "DATE" / "PERIOD")) / (";" tzidparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

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

Exemple : voici des exemples de cette propriété :
RDATE:19970714T123000Z
RDATE;TZID=America/New_York:19970714T083000
RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,19960404T010000Z/PT3H
RDATE;VALUE=DATE:19970101,19970120,19970217,19970421,19970526,19970704,19970901
      ,19971014,19971128,19971129,19971225

 	3.8.5.3	Règle de récurrence
Nom de propriété : RRULE
Objet : cette propriété définit une règle ou un schéma de répétition pour des événements, choses à faire, entrées de journal, ou définitions de zone horaire, récurrents.
Type de valeur : RECUR
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans des composants de calendrier "VEVENT", "VTODO", et "VJOURNAL" récurrents ainsi que dans les sous composants "STANDARD" et "DAYLIGHT" de composant de calendrier "VTIMEZONE", mais elle NE DEVRAIT PAS être spécifiée plus d'une fois. L'ensemble de récurrence généré avec plusieurs propriétés "RRULE" est indéfini.
Description : la règle de récurrence, si spécifiée, est utilisée pour calculer l'ensemble de récurrence. L'ensemble de récurrence est l'ensemble complet d'instances de récurrence pour un composant de calendrier. L'ensemble de récurrence est généré en considérant la propriété "DTSTART" initiale avec les propriétés "RRULE", "RDATE", et "EXDATE" contenues dans le composant récurrent. La propriété "DTSTART" définit la première instance dans l'ensemble de récurrence. La valeur de propriété "DTSTART" DEVRAIT être synchronisée avec la règle de récurrence, si elle est spécifiée. L'ensemble de récurrence généré avec une valeur de propriété "DTSTART" non synchronisée avec la règle de récurrence est indéfini. L'ensemble de récurrence final est généré en rassemblant toutes les valeurs DATE-TIME de début générées par toutes les propriétés "RRULE" et "RDATE" spécifiées, et ensuite en excluant toutes les valeurs DATE-TIME de départ spécifiées par les propriétés "EXDATE". Cela implique que les valeurs DATE-TIME de départ spécifiées par les propriétés "EXDATE" ont la préséance sur celles spécifiées par les propriétés d'inclusion (c'est-à-dire, "RDATE" et "RRULE"). Lorsque des instances dupliquées sont générées par les propriétés "RRULE" et "RDATE", une seule récurrence est considérée. Les instances dupliquées sont ignorées. La propriété "DTSTART" spécifiée dans l'objet iCalendar définit la première instance de la récurrence. Dans la plupart des cas, une propriété "DTSTART" de type de valeur DATE-TIME utilisée avec une règle de récurrence, devrait être spécifiée comme date avec heure locale et référence de zone horaire pour s'assurer que toutes les instances de récurrence commencent à la même heure locale sans considération des changements de zone horaire. Si la durée du composant récurrent est spécifiée avec la propriété "DTEND" ou "DUE", alors la même durée exacte va s'appliquer à tous les membres de l'ensemble de récurrence généré.  Autrement, si la durée du composant récurrent est spécifiée avec la propriété "DURATION", alors la même durée nominale va s'appliquer à tous les membres de l'ensemble de récurrence généré et la durée exacte de chaque instance récurrente va dépendre de son heure de début spécifique. Par exemple, les instances de récurrence d'une durée nominale de un jour vont avoir une durée exacte de plus ou moins de 24 heures un jour où un glissement de zone horaire se produit. La durée d'une récurrence spécifique peut être modifiée dans un composant d'exception ou simplement en utilisant une propriété "RDATE" de type de valeur PERIOD.

Définition de format : cette propriété est définie par la notation suivante :

rrule = "RRULE" rrulparam ":" recur CRLF

rrulparam = *(";" other-param)

Exemple : tous les exemples supposent la zone horaire Eastern United States (Est des États Unis).

Quotidien pour 10 occurrences :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=DAILY;COUNT=10
==> (1997 9:00 AM EDT) du 2 au 11 septembre

Quotidien jusqu'au 24 décembre 1997 :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=DAILY;UNTIL=19971224T000000Z
==> (1997 9:00 AM EDT) du 2 au 30 septembre ; du 1er au 25 octobre 
        (1997 9:00 AM EST) du 26 au 31 octobre ; du 1er au 30 novembre ; du 1er au 23 décembre

Tous les deux jours – pour toujours :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=DAILY;INTERVAL=2
==> (1997 9:00 AM EDT) 2, 4, 6, 8... 24, 26, 28, 30 septembre ;
                                            2, 4 ,6... 20, 22, 24 octobre
        (1997 9:00 AM EST) 26, 28, 30 octobre ;
                                             1, 3, 5, 7... 25, 27, 29 novembre ;
                                             1, 3, ... décembre

Tous les 10 jours, 5 occurrences :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5
==> (1997 9:00 AM EDT) 2, 12, 22 septembre ;
                                            2, 12 octobre

Chaque jour de janvier, pendant 3 ans :
DTSTART;TZID=America/New_York:19980101T090000
RRULE:FREQ=YEARLY;UNTIL=20000131T140000Z;
BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
ou
RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1
==> (1998 9:00 AM EST) du 1 au 31 janvier
        (1999 9:00 AM EST) du 1 au 31 janvier
        (2000 9:00 AM EST) du 1 au 31 janvier

Hebdomadaire pour 10 occurrences :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=WEEKLY;COUNT=10
==> (1997 9:00 AM EDT) 2, 9, 16, 23, 30 septembre ; 7, 14, 21 octobre
        (1997 9:00 AM EST) 28 octobre ;4 novembre

Hebdomadaire jusqu'au 24 décembre 1997 :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z
==> (1997 9:00 AM EDT) 2, 9, 16, 23, 30 septembre ;
                                            7, 14, 21 octobre
        (1997 9:00 AM EST) 28 octobre ;
                                            4, 11, 18, 25 novembre ;
                                             2, 9, 16, 23 décembre

Une semaine sur deux – pour toujours :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU
==> (1997 9:00 AM EDT) 2, 16, 30 septembre ;
                                          14 octobre
        (1997 9:00 AM EST) 28 octobre ;
                                           11, 25 novembre  ;
                                             9, 23 décembre
        (1998 9:00 AM EST) 6, 20 janvier ;
                                            3, 17 février ;
           ...

Les mardis et jeudis pendant cinq semaines :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH
 ou
RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
==> (1997 9:00 AM EDT) 2, 4, 9, 11, 16, 18, 23, 25, 30 septembre ; 2 octobre

Toutes les deux semaines les lundis, mercredis, et vendredis jusqu'au 24 décembre 1997, commençant lundi 1er septembre 1997 :
DTSTART;TZID=America/New_York:19970901T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;BYDAY=MO,WE,FR
==> (1997 9:00 AM EDT) 1, 3, 5, 15, 17, 19, 29 septembre ; 1, 3, 13, 15, 17 octobre
        (1997 9:00 AM EST) 27, 29, 31 octobre ;
                                           10, 12, 14, 24, 26, 28 novembre ; 8, 10, 12, 22 décembre

Toutes les deux semaines les mardis et jeudis, pour 8 occurrences :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH
==> (1997 9:00 AM EDT) 2, 4,1 6, 18, 30 septembre ; 2, 14, 16 octobre

Le premier vendredi du mois pour 10 occurrences :
DTSTART;TZID=America/New_York:19970905T090000
RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
==> (1997 9:00 AM EDT) 5 septembre ; 3 octobre
         (1997 9:00 AM EST) 7 novembre ; 5 décembre
         (1998 9:00 AM EST) 2 janvier ; 6 février ; 6 mars ; 3 avril
         (1998 9:00 AM EDT) 1er mai ; 5 juin

Le premier vendredi du mois jusqu'au 24 décembre 1997 :
DTSTART;TZID=America/New_York:19970905T090000
RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR
==> (1997 9:00 AM EDT) 5 septembre ; 3 octobre
        (1997 9:00 AM EST) 7 novembre ; 5 décembre

Tous les deux mois le premier et dernier dimanche du mois pour 10 occurrences :
DTSTART;TZID=America/New_York:19970907T090000
RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU
==> (1997 9:00 AM EDT) 7 et 28 septembre
        (1997 9:00 AM EST) 2 et 30 novembre
        (1998 9:00 AM EST) 4 et 25 janvier ; 1er et 29 mars
        (1998 9:00 AM EDT) 3 et 31 mai

L'avant dernier lundi du mois pour 6 mois :
DTSTART;TZID=America/New_York:19970922T090000
RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO
==> (1997 9:00 AM EDT) 22 septembre ; 20 octobre
        (1997 9:00 AM EST) 17 novembre ; 22 décembre
        (1998 9:00 AM EST) 19 janvier ; 16 février

L'antépénultième jour du mois, pour toujours :
DTSTART;TZID=America/New_York:19970928T090000
RRULE:FREQ=MONTHLY;BYMONTHDAY=-3
==> (1997 9:00 AM EDT) 28 septembre
        (1997 9:00 AM EST) 29 octobre ; 28 novembre ; 29 décembre
        (1998 9:00 AM EST) 29 janvier ; 26 février
        ...

Le second et le 15ème jour du mois pour 10 occurrences :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15
==> (1997 9:00 AM EDT) 2 et 15 septembre ; 2 et 15 octobre
        (1997 9:00 AM EST) 2 et 15 novembre ; 2 et 15 décembre
        (1998 9:00 AM EST) 2 et 15 janvier

Le premier et le dernier jour du mois pour 10 occurrences :
DTSTART;TZID=America/New_York:19970930T090000
RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1
==> (1997 9:00 AM EDT) 30 septembre ; 1er octobre
        (1997 9:00 AM EST) 31 octobre ; 1er et 30 novembre ; 1er et 31 décembre
        (1998 9:00 AM EST) 1er et 31 janvier ; 1er février

Tous les 18 mois du 10ème au 15ème du mois pour 10 occurrences :
DTSTART;TZID=America/New_York:19970910T090000
RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,15
==> (1997 9:00 AM EDT) 10, 11, 12, 13, 14, 15 septembre
        (1999 9:00 AM EST) 10, 11, 12, 13 mars

Tous les mardis, tous les deux mois :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
==> (1997 9:00 AM EDT) 2, 9, 16, 23, 30 septembre
        (1997 9:00 AM EST) 4, 11, 18, 25 novembre
        (1998 9:00 AM EST) 6, 13, 20, 27 janvier ; 3, 10, 17, 24, 31 mars
         ...

Tous les ans en juin et juillet pour 10 occurrences :
DTSTART;TZID=America/New_York:19970610T090000
RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7
==> (1997 9:00 AM EDT) 10 juin ; 10 juillet
        (1998 9:00 AM EDT) 10 juin ; 10 juillet
        (1999 9:00 AM EDT) 10 juin ; 10 juillet
        (2000 9:00 AM EDT) 10 juin ; 10 juillet
        (2001 9:00 AM EDT) 10 juin ; 10 juillet

Note : comme aucun des composants BYDAY, BYMONTHDAY, ou BYYEARDAY n'est spécifié, le jour est pris de "DTSTART".

Tous les deux ans en janvier, février, et mars pour 10 occurrences :
DTSTART;TZID=America/New_York:19970310T090000
RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3
==> (1997 9:00 AM EST) 10 mars
        (1999 9:00 AM EST) 10 janvier ; 10 février ; 10 mars
        (2001 9:00 AM EST) 10 janvier ; 10 février ; 10 mars
        (2003 9:00 AM EST) 10 janvier ; 10 février ; 10 mars

Tous les trois ans le 1er, 100ème, et 200ème jour pour 10 occurrences :
DTSTART;TZID=America/New_York:19970101T090000
RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200
==> (1997 9:00 AM EST) 1er janvier
        (1997 9:00 AM EDT) 10 avril ; 19 juillet
        (2000 9:00 AM EST) 1er janvier
        (2000 9:00 AM EDT) 9 avril ; 18 juillet
        (2003 9:00 AM EST) 1er janvier
        (2003 9:00 AM EDT) 10 avril ; 19 juillet
        (2006 9:00 AM EST) 1er janvier

Tous les 20ème lundis de l'année, pour toujours :
DTSTART;TZID=America/New_York:19970519T090000
RRULE:FREQ=YEARLY;BYDAY=20MO
==> (1997 9:00 AM EDT) 19 mai
        (1998 9:00 AM EDT) 18 mai
        (1999 9:00 AM EDT) 17 mai
        ...

Le lundi de la 20ème semaine (où le début par défaut de la semaine est lundi) pour toujours :
DTSTART;TZID=America/New_York:19970512T090000
RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO
==> (1997 9:00 AM EDT) 12 mai
        (1998 9:00 AM EDT) 11 mai
        (1999 9:00 AM EDT) 17 mai
        ...

Tous les jeudis en mars, pour toujours :
DTSTART;TZID=America/New_York:19970313T090000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH
==> (1997 9:00 AM EST) 13, 20, 27 mars
         (1998 9:00 AM EST) 5, 12, 19, 26 mars
         (1999 9:00 AM EST) 4, 11, 18, 25 mars
         ...

Tous les jeudis, mais seulement en juin, juillet, et août, pour toujours :
DTSTART;TZID=America/New_York:19970605T090000
RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8
==> (1997 9:00 AM EDT) 5, 12, 19, 26 juin ; 3, 10, 17, 24, 31 juillet ;7, 14, 21, 28 août
        (1998 9:00 AM EDT) 4, 11, 18, 25 juin ; 2, 9, 16, 23, 30 juillet ; 6, 13, 20, 27 août
        (1999 9:00 AM EDT) 3, 10, 17, 24 juin ; 1, 8, 15, 22, 29 juillet ; 5, 12, 19, 26 août
        ...

Chaque vendredi 13, pour toujours :
DTSTART;TZID=America/New_York:19970902T090000
EXDATE;TZID=America/New_York:19970902T090000
RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13
==> (1998 9:00 AM EST) 13 février ; 13 mars ; 13 novembre
        (1999 9:00 AM EDT) 13 août
        (2000 9:00 AM EDT) 13 octobre
        ...

Le premier samedi qui suit le premier dimanche du mois, pour toujours :
DTSTART;TZID=America/New_York:19970913T090000
RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13
==> (1997 9:00 AM EDT) 13 septembre ; 11 octobre
        (1997 9:00 AM EST) 8 novembre ; 13 décembre
        (1998 9:00 AM EST) 10 janvier ; 7 février ; 7 mars
        (1998 9:00 AM EDT) 11 avril ; 9 mai ; 13 juin ...
        ...

Tous les 4 ans, le premier mardi après un lundi en novembre, pour toujours (jour d'élection présidentielle aux USA) :
DTSTART;TZID=America/New_York:19961105T090000
RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;
BYMONTHDAY=2,3,4,5,6,7,8
==> (1996 9:00 AM EST) 5 novembre
        (2000 9:00 AM EST) 7 novembre
        (2004 9:00 AM EST) 2 novembre
        ...

La troisième instance du mois d'un mardi, mercredi ou jeudi , pour les trois prochains mois :
DTSTART;TZID=America/New_York:19970904T090000
RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3
==> (1997 9:00 AM EDT) 4 septembre ; 7 octobre
        (1997 9:00 AM EST) 6 novembre

L'avant dernier jour de semaine du mois :
DTSTART;TZID=America/New_York:19970929T090000
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2
==> (1997 9:00 AM EDT) 29 septembre
        (1997 9:00 AM EST) 30 octobre ; 27 novembre ; 30 décembre
        (1998 9:00 AM EST) 29 janvier ; 26 février ; 30 mars
        ...

Toutes les 3 heures de 9:00 AM à 17:00 un certain jour :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
==> (2 septembre 1997 EDT) 09:00, 12:00, 15:00

Toutes les 15 minutes pour 6 occurrences :
DTSTART;TZID=America/New_York: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 une heure et demie pour 4 occurrences :
DTSTART;TZID=America/New_York:19970902T090000
RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4
==> (2 septembre 1997 EDT) 09:00, 10:30 ; 12:00 ;13:30

Toutes les 20 minutes de 9:00 AM à 16:40 chaque jour :
DTSTART;TZID=America/New_York: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ù les jours générés font une différence à cause de WKST :
DTSTART;TZID=America/New_York:19970805T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO
==> (1997 EDT) 5, 10, 19, 24 août

Changer seulement WKST en de MO à SU, donne un résultat différent ...
DTSTART;TZID=America/New_York:19970805T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU
==> (1997 EDT) 5, 17, 19, 31 août

Un exemple où une date invalide (c'est-à-dire, le 30 février) est ignorée .
DTSTART;TZID=America/New_York:20070115T090000
RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5
==> (2007 EST) 15, 30 janvier
        (2007 EST) 15 février
        (2007 EDT) 15, 30 mars

 	3.8.6	Propriétés de composant d'alarme
Les propriétés suivantes spécifient des informations d'alarme dans les composants de calendrier.

 	3.8.6.1	Action
Nom de propriété : ACTION
Objet : cette propriété définit l'action à invoquer quand une alarme est déclenchée.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété DOIT être spécifiée une seule fois dans un composant de calendrier "VALARM".
Description : chaque composant de calendrier "VALARM" a un type d'action particulier auquel il est associé. Cette propriété spécifie le type d'action. Les applications DOIVENT ignorer les alarmes avec des valeurs de x-name et iana-token qu'elles ne reconnaissent pas.
Définition de format : cette propriété est définie par la notation suivante :

action = "ACTION" actionparam ":" actionvalue CRLF

actionparam = *(";" other-param)

actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / iana-token / x-name

Exemple : voici des exemples de cette propriété dans un composant de calendrier "VALARM" :
ACTION:AUDIO
ACTION:DISPLAY

 	3.8.6.2	Compte de répétition
Nom de propriété : REPEAT
Objet : cette propriété définit le nombre de fois que l'alarme devrait être répétée, après le déclenchement initial.
Type de valeur : INTEGER
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans un composant de calendrier "VALARM".
Description : cette propriété définit le nombre de fois qu'une alarme devrait être répétée après son déclenchement initial. Si l'alarme se déclenche plus d'une fois, alors cette propriété DOIT être spécifiée avec la propriété "DURATION".
Définition de format : cette propriété est définie par la notation suivante :

repeat  = "REPEAT" repparam ":" integer CRLF	; par défaut "0", zéro.

repparam = *(";" other-param)

Exemple : Voici un exemple de cette propriété pour une alarme qui se répète 4 fois supplémentaires avec un délai de 5  minutes après le déclenchement initial de l'alarme :
REPEAT:4
DURATION:PT5M

 	3.8.6.3	Déclenchement
Nom de propriété : TRIGGER
Objet : cette propriété spécifie quand une alarme va se déclencher.
Type de valeur : le type de valeur par défaut est DURATION. Le type de valeur peut être réglé au type de valeur DATE-TIME, et dans ce cas, la valeur DOIT spécifier une valeur DATE-TIME en format UTC.
Paramètres de propriété : des paramètres de propriété IANA, non standard, type de données de valeur, identifiant de zone horaire, ou relation de déclenchement peuvent être spécifiées sur cette propriété. Le paramètre de propriété relation de déclenchement DOIT seulement être spécifié quand le type de valeur est "DURATION".
Conformité : cette propriété DOIT être spécifiée dans le composant de calendrier "VALARM".
Description : cette propriété définit quand une alarme va se déclencher. Le type de valeur par défaut est DURATION, qui spécifie un temps relatif pour le déclenchement de l'alarme. La durée par défaut est relative au début d'un événement ou chose à faire à laquelle l'alarme est associée. La durée peut être réglée explicitement à se déclencher à partir de la fin ou du début de l'événement ou chose à faire associé avec le paramètre "RELATED". Une valeur de START va régler l'alarme à se déclencher au début de l'événement ou chose à faire associé. Une valeur de END va régler l'alarme à se déclencher à la fin de l'événement ou chose à faire associé. Une durée positive ou négative peut être spécifiée pour la propriété "TRIGGER". Une alarme avec une durée positive est déclenchée après le début ou la fin de l'événement ou chose à faire associé. Une alarme avec une durée négative est déclenchée avant le début ou la fin de l'événement ou chose à faire associé. Le paramètre de propriété "RELATED" n'est pas valide si le type de valeur de la propriété est réglé à DATE-TIME (c'est-à-dire, pour un déclenchement d'alarme à une date et heure absolues). Si un type de valeur de DATE-TIME est spécifié, alors la valeur de propriété DOIT être spécifiée en format de temps UTC. Si un déclenchement absolu est spécifié sur une alarme pour un événement ou chose à faire récurrent, alors l'alarme va seulement se déclencher pour le DATE-TIME absolu spécifié, avec toutes les instances répétées spécifiées. Si le déclenchement est réglé par rapport à START, alors la propriété "DTSTART" DOIT être présente dans le composant de calendrier "VEVENT" ou "VTODO" associé. Si une alarme est spécifiée pour un événement avec le déclenchement réglé par rapport à END, alors la propriété "DTEND" ou les propriétés "DTSTART" et "DURATION" DOIVENT être présentes dans le composant de calendrier "VEVENT" associé. Si l'alarme est spécifiée pour une chose à faire avec un déclenchement réglé par rapport à END, alors soit la propriété "DUE", soit les propriétés "DTSTART" et "DURATION " DOIVENT être présentes dans le composant de calendrier associé. Les alarmes spécifiées dans un événement ou chose à faire qui sont définis en termes d'un type de valeur DATE vont être déclenchées par rapport au temps 00:00:00 de la zone horaire configurée de l'utilisateur à la date spécifiée, ou par rapport au 00:00:00 UTC à la date spécifiée si aucune zone horaire configurée ne peut être trouvée pour l'utilisateur. Par exemple, si "DTSTART" est une valeur DATE réglée à 19980205, alors le déclenchement de durée va être par rapport à 19980205T000000 America/New_York pour un utilisateur configuré avec la zone horaire America/New_York.

Définition de format : cette propriété est définie par la notation suivante :

trigger = "TRIGGER" (trigrel / trigabs) CRLF

trigrel = *(
; les suivants sont FACULTATIFS, mais NE DOIVENT PAS se produire plus d'une fois. ;
(";" "VALUE" "=" "DURATION") / (";" trigrelparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
) ":" dur-value

trigabs = *(
; le suivant est EXIGÉ, mais NE DOIT PAS se produire plus d'une fois. ;
(";" "VALUE" "=" "DATE-TIME") /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
) ":" date-time

Exemple : un déclenchement réglé à 15 minutes avant le début de l'événement ou chose à faire.
TRIGGER:-PT15M

Un déclenchement réglé cinq minutes après la fin d'un événement ou de la date prévue d'une chose à faire.
TRIGGER;RELATED=END:PT5M

Un déclenchement réglé à une DATE-TIME absolue.
TRIGGER;VALUE=DATE-TIME:19980101T050000Z

 	3.8.7	Propriétés de composant de gestion de changement
Les propriétés suivantes spécifient des informations de gestion de changement dans les composants de calendrier.

 	3.8.7.1	Date-heure de création
Nom de propriété : CREATED
Objet : cette propriété spécifie la date et l'heure à laquelle les informations de calendrier ont été créées par l'agent  d'utilisateur de calendrier dans la mémorisation de calendrier.

Note : ceci est analogue à la date et heure de création d'un fichier dans le système de fichiers.

Type de valeur : DATE-TIME
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée une seule fois dans les composants de calendrier "VEVENT", "VTODO", ou "VJOURNAL". La valeur DOIT être spécifiée comme date avec temps UTC.
Description : cette propriété spécifie la date et l'heure où les informations de calendrier ont été créées par l'agent d'utilisateur de calendrier dans la mémorisation de calendrier.

Définition de format : cette propriété est définie par la notation suivante :

created = "CREATED" creaparam ":" date-time CRLF

creaparam = *(";" other-param)

Exemple : Voici un exemple de cette propriété : CREATED:19960329T133000Z

 	3.8.7.2.	Horodatage
Nom de propriété : DTSTAMP
Objet : dans le cas d'un objet iCalendar qui spécifie une propriété "METHOD", cette propriété spécifie la date et l'heure à laquelle l'instance d'objet iCalendar a été créée. Dans le cas d'un objet iCalendar qui ne spécifie pas de propriété "METHOD", cette propriété spécifie la date et l'heure où les informations associées au composant de calendrier ont été révisées pour la dernière fois dans la mémorisation de calendrier.
Type de valeur : DATE-TIME
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété DOIT être incluse dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL", ou "VFREEBUSY".
Description : la valeur DOIT être spécifiée dans le format de temps UTC. Cette propriété est aussi utile à des protocoles tels que la [RFC6047] qui ont des problèmes de latence inhérents avec la livraison de contenu. Cette propriété va aider au séquençage approprié des messages contenant des objets iCalendar. Dans le cas d'un objet iCalendar qui spécifie une propriété "METHOD", cette propriété diffère des propriétés "CREATED" et "LAST-MODIFIED". Ces deux propriétés sont utilisées pour spécifier quand les données de calendrier particulières dans la mémorisation de calendrier ont été créées et modifiées en dernier. Ceci est différent de quand la représentation de l'objet iCalendar des informations de service de calendrier a été créée ou modifiée en dernier. Dans le cas d'un objet iCalendar qui ne spécifie pas de propriété "METHOD", cette propriété est équivalente à la propriété "LAST-MODIFIED".

Définition de format : cette propriété est définie par la notation suivante :

dtstamp = "DTSTAMP" stmparam ":" date-time CRLF

stmparam = *(";" other-param)

Exemple :  DTSTAMP:19971210T080000Z

 	3.8.7.3	Dernière modification
Nom de propriété : LAST-MODIFIED
Objet : cette propriété spécifie la date et l'heure où les informations associées au composant de calendrier ont été révisées pour la dernière fois dans la mémorisation de calendrier.

Note : ceci est analogue à la date et heure de modification d'un fichier dans le système de fichiers.

Type de valeur :  DATE-TIME
Paramètres de propriété : des paramètres de propriété IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL", ou "VTIMEZONE".
Description : la valeur de propriété DOIT être spécifiée dans le format de temps UTC.
Définition de format : cette propriété est définie par la notation suivante :

last-mod = "LAST-MODIFIED" lstparam ":" date-time CRLF

lstparam = *(";" other-param)

Exemple : Voici un exemple de cette propriété : LAST-MODIFIED:19960817T133000Z

 	3.8.7.4	Numéro de séquence
Nom de propriété : SEQUENCE
Objet : cette propriété définit 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é IANA et non standard peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée dans les composants de calendrier "VEVENT", "VTODO", ou "VJOURNAL".
Description : quand un composant de calendrier est créé, son numéro de séquence est 0. Il est incrémenté de façon monotone par le CUA de l'"Organisateur" chaque fois que l'"Organisateur" fait une révision significative du composant de calendrier. L'"Organisateur" inclut cette propriété dans un objet iCalendar qu'il envoie à un "Participant" pour spécifier la version actuelle du composant de calendrier. Le "Participant" inclut cette propriété dans un objet iCalendar qu'il envoie à l'"Organisateur" pour spécifier la version du composant de calendrier à laquelle se réfère le "Participant". Un changement du numéro de séquence n'est pas le mécanisme qu'utilise un "Organisateur" pour demander une réponse des "Participants". Le paramètre "RSVP" sur la propriété "ATTENDEE" est utilisé par l'"Organisateur" pour indiquer qu'une réponse de la part des "Participants" est exigée. Les instances récurrentes d'un composant récurrent PEUVENT avoir des numéros de séquence diffé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 = *(";" other-param)

Exemple : Voici un exemple de cette propriété pour un composant de calendrier qui vient d'être créé par l'"Organisateur" :

SEQUENCE:0

Voici un exemple de cette propriété pour un composant de calendrier qui a été révisé deux fois différentes par l'"Organisateur" :

SEQUENCE:2

 	3.8.8	Propriétés de composant diverses
Les propriétés suivantes spécifient des informations sur diverses caractéristiques des composants de calendrier.

 	3.8.8.1	Propriétés IANA
Nom de propriété : nom de propriété enregistré par l'IANA.
Type de valeur : le type de valeur par défaut est TEXT. Le type de valeur peut être réglé à tout type de valeur.
Paramètres de propriété : tout paramètre peut être spécifié sur cette propriété.
Description : cette spécification permet que d'autres propriétés enregistrées pa l'IANA soient spécifiées dans tout composant de calendrier. Les applications conformes sont supposées être capables d'analyser ces autres propriétés enregistrées par l'IANA, mais peuvent les ignorer.
Définition de format : cette propriété est définie par la notation suivante :

iana-prop = iana-token *(";" icalparameter) ":" valeur CRLF

Exemple : voici des exemples de propriétés qui pourraient être enregistrées par l'IANA :
DRESSCODE:CASUAL
NON-SMOKING;VALUE=BOOLEAN:TRUE

 	3.8.8.2	Propriétés non Standard
Nom de propriété : tout nom de propriété avec un préfixe "X-".
Objet : cette classe de propriétés donne un cadre pour définir des propriétés non standard.
Type de valeur : le type de valeur par défaut est TEXT. Le type de valeur peut être réglé à tout type de valeur.
Paramètres de propriété : des paramètres de propriété IANA, non standard, et langage peuvent être spécifiés sur cette propriété.
Conformité : cette propriété peut être spécifiée dans tout composant de calendrier.
Description : le type de contenu MIME calendrier et programmation donne un "mécanisme standard pour faire des choses non standard". Ce support d'extension est fourni pour que les mises en œuvre  "poussent l'enveloppe" sur la version existante du présent mémoire. Les propriétés d'extension sont spécifiées par nom de propriété et/ou de paramètre de propriété qui ont le texte de préfixe de "X-" (la séquence de deux caractères : LATIN CAPITAL LETTER X suivie par le caractère TIRET-MOINS). Il est recommandé que les fabricants enchaînent à cette séquence un autre court texte de préfixe pour identifier le fabricant. Cela va faciliter la lisibilité des extensions et minimiser les éventuelles collisions de noms entre différents fabricants. Les agents d'utilisateur qui prennent en charge ce type de contenu sont supposés être capables d'analyser les propriétés d'extension et paramètres de propriété mais peuvent les ignorer. À présent, il n'y a pas d'autorité d'enregistrement des noms de propriétés et paramètres de propriété d'extension. Le type de valeur pour cette propriété est TEXT. Facultativement, le type de valeur peut être tout autre type de valeur valide.

Définition de format : cette propriété est définie par la notation suivante :

x-prop = x-name *(";" icalparameter) ":" valeur CRLF

Exemple : ce qui suit pourrait être l'extension du fabricant ABC pour une forme de clip audio de la propriété sujette :
X-ABC-MMSUBJ;VALUE=URI;FMTTYPE=audio/basic:http://www.exemple.org/mysubj.au

 	3.8.8.3	État de demande
Nom de propriété : REQUEST-STATUS
Objet : cette propriété définit le code d'état retourné pour une demande de programmation.
Type de valeur : TEXT
Paramètres de propriété : des paramètres de propriété IANA, non standard, et langage peuvent être spécifiés sur cette propriété.
Conformité : la propriété peut être spécifiée dans les composants de calendrier "VEVENT", "VTODO", "VJOURNAL", ou "VFREEBUSY".
Description : cette propriété est utilisée pour retourner les informations de code d'état relatives au traitement d'un objet iCalendar associé. Le type de valeur pour cette propriété est TEXT. La valeur consiste en un court composant d'état de retour, un composant plus long de description d'état de retour, et facultativement un composant de données spécifiques de l'état. Les composants de la valeur sont séparés par le caractère POINT-VIRGULE. L'état de retour court est une paire ou un triplet d'entiers séparés par un caractère POINT. Par exemple, "3.1" ou "3.1.1". Les niveaux successifs d'entiers fournissent une granularité de niveaux successifs de code d'état. Les classes initiales de code d'état de retour sont données ci-après. Les méthodes d'objet iCalendar individuelles définiront les codes d'état de retour spécifiques pour ces classes. De plus, d'autres classes de codes d'état de retour peuvent être définies en utilisant le processus d'enregistrement défini plus loin dans le présent mémoire.

Code d'état de retour court	Description plus longue d'état de retour
1.xx	Succès préliminaire. Cette classe de codes d'état indique que la demande a été initialement traitée mais que l'achèvement est en cours.
2.xx	Succès. Cette classe de code d'état indique que la demande a été achevée avec succès. Cependant, le code d'état exact peut indiquer qu'une position de repli a été effectuée.
3.xx	Erreur du client. Cette classe de code d'état indique que la demande n'a pas réussi. L'erreur est le résultat d'une erreur de syntaxe ou de sémantique dans la demande formatée par le client. La demande ne devrait pas être réessayée tant que la condition dans la demande n'est pas corrigée.
4.xx	Erreur de programmation. Cette classe de code d'état indique que la demande n'a pas réussi. Une certaine sorte d'erreur s'est produite dans le service de calendrier et de programmation, non directement en rapport avec la demande elle-même.

Définition de format : cette propriété est définie par la notation suivante :

rstatus = "REQUEST-STATUS" rstatparam ":" statcode ";" statdesc [";" extdata]

rstatparam = *(
; le suivant est FACULTATIF, mais NE DOIT PAS se produire plus d'une fois. ;
(";" languageparam) /
; le suivant est FACULTATIF, et PEUT se produire plus d'une fois. ;
(";" other-param)
;
)

statcode = 1*DIGIT 1*2("." 1*DIGIT)	; code d'état de retour hiérarchique, numérique

statdesc = text	; description d'état textuelle

extdata  = text
; données d'exception textuelles. Par exemple, la propriété en cause ; nom et valeur ou ligne complète de propriété.

Exemple : voici des exemples possibles de cette propriété.

Les caractères de séparation VIRGULE et POINT-VIRGULE dans la valeur de propriété sont échappés avec le caractère BARRE OBLIQUE INVERSE parce qu'ils apparaissent dans une valeur de texte.

REQUEST-STATUS:2.0	; Succès

REQUEST-STATUS:3.1	; valeur de propriété invalide ; DTSTART:96-Apr-01

REQUEST-STATUS:2.8	; Succès\, événement répété ignoré. Programmé comme un seul événement. ; RRULE:FREQ=WEEKLY\;INTERVAL=2

REQUEST-STATUS:4.1	; conflit d'événement. La date-heure est occupée.

REQUEST-STATUS:3.7	; utilisateur de calendrier invalide ; ATTENDEE:mailto:jsmith@exemple.com

 	4.	Exemples d'objets iCalendar

Les exemples suivants sont fournis comme source d'information d'objets iCalendar d'illustration cohérents avec ce type de contenu.

L'exemple suivant spécifie une conférence de trois jours qui commence à 14:30 UTC, le 18 septembre 1996 et se termine à 20:00 UTC, le 20 septembre 1996.

BEGIN:VCALENDAR
PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN
VERSION:2.0
BEGIN:VEVENT
DTSTAMP:19960704T120000Z
UID:uid1@exemple.com
ORGANIZER:mailto:jsmith@exemple.com
DTSTART:19960918T143000Z
DTEND:19960920T220000Z
STATUS:CONFIRMED
CATEGORIES:CONFERENCE
SUMMARY:Networld+Interop Conference
DESCRIPTION:Networld+Interop Conference
 et Exhibit\nAtlanta World Congress Center\n
 Atlanta\, Georgia
END:VEVENT
END:VCALENDAR

L'exemple suivant spécifie une réunion de groupe programmée qui commence à 8:30 AM EST le 12 mars 1998 et se termine à 9:30 AM EST le 12 mars 1998. L'"Organisateur" a programmé la réunion avec un ou plusieurs utilisateurs de calendrier dans un groupe. Une spécification de zone horaire pour Eastern United States a été spécifiée.

BEGIN:VCALENDAR
PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:STANDARD
DTSTART:19981025T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19990404T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:19980309T231000Z
UID:guid-1.exemple.com
ORGANIZER:mailto:mrbig@exemple.com
ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
  mailto:employee-A@exemple.com
DESCRIPTION:Project XYZ Review Meeting
CATEGORIES:MEETING
CLASS:PUBLIC
CREATED:19980309T130000Z
SUMMARY:XYZ Project Review
DTSTART;TZID=America/New_York:19980312T083000
DTEND;TZID=America/New_York:19980312T093000
LOCATION:1CP Conference Room 4350
END:VEVENT
END:VCALENDAR

Voici un exemple d'un objet iCalendar passé dans un message MIME avec une seule partie de corps consistant en un type de contenu "text/calendar".

TO:jsmith@exemple.com
FROM:jdoe@exemple.com
MIME-VERSION:1.0
MESSAGE-ID:<id3@exemple.com>
CONTENT-TYPE:text/calendar; method="xyz"; composant="VEVENT"
BEGIN:VCALENDAR
METHOD:xyz
VERSION:2.0
PRODID:-//ABC Corporation//NONSGML My Product//EN
BEGIN:VEVENT
DTSTAMP:19970324T120000Z
SEQUENCE:0
UID:uid3@exemple.com
ORGANIZER:mailto:jdoe@exemple.com
ATTENDEE;RSVP=TRUE:mailto:jsmith@exemple.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://exemple.com/pub/conf/bkgrnd.ps
END:VEVENT
END:VCALENDAR

Voici un exemple d'une chose à faire due le 15 avril 1998. Une alarme audio a été spécifiée pour la rappeler à l'utilisateur de calendrier à midi, le jour d'avant où la chose à faire est supposée être achevée et est répété chaque heure, quatre fois supplémentaires. La définition de la chose à faire a été modifiée deux fois depuis sa création initiale.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ABC Corporation//NONSGML My Product//EN
BEGIN:VTODO
DTSTAMP:19980130T134500Z
SEQUENCE:2
UID:uid4@exemple.com
ORGANIZER:mailto:unclesam@exemple.com
ATTENDEE;PARTSTAT=ACCEPTED:mailto:jqpublic@exemple.com
DUE:19980415T000000
STATUS:NEEDS-ACTION
SUMMARY:Submit Income Taxes
BEGIN:VALARM
ACTION:AUDIO
TRIGGER:19980403T120000Z
ATTACH;FMTTYPE=audio/basic:http://exemple.com/pub/audio-files/ssbanner.aud
REPEAT:4
DURATION:PT1H
END:VALARM
END:VTODO
END:VCALENDAR

Voici un exemple d'une entrée de journal :

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ABC Corporation//NONSGML My Product//EN
BEGIN:VJOURNAL
DTSTAMP:19970324T120000Z
UID:uid5@exemple.com
ORGANIZER:mailto:jsmith@exemple.com
STATUS:DRAFT
CLASS:PUBLIC
CATEGORIES: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'informations de temps d'occupation. L'objet iCalendar pourrait être placé dans la ressource de réseau http://www.exemple.com/calendar/busytime/jsmith.ifb.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//RDU Software//NONSGML HandCal//EN
BEGIN:VFREEBUSY
ORGANIZER:mailto:jsmith@exemple.com
DTSTART:19980313T141711Z
DTEND:19980410T141711Z
FREEBUSY:19980314T233000Z/19980315T003000Z
FREEBUSY:19980316T153000Z/19980316T163000Z
FREEBUSY:19980318T030000Z/19980318T040000Z
URL:http://www.exemple.com/calendar/busytime/jsmith.ifb
END:VFREEBUSY
END:VCALENDAR

 	5.	Pratiques recommandées

Ces pratiques recommandées devraient être suivies afin d'assurer un traitement cohérent des cas suivants pour un objet iCalendar.

1.	Les lignes de contenu de plus de 75 octets DEVRAIENT être repliées.

2.	Quand la combinaison des propriétés "RRULE" et "RDATE" dans un composant récurrent produit plusieurs instances avec la même valeur DATE-TIME de début, elles devraient être fusionnées, et considérées comme une seule instance.  Si la propriété "RDATE" est spécifiée comme une valeur de PERIOD, la durée de l'instance de récurrence va être celle spécifiée par la propriété "RDATE", et non la durée de l'instance récurrente définie par la propriété "DTSTART".

3.	 Quand un utilisateur de calendrier reçoit plusieurs demandes pour le même composant de calendrier (par exemple, REQUEST pour un composant de calendrier "VEVENT") résultant de sa présence sur plusieurs listes de diffusion spécifiées par des propriétés "ATTENDEE" dans la demande, il DEVRAIT répondre seulement à une des demandes. L'utilisateur de calendrier DEVRAIT aussi spécifier (en utilisant le paramètre "MEMBER" de la propriété "ATTENDEE") de quelles listes de diffusion il est membre.

4.	Une mise en œuvre peut tronquer une valeur de propriété "SUMMARY" à 255 octets, mais elle NE DOIT PAS tronquer la valeur au milieu d'une séquence UTF-8 multi-octets.

5.	Si les secondes de la minute ne sont pas prises en charge par une mise en œuvre, une valeur de "00" DEVRAIT alors être spécifiée pour le composant secondes d'une valeur de temps.

6.	Les valeurs "TZURL" NE DEVRAIENT PAS être spécifiées comme un type d'URI de fichier. Cette forme d'URI peut être utile au sein d'une organisation, mais est problématique dans l'Internet.

7.	Certaines valeurs possibles en anglais pour la propriété "CATEGORIES" incluent : "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 spécifiées dans tout langage enregistré.

8.	Certaines valeurs possibles en anglais pour la propriété "RESOURCES" incluent : "CATERING", "CHAIRS", "COMPUTER PROJECTOR", "EASEL", "OVERHEAD PROJECTOR", "SPEAKER PHONE", "TABLE", "TV", "VCR", "VIDEO PHONE", "VEHICLE". Les ressources peuvent être spécifiées dans tout langage enregistré.

 	6.	Considérations d'internationalisation

Les applications DOIVENT générer des flux iCalendar dans le jeu de caractères UTF-8 et DOIVENT accepter un flux iCalendar dans le jeu de caractères UTF-8 ou US-ASCII.

 	7.	Considérations sur la sécurité

Parce que les informations de calendrier et programmation sont très sensibles à la confidentialité, le protocole utilisé pour la transmission des informations de calendrier et programmation devrait avoir des capacités de protection des informations contre de possibles menaces, comme l'espionnage, la répétition, l'insertion, suppression, modification de message, et les attaques par interposition.

Comme le présent document définit seulement le format de données et le type de supports de text/calendar qui est indépendant de tout service ou protocole de calendrier, il appartient aux spécifications réelles de protocole telles que iTIP [RFC5546], iMIP [RFC6047], et "Extensions de calendrier à WebDAV (CalDAV)" [RFC4791] de décrire les menaces présentées par ces attaques, ainsi que les moyens de les atténuer.

 	8.	Considérations relatives à l'IANA
 	8.1	Enregistrement de type de support iCalendar
La spécification d'objet cœur de calendrier et programmation est destinée à être utilisée comme type de contenu MIME.

Pour : ietf-types@iana.org
Sujet : enregistrement du type de supports text/calendar
Nom de type : text
Nom de sous type : calendar
Paramètres exigés : aucun
Paramètres facultatifs :  charset, method, composant, et optinfo.
-	Le paramètre "charset" est défini dans la [RFC2046] pour les sous types du type de supports "text". Il est utilisé pour indiquer le jeu de caractères utilisé dans la partie de corps. Le jeu de caractères pris en charge par cette révision de iCalendar est UTF-8. L'utilisation de tout autre jeu de caractères est déconseillée par cette révision de iCalendar ; cependant, noter que cette révision exige que les applications conformes DOIVENT accepter les flux iCalendar qui utilisent le jeu de caractère UTF-8 ou US-ASCII.
-	Le paramètre "method" est utilisé pour porter la méthode d'objet iCalendar ou la sémantique de transaction pour les informations de calendrier et programmation. Il est aussi un identifiant pour l'ensemble restreint de propriétés et valeurs constituant l'objet iCalendar. Le paramètre est à utiliser comme guide pour les applications qui interprètent les informations contenues dans la partie de corps. Il NE DEVRAIT PAS être utilisé pour exclure ou exiger des éléments particuliers d'informations sauf si la définition de la méthode identifiée invite spécifiquement à ce comportement. Sauf spécifiquement interdit par une définition de méthode particulière, un type de contenu text/calendar peut contenir tout ensemble de propriétés permis par la spécification d'objet cœur de calendrier et programmation. Le paramètre "method" DOIT être spécifié et DOIT être réglé à la même valeur que la propriété de composant "METHOD" des objets iCalendar du flux iCalendar si et seulement si les objets iCalendar dans le flux iCalendar ont tous une propriété de composant "METHOD" réglée à la même valeur.

La valeur pour le paramètre "method" est définie comme suit :
method = 1*(ALPHA / DIGIT / "-")	; méthode d'objet iCalendar enregistrée par l'IANA

-	Le paramètre "component" porte le type de composant de calendrier iCalendar dans sa partie de corps. Si l'objet iCalendar contient plus d'un type de composant de calendrier, alors plusieurs paramètres de composant DOIVENT être spécifiés. La valeur pour le paramètre "component" est définie comme suit :

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

-	Le paramètre "optinfo" porte des informations facultatives sur l'objet iCalendar dans la partie de corps. Ce paramètre peut seulement spécifier la sémantique déjà spécifiée par l'objet iCalendar et qui peut être autrement déterminée en analysant la partie de corps. De plus, les informations facultatives spécifiées par ce paramètre DOIVENT être cohérentes avec les informations spécifiées par l'objet iCalendar. Par exemple, il peut être utilisé pour porter la réponse d'état du "Participant" à une demande de réunion. La valeur du paramètre consiste en une valeur de chaîne. Le paramètre peut être spécifié plusieurs fois. La valeur pour le paramètre "optinfo" est définie comme suit :

optinfo = infovalue / qinfovalue
infovalue = iana-token / x-name
qinfovalue = DQUOTE (infovalue) DQUOTE

Considérations de codage : ce type de supports peut contenir des caractères en 8bit, de sorte que l'utilisation de codages de transfert de contenu MIME de quoted-printable ou base64 pourrait être nécessaire quand des objets iCalendar sont transférés à travers des protocoles qui sont restreints au répertoire 7bit. Noter qu'une propriété de valeur texte dans l'entité de contenu peut aussi avoir un codage de contenu de caractères spéciaux utilisant une technique d'échappement de caractère BARRE OBLIQUE INVERSE. Cela signifie que les valeurs de contenu peuvent finir par être codées deux fois.

Considérations de sécurité : voir la Section 7.

Considérations d'interopérabilité : ce type de supports est destiné à définir un format commun pour porter les informations de calendrier et programmation entre des systèmes différents. Il est largement fondé sur la spécification antérieure de l'industrie [VCAL].

Spécification pubiée : cette specification.

Applications qui utilisent ce type de supports : ce type de supports est destiné à une large utilisation dans les applications Internet de calendrier et programmation. De plus, les applications dans les domaines du flux de travail et de gestion de document peuvent trouver ce type de contenu applicable. Les protocoles iTIP [RFC5546], iMIP [RFC6047], et CalDAV [RFC4791] de l'Internet utilisent directement aussi ce type de supports.

Informations supplémentaires
Numéro magique :  aucun.
Extensions de fichier : l'extension de fichier "ics" est à utiliser pour désigner un fichier contenant (un ensemble arbitraire) des informations de calendrier et programmation cohérentes avec ce type de contenu MIME. L'extension de fichier de "ifb" est à utiliser pour désigner un fichier contenant des informations de temps libre ou occupé cohérentes avec ce type de contenu MIME.
Code de type de fichier MacIntosh : le code de type de fichier "iCal" est à utiliser dans les environnements de système d'exploitation Apple MacIntosh pour désigner un fichier contenant des informations de calendrier et programmation cohérentes avec ce type de supports MIME. Le code de type de fichier "iFBf" est à utiliser dans les environnements de système d'exploitation Apple MacIntosh pour désigner un fichier contenant des informations de temps libre ou occupé cohérentes avec ce type de supports MIME.

Adresse & mèl de la personne à contacter pour plus d'informations : voir la section "Adresse des auteurs" de ce document.

Usage prévu : COMMUN

Restrictions d'usage : il n'y a pas de restriction sur où ce type de supports peut être utilisé.

Auteur :voir la section "Adresse des auteurs" de ce document.

Contrôleur des changements : IETF

 	8.2.	Enregistrement de nouveaux éléments iCalendar
Ce paragraphe définit le processus pour enregistrer des éléments iCalendar nouveaux ou modifiés, c'est-à-dire, composants, propriétés, paramètres, types de données de valeur, et valeurs, auprès de l'IANA.

 	8.2.1	Procédure d'enregistrement des éléments iCalendar
L'IETF va créer une liste de diffusion, icalendar@ietf.org, qui peut être utilisée pour la discussion publique des propositions d'éléments iCalendar avant leur enregistrement. L'utilisation de cette liste de diffusion est fortement encouragée. L'IESG appointera un expert désigné qui surveillera la liste de diffusion icalendar@ietf.org et reverra les enregistrements.

L'enregistrement de nouveaux éléments iCalendar DOIT être revu par l'expert désigné et être publié dans une RFC. Une RFC sur la voie de la normalisation est EXIGÉE pour l'enregistrement de nouveaux types de données de valeur qui modifient les propriétés existantes, ainsi que pour l'enregistrement des valeurs d'état de participation à utiliser dans les composants de calendrier "VEVENT". Une RFC sur la voie de la normalisation est aussi EXIGÉE pour l'enregistrement des éléments iCalendar qui modifient des éléments iCalendar précédemment documentés dans une RFC sur la voie de la normalisation.

La procédure d'enregistrement commence quand un gabarit d'enregistrement complété, défini au paragraphe suivant, est envoyé à icalendar@ietf.org et iana@iana.org. L'expert désigné est supposé dire dans les quinze jours à l'IANA et à celui qui soumet l'enregistrement si celui-ci est approuvé, approuvé avec des changements mineurs, ou rejeté avec la cause du rejet. Quand un enregistrement est rejeté avec sa cause, il peut être soumis à nouveau si les problèmes mentionnés dans la cause sont réglés. Il peut être fait appel des décisions prises par l'expert désigné auprès du directeur de la zone Applications de l'IESG, puis à l'IESG. Cela suit la procédure d'appel normale des décisions de l'IESG.

 	8.2.2	Gabarit d'enregistrement pour les composants
Un composant est défini en complétant le gabarit suivant :

Nom de composant : le nom du composant.
Objet : l'objet du composant. Donne une description brève mais claire.
Définition du format : l'ABNF pour la définition du composant doit être spécifié.
Description : toutes notes particulières sur le composant, comment il est à utiliser, etc.
Exemples : un ou plusieurs exemples d'instances du composant doivent être spécifiés.

 	8.2.3	Gabarit d'enregistrement pour les propriétés
Une propriété est définie en complétant le gabarit suivant :

Nom de propriété : le nom de la propriété.
Objet : l'objet de la propriété. Donne une description brève mais claire.
Type de  valeur : tous les types de valeur valides pour la valeur de propriété doivent être spécifiés. Le type de valeur par défaut doit aussi être spécifié.
Paramètres de propriété :  tous les paramètres de propriété valides pour la propriété DOIVENT être spécifiés.
Conformité : les composants de calendrier dans lesquels la propriété peut apparaître DOIVENT être spécifiés.
Description : toutes les notes particulières sur la propriété, comment elle est utilisée, etc.
Définition du format : l'ABNF pour la définition de la propriété doit être spécifié.
Exemples : un ou plusieurs exemples d'instances de la propriété doivent être spécifiés.

 	8.2.4	Gabarit d'enregistrement pour les paramètres
Un paramètre est défini en complétant le gabarit suivant :

Nom du paramètre : le nom du paramètre.
Objet : l'objet du paramètre. Donne une description brève mais claire.
Définition du format : L'ABNF de la définition de paramètre doit être spécifié.
Description : toutes les notes particulières sur le paramètre, comment il est utilisé, etc.
Exemples : un ou plusieurs exemples d'instances du paramètre doivent être spécifiés.

 	8.2.5	Gabarit d'enregistrement pour les types de données de valeur
Un type de données de valeur est défini en complétant le gabarit suivant :

Nom de valeur : le nom du type de valeur.
Objet : l'objet du type de valeur. Donne une description brève mais claire.
Définition du format : L'ABNF de la définition du type de valeur doit être spécifié.
Description : toutes les notes particulières sur le type de valeur, comment il est utilisé, etc.
Exemples : un ou plusieurs exemples d'instances du type de valeur doivent être spécifiés.

 	8.2.6	Gabarit d'enregistrement pour les valeurs
Une valeur est définie en complétant le gabarit suivant :

Valeur : le littéral de la valeur.
Objet : l'objet de la valeur. Donne une description brève mais claire.
Conformité : les propriétés et/ou paramètres de calendrier que peut prendre cette valeur doivent être spécifiés.
Exemples : un ou plusieurs exemples d'instances de la valeur doivent être spécifiés.

Voici un exemple fictif d'un enregistrement d'une valeur iCalendar :

Valeur : TOP-SECRET
Objet : cette valeur est utilisée pour spécifier la classe d'accès de composants de calendrier très secrets.
Conformité : cette valeur peut être utilisée avec la propriété "CLASS".
Exemples : voici un exemple de cette valeur utilisée avec la propriété "CLASS" : CLASS:TOP-SECRET

 	8.3	Registres initiaux d'éléments iCalendar
L'IANA a créé et tient les registres suivants pour les éléments iCalendar avec des pointeurs sur les documents de référence appropriés.

 	8.3.1	Registre des composants
Le tableau suivant a été utilisé pour initialiser le registre des composants.

Composant	Statut	Référence
VCALENDAR	Courant	RFC 5545, paragraphe 3.4
VEVENT	Courant	RFC 5545, paragraphe 3.6.1
VTODO	Courant	RFC 5545, paragraphe 3.6.2
VJOURNAL	Courant	RFC 5545, paragraphe 3.6.3
VFREEBUSY	Courant	RFC 5545, paragraphe 3.6.4
VTIMEZONE	Courant	RFC 5545, paragraphe 3.6.5
VALARM	Courant	RFC 5545, paragraphe 3.6.6
STANDARD	Courant	RFC 5545, paragraphe 3.6.5
DAYLIGHT	Courant	RFC 5545, paragraphe 3.6.5

 	8.3.2	Registre des propriétés
Le tableau suivant est utilisé pour initialiser le registre des propriétés.

Propriété	Statut 	Référence
CALSCALE	Courant	RFC 5545, paragraphe 3.7.1
METHOD	Courant	RFC 5545, paragraphe 3.7.2
PRODID	Courant	RFC 5545, paragraphe 3.7.3
VERSION	Courant	RFC 5545, paragraphe 3.7.4
ATTACH	Courant	RFC 5545, paragraphe 3.8.1.1
CATEGORIES 	Courant	RFC 5545, paragraphe 3.8.1.2
CLASS	Courant	RFC 5545, paragraphe 3.8.1.3
COMMENT	Courant	RFC 5545, paragraphe 3.8.1.4
DESCRIPTION	Courant	RFC 5545, paragraphe 3.8.1.5
GEO	Courant	RFC 5545, paragraphe 3.8.1.6
LOCATION	Courant	RFC 5545, paragraphe 3.8.1.7
PERCENT-COMPLETE	Courant	RFC 5545, paragraphe 3.8.1.8
PRIORITY	Courant	RFC 5545, paragraphe 3.8.1.9
RESOURCES	Courant	RFC 5545, paragraphe 3.8.1.10
STATUS	Courant	RFC 5545, paragraphe 3.8.1.11
SUMMARY	Courant	RFC 5545, paragraphe 3.8.1.12
COMPLETED	Courant	RFC 5545, paragraphe 3.8.2.1
DTEND	Courant	RFC 5545, paragraphe 3.8.2.2
DUE	Courant	RFC 5545, paragraphe 3.8.2.3
DTSTART	Courant	RFC 5545, paragraphe 3.8.2.4
DURATION	Courant	RFC 5545, paragraphe 3.8.2.5
FREEBUSY	Courant	RFC 5545, paragraphe 3.8.2.6
TRANSP	Courant	RFC 5545, paragraphe 3.8.2.7
TZID	Courant	RFC 5545, paragraphe 3.8.3.1
TZNAME	Courant	RFC 5545, paragraphe 3.8.3.2
TZOFFSETFROM	Courant	RFC 5545, paragraphe 3.8.3.3
TZOFFSETTO	Courant	RFC 5545, paragraphe 3.8.3.4
TZURL	Courant	RFC 5545, paragraphe 3.8.3.5
ATTENDEE	Courant	RFC 5545, paragraphe 3.8.4.1
CONTACT	Courant	RFC 5545, paragraphe 3.8.4.2
ORGANIZER	Courant	RFC 5545, paragraphe 3.8.4.3
RECURRENCE-ID	Courant	RFC 5545, paragraphe 3.8.4.4
RELATED-TO	Courant	RFC 5545, paragraphe 3.8.4.5
URL	Courant	RFC 5545, paragraphe 3.8.4.6
UID	Courant	RFC 5545, paragraphe 3.8.4.7
EXDATE	Courant	RFC 5545, paragraphe 3.8.5.1
EXRULE	Déconseillé	RFC 2445, paragraphe 4.8.5.2
RDATE	Courant	RFC 5545, paragraphe 3.8.5.2
RRULE	Courant	RFC 5545, paragraphe 3.8.5.3
ACTION	Courant	RFC 5545, paragraphe 3.8.6.1
REPEAT	Courant	RFC 5545, paragraphe 3.8.6.2
TRIGGER	Courant	RFC 5545, paragraphe 3.8.6.3
CREATED	Courant	RFC 5545, paragraphe 3.8.7.1
DTSTAMP	Courant	RFC 5545, paragraphe 3.8.7.2
SEQUENCE	Courant	RFC 5545, paragraphe 3.8.7.4
REQUEST-STATUS 	Courant	RFC 5545, paragraphe 3.8.8.3

 	8.3.3	Registre des paramètres
Le tableau suivant est utilisé pour initialiser le registre des paramètres.

Paramètre	Statut	Référence
ALTREP	Courant	RFC 5545, paragraphe 3.2.1|
CN	Courant	RFC 5545, paragraphe 3.2.2
CUTYPE	Courant	RFC 5545, paragraphe 3.2.3
DELEGATED-FROM	Courant	RFC 5545, paragraphe 3.2.4
DELEGATED-TO	Courant	RFC 5545, paragraphe 3.2.5
DIR	Courant	RFC 5545, paragraphe 3.2.6
ENCODING	Courant	RFC 5545, paragraphe 3.2.7
FMTTYPE	Courant	RFC 5545, paragraphe 3.2.8
FBTYPE	Courant	RFC 5545, paragraphe 3.2.9
LANGUAGE	Courant	RFC 5545, paragraphe 3.2.10
MEMBER	Courant	RFC 5545, paragraphe 3.2.11
PARTSTAT	Courant	RFC 5545, paragraphe 3.2.12
RANGE	Courant	RFC 5545, paragraphe 3.2.13
RELATED	Courant	RFC 5545, paragraphe 3.2.14
RELTYPE	Courant	RFC 5545, paragraphe 3.2.15
ROLE	Courant	RFC 5545, paragraphe 3.2.16
RSVP	Courant	RFC 5545, paragraphe 3.2.17
SENT-BY	Courant	RFC 5545, paragraphe 3.2.18
TZID	Courant	RFC 5545, paragraphe 3.2.19
VALUE	Courant	RFC 5545, paragraphe 3.2.20

 	8.3.4	Registre des types de données de valeur
Le tableau suivant est utilisé pour initialiser le registre des type de données de valeur.

Type de données de valeur	Statut	Référence
BINARY	Courant	RFC 5545, paragraphe 3.3.1
BOOLEAN 	Courant	RFC 5545, paragraphe 3.3.2
CAL-ADDRESS	Courant	RFC 5545, paragraphe 3.3.3
DATE	Courant	RFC 5545, paragraphe 3.3.4
DATE-TIME	Courant	RFC 5545, paragraphe 3.3.5
DURATION	Courant	RFC 5545, paragraphe 3.3.6
FLOAT	Courant	RFC 5545, paragraphe 3.3.7
INTEGER	Courant	RFC 5545, paragraphe 3.3.8
PERIOD	Courant	RFC 5545, paragraphe 3.3.9
RECUR	Courant	RFC 5545, paragraphe 3.3.10
TEXT	Courant	RFC 5545, paragraphe 3.3.11
TIME	Courant	RFC 5545, paragraphe 3.3.12
URI	Courant	RFC 5545, paragraphe 3.3.13
UTC-OFFSET	Courant	RFC 5545, paragraphe 3.3.14

 	8.3.5	Registre des types d'utilisateur de calendrier
Le tableau suivant est utilisé pour initialiser le registre des types d'utilisateur de calendrier.

Type d'utilisateur de calendrier	Statut	Référence
INDIVIDUAL	Courant	RFC 5545, paragraphe 3.2.3
GROUP	Courant	RFC 5545, paragraphe 3.2.3
RESOURCE	Courant	RFC 5545, paragraphe 3.2.3
ROOM	Courant	RFC 5545, paragraphe 3.2.3
UNKNOWN	Courant	RFC 5545, paragraphe 3.2.3

 	8.3.6	Registre des types de temps libre/occupé
Le tableau suivant est utilisé pour initialiser le registre des types de temps libre/occupé.

Type de temps libre/occupé	Statut	Référence
FREE	Courant	RFC 5545, paragraphe 3.2.9
BUSY	Courant	RFC 5545, paragraphe 3.2.9
BUSY-UNAVAILABLE	Courant	RFC 5545, paragraphe 3.2.9
BUSY-TENTATIVE	Courant	RFC 5545, paragraphe 3.2.9

 	8.3.7	Registre des statuts de participation
Le tableau suivant est utilisé pour initialiser le registre des états de participation.

État de participant	Statut	Référence
NEEDS-ACTION	Courant	RFC 5545, paragraphe 3.2.12
ACCEPTED	Courant	RFC 5545, paragraphe 3.2.12
DECLINED	Courant	RFC 5545, paragraphe 3.2.12
TENTATIVE	Courant	RFC 5545, paragraphe 3.2.12
DELEGATED	Courant	RFC 5545, paragraphe 3.2.12
COMPLETED	Courant	RFC 5545, paragraphe 3.2.12
IN-PROCESS	Courant	RFC 5545, paragraphe 3.2.12

 	8.3.8	Registre des types de relations
Le tableau suivant est utilisé pour initialiser le registre des types de relations.

Type de relation	Statut	Référence
CHILD	Courant	RFC 5545, paragraphe 3.2.15
PARENT	Courant	RFC 5545, paragraphe 3.2.15
SIBLING	Courant	RFC 5545, paragraphe 3.2.15

 	8.3.9	Registre des rôles de participation
Le tableau suivant est utilisé pour initialiser le registre des rôles de participation.

Type de rôle	Statut	Référence
CHAIR	Courant	RFC 5545, paragraphe 3.2.16
REQ-PARTICIPANT	Courant	RFC 5545, paragraphe 3.2.16
OPT-PARTICIPANT	Courant	RFC 5545, paragraphe 3.2.16
NON-PARTICIPANT	Courant	RFC 5545, paragraphe 3.2.16

 	8.3.10	Registre des actions
Le tableau suivant est utilisé pour initialiser le registre des actions.

Action	Statut	Référence
AUDIO	Courant	RFC 5545, paragraphe 3.8.6.1
DISPLAY	Courant	RFC 5545, paragraphe 3.8.6.1
EMAIL	Courant	RFC 5545, paragraphe 3.8.6.1
PROCEDURE	Déconseillé	[RFC2445], paragraphe 4.8.6.1

 	8.3.11	Registre des classifications
Le tableau suivant est utilisé pour initialiser le registre des classifications.

Classification	Statut	Référence
PUBLIC	Courant	RFC 5545, paragraphe 3.8.1.3
PRIVATE	Courant	RFC 5545, paragraphe 3.8.1.3
CONFIDENTIAL	Courant	RFC 5545, paragraphe 3.8.1.3

 	8.3.12	Registre des méthodes
Aucune valeur n'est définie dans ce document pour la propriété "METHOD".

 	9.	Remerciements

L'éditeur de ce document souhaite remercier Frank Dawson et Derik Stenerson, auteurs originaux de la RFC 2445, ainsi que les individus suivants qui ont participé au projet, à la relecture et à la discussion du présent mémoire : Joe Abley, Hervey Allen, Steve Allen, Jay Batson, Oliver Block, Stephane Bortzmeyer, Chris Bryant, Tantek Celik, Mark Crispin, Cyrus Daboo, Mike Douglass, Andrew N. Dowden, Lisa Dusseault, Lars Eggert, Gren Eliot, Pasi Eronen, Ben Fortuna, Ned Freed, Neal Gafter, Ted Hardie, Tim Hare, Jeffrey Harris, Helge Hess, Paul B. Hill, Thomas Hnetila, Russ Housley, Leif Johansson, Ciny Joy, Bruce Kahn, Reinhold Kainhofer, Martin Kiff, Patrice Lapierre, Michiel van Leeuwen, Jonathan Lennox, Jeff McCullough, Bill McQuillan, Alexey Melnikov, John W. Noerenberg II, Chuck Norris, Mark Paterson, Simon Pilette, Arnaud Quillaud, Robert Ransdell, Julian F. Reschke, Caleb Richardson, Sam Roberts, Dan Romascanu, Mike Samuel, George Sexton, Nigel Swinson, Clint Talbert, Simon Vaillancourt, Magnus Westerlund, et Sandy Wills.

Des remerciement particuliers pour les présidents du groupe de travail Aki Niemi et Eliot Lear pour leur soutien et leurs conseils.

L'éditeur tient aussi à remercier le Calendaring and Scheduling Consortium pour ses conseils sur la présente spécification, et l'organisation des événements d'essais d'interopérabilité pour aider à l'améliorer.

 	10.	Références
 	10.1	Références normatives

[ISO.8601]	Organisation Internationale de Normalisation, "Éléments de données et formats d'échange – Échanges d'informations -- Représentation des dates et des heures", 2004.

[ISO.9070]	Organisation Internationale de Normalisation, "Technologie de l'information -Facilités de prise en charge de SGML -- Procédures d'enregistrement des identifiants de propriétaire de texte public", seconde édition, avril  1991.

[RFC2045]	N. Freed et N. Borenstein, "Extensions de messagerie Internet multi-objets (MIME) Partie 1 : Format des corps de message Internet", novembre 1996. (D. S., MàJ par 2184, 2231, 5335.)

[RFC2046]	N. Freed et N. Borenstein, "Extensions de messagerie Internet multi-objets (MIME) Partie 2 : Types de support", novembre 1996. (D. S., MàJ par 2646, 3798, 5147, 6657, 8098)

[RFC2119]	S. Bradner, "Mots clés à utiliser dans les RFC pour indiquer les niveaux d'exigence", BCP 14, mars 1997. (MàJ par RFC8174)

[RFC2368]	P. Hoffman, L. Masinter, J. Zawinski, "Le schéma d'URL mailto", juillet 1998. (P.S.) (Obsolète, voir la RFC6068)

[RFC3629]	F. Yergeau, "UTF-8, un format de transformation de la norme ISO 10646", STD 63, novembre 2003.

[RFC3986]	T. Berners-Lee, R. Fielding et L. Masinter, "Identifiant de ressource uniforme (URI) : Syntaxe générique", STD 66, janvier 2005. (P.S.  ; MàJ par RFC8820)

[RFC4288]	N. Freed et J. Klensin, "Spécifications du type de support et procédures d'enregistrement", BCP 13, décembre  2005.

[RFC4648]	S. Josefsson, "Codages de données Base16, Base32 et Base64", octobre 2006. (Remplace RFC3548) (P.S.)

[RFC5234]	D. Crocker, éd., P. Overell, "BNF augmenté pour les spécifications de syntaxe : ABNF", janvier 2008. (STD0068)

[RFC5646]	A. Phillips, M. Davis, "Étiquettes d'identification des langages", BCP0047, septembre 2009. (Remplace RFC4646)

[US-ASCII]	American National Standards Institute, "Coded Character Set - 7-bit American Standard Code for Information Interchange", ANSI X3.4, 1986.

 	10.2	Références pour information

[INCITS.61]	International Committee for Information Technology, "Representation of Geographic Point Locations for Information Interchange", (anciennement ANSI X3.61-1986 (R1997)), ANSI INCITS 61-1986 (R2007).

[RFC1738]	T. Berners-Lee et autres, "Localisateurs uniformes de ressource (URL)", décembre   1994. (P.S., Obsolète, voir les RFC4248 et 4266 ; MàJ par RFC8089)

[RFC2392]	E. Levinson, "Localisateur de ressource uniforme d'identifiant de contenu et d'identifiant de message", août 1998. (P.S.)

[RFC2397]	L. Masinter, "Le schéma d'URL "data"", août 1998. (P.S.)

[RFC2425]	T. Howes, M. Smith, F. Dawson, "Type de contenu MIME pour informations de répertoire", septembre 1998. (Obsolète, voir RFC6350) (P.S.)

[RFC2426]	F. Dawson, T. Howes, "Profil de répertoire MIME vCard", septembre 1998. (P.S., obsolète, voir RFC6350)

[RFC2445]	F. Dawson et D. Stenerson, "Spécification centrale des objets de calendrier et de programmation de l'Internet (iCalendar)", novembre 1998. (P.S., Obsolète, voir RFC5545)

[RFC2616]	R. Fielding et autres, "Protocole de transfert hypertexte -- HTTP/1.1", juin 1999. (D.S., MàJ par 2817, 6585)

[RFC2818]	E. Rescorla, "HTTP sur TLS", mai 2000. (Information)

[RFC4516]	M. Smith, éd. et T. Howes, "Protocole léger d'accès à un répertoire (LDAP) : Localisateur uniforme de ressource", juin  2006.

[RFC4791]	C. Daboo et autres, "Extensions de calendrier à WebDAV (CalDAV)", mars 2007. (P.S., MàJ par 6637, 7809, 7953)

[RFC5546]	C. Daboo, Ed., "Protocole iCalendar d'inter fonctionnement indépendant du transport (iTIP)", décembre 2009. (Remplace RFC2446, MàJ RFC5545) (P. S.) (MàJ par la RFC6637)

[RFC6047]	A. Melnikov, "Protocole d'interopérabilité iCalendar fondée sur le message (iMIP)", décembre 2010. (Remplace RFC2447) (P.S.) 

[TZDB]	Eggert, P. et A.D. Olson, "Sources for Time Zone et Daylight Saving Time Data", juillet 2009, <http://www.twinsun.com/tz/tz-link.htm >.

[VCAL]	Internet Mail Consortium, "vCalendar: The Electronic Calendaring et Scheduling Exchange Format", septembre 1996, <http://www.imc.org/pdi/vcal-10.txt >.

 	Appendice A.	Différences avec la RFC 2445

Cet appendice contient la liste des changements faits à la spécification Internet d'objet de cœur de calendrier et de programmation par rapport à la RFC 2445.

 	A.1	Nouvelles restrictions
1.	La propriété "DTSTART" DEVRAIT être synchronisée avec la règle de récurrence, si elle est spécifiée.

2.  La propriété "RRULE" NE DEVRAIT PAS se produire plus d'une fois dans un composant.

3.  Les parties de règle BYHOUR, BYMINUTE, et BYSECOND NE DOIVENT PAS être spécifiées dans la propriété "RRULE" quand la propriété "DTSTART" est spécifiée comme valeur de DATE.

4.  Le type de valeur des propriétés "DTEND" ou "DUE" DOIT correspondre au type de valeur de la propriété "DTSTART".

5.  La propriété "DURATION" ne peut plus apparaître dans les composants "VFREEBUSY".

 	A.2	Restrictions supprimées
Il n'est plus exigé des propriétés "DTSTART" et "DTEND" qu'elles soient spécifiées comme des dates avec heure locale et  référence de zone horaire quand elles sont utilisées avec une règle de récurrence.

 	A.3	Caractéristiques déconseillées
1.  La propriété "EXRULE" ne peut plus être spécifiée dans un composant.

2.  La valeur "THISANDPRIOR" ne peut plus être utilisée avec le paramètre "RANGE".

3.  La valeur "PROCEDURE" ne peut plus être utilisée avec la propriété "ACTION".

4.  Le type de valeur RECUR ne permet plus que plusieurs valeurs soient spécifiées bpar une liste de valeurs séparées par des VIRGULES.

5. Les parties de règle x-name ne peuvent plus être spécifiées dans les propriétés de type de valeur RECUR (par exemple, "RRULE"). À la place, x-param peut être utilisé sur les propriétés de type de valeur RECUR.

 	Adresse de l'éditeur
Bernard Desruisseaux (éditeur)
Oracle Corporation
600 blvd. de Maisonneuve West
Suite 1900
Montreal, QC  H3A 3J2
CANADA

mél : bernard.desruisseaux@oracle.com 
URI : http://www.oracle.com/