Les vevents (ou « Évènements ») sont de plusieurs types :
1 – Les RDV :
Les RDV sont obligatoirement associés à un objet de type « Fiche » via l'attribut fiche_id
et à un objet de type « Intervention » via l'attribut intervention_id
.
Important Il ne peuvent pas être répétés !
2 – Les Plages :
Les plages sont de simples évènements texte (ex: "Pause déjeuner").
Important Pour créer une plage, il faut que les attributs intervention_id
et fiche_id
soient à la valeur 0
.
3 – Les Disponibilités Internet :
Les disponibilités sont des plages d'ouverture à Internet, c.à.d que les disponibilités proposées sur l'Interface de prise de RDV par Internet sont basées sur ces plages.
Important L'attribut type
doit valoir VfreebusyEvent
.
4 - Les Notes :
Les Notes sont des évènements ayant lieu un jour particulier mais ne bloquant pas de temps sur les agendas.
Ils doivent posséder l'attribut note
à 1
.
Les attributs start
et end
doivent tous les deux valoir minuit pour le jour de la note (ex: start = end = "2010-01-22 00:00:00"), la durée de la note peut donc être considérée comme nulle.
GET /api/v1/groups/:group_id/veventsNote Puisque la requête ne précise pas un agenda en particulier, les vevents renvoyés pourront appartenir à n'importe quel agenda du groupe d'id
:group_id
.
GET /api/v1/groups/:group_id/vevents?calendar_id=:calendar_id
POST /api/v1/groups/:group_id/vevents
PUT /api/v1/groups/:group_id/vevents/:id
DELETE /api/v1/groups/:group_id/vevents/:id
Important Cette opération ne supprime pas complètement le vevent ! Elle passe l'attribut deleted
à true
. Le vevent peut ainsi être restauré plus tard.
Les vevents liés à une fiche sont nécessairement des RDV :
GET /api/v1/groups/:group_id/vevents?fiche_id=:fiche_id
Ces champs sont communs aux 4 types de Vevents.
Champ | Type | Description |
---|---|---|
calendar_id | integer | (obligatoire) ID de l'objet de type «Calendar» auquel il est lié |
start | datetime | Date et heure de début de l’événement ( ex: 2010-01-22 15:00:00 ). Pour un événement récurrent, il s'agit de la première occurrence. |
end | datetime | Date et heure de la fin de l’événement ( ex: 2010-01-22 15:15:00 ). Pour un événement récurrent, il s'agit de la première occurrence. |
taker | string(255) | Nom / Prénom de la personne ayant crée le Vevent. Soit un professionnel ayant un accès à l'Interface Pro, soit un utilisateur de l'Interface de prise de RDV par Internet. |
colorref | string(7) | Code couleur de l’événement telle que visible sur l'Interface Pro, au format hexadécimal #RRGGBB (exemple: #FF6600) |
text | text | Texte de l’événement. Dans le cas d’un RDV, le texte contiendra les noms et prénoms de l'objet de type « Fiche » lié. |
deleted | boolean | Indique si un Vevent est supprimé (0 par défaut) |
Champ | Type | Description |
---|---|---|
intervention_id | integer | ID de l'objet de type «Intervention» auquel il est lié |
fiche_id | integer | ID de l'objet de type «Fiche» auquel il est lié |
state | integer | Indique le statut du RDV, parmi les valeurs suivantes :
|
mailtime | datetime | Date et Heure à laquelle l’email de rappel doit être envoyé. |
smstime | datetime | Date et Heure à laquelle le SMS de rappel doit être envoyé Important Le SMS ne sera envoyé que si l'attribut « smsreminder » du même Vevent est égal à 1 , et si le Groupe concerné par ce Vevent est paramétré pour l'envoi de SMS (smsreminder != 0). |
smsreminder | boolean | Envoyer un SMS de rappel pour ce RDV (0 par défaut) |
from_web | boolean | Indique si le RDV à été noté depuis l'Interface de prise de RDV par Internet. (0 par défaut) |
comments | text | Commentaire lié au RDV |
Voir page : Customfields API
Champ | Type | Description |
---|---|---|
availableInterventions | text | Liste des ID des objets de type « intervention » séparés par des virgules. Ces Interventions seront disponibles à la prise de RDV par Internet, les autres n'apparaitront pas sur l'Interface de prise de RDV Internet pour ce Vevent spécifiquement. Si cette liste est vide (NULL ou chaîne de caractère vide), toutes les interventions seront proposées (exemple : ",23,343,") (NULL par défaut). |
type | string(20) | Important Doit valoir « VfreebusyEvent » dans ce cas uniquement, sinon il doit être vide (Vide par défaut) |
Champ | Type | Description |
---|---|---|
note | boolean | Indique si cet événement est une note journée. Important start et end doivent tous les deux valoir minuit pour le jour de la note (ex: start : 2010-01-22 00:00:00) (0 par défaut) |
Important Les Vevent de type « RDV » ne peuvent pas être répétés !
Les Vevents de type « Plage », « Disponibilité Internet », et « Note », peuvent être répétés pour plus de commodité, par exemple pour éviter de devoir noter tous les jours une plage horaire symbolisant l'heure de la pause déjeuner.
Une règle de répétition est paramétrée à l'aide de l'attributrrule
, dont le fonctionnement est défini par le champ RRULE du standard iCalendar. Nous ne gérons néanmoins pas tous les motifs de répétition du standard (seulement les répétitions quotidiennes, hebdomadaires, mensuelles et annuelles).
Les exceptions à la règle de répétition sont définies par l'attribut repeat_exceptions
.
Important Les champs repeat_freq
, repeat_intervall
, repeat_count
et repeat_byday
sont obsolètes et ne doivent plus être utilisés (voir Annexe ancien format de répétition).
Champ | Type | Description |
---|---|---|
rrule | text | Définit le motif de répétition (fréquence, durée, etc.), à partir d'une ou plusieurs clés et valeurs dans la liste suivante :
= et chaque paire clé/valeur est séparée des autres par un point-virgule ; (ex: FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH).Voir exemples de répétitions. |
repeat_exceptions | text | Liste de dates séparées par des virgules, au format YYYY-mm-dd 00:00:00 , qui seront exclues du motif de répétition. L'événement ne sera donc pas répété ces jours-ci.(ex : "2016-03-22 00:00:00,2016-03-23 00:00:00") |
repeat_until | datetime | Date de fin de répétition (convertie dans le fuseau horaire du groupe) Important le champ repeat_until est disponible en lecture seule, il est automatiquement calculé à partir de la valeur de la clé UNTIL dans le champ rrule , si présente. |
1 Répétition tous les 2 jours, sans limite
rrule = "FREQ=DAILY;INTERVAL=2"
On choisit :
FREQ
, ici "DAILY" (= répétition quotidienne)INTERVAL
, ici 2 (= tous les 2 jours)2 Répétition toutes les semaines, les lundi et mercredi, 5 fois
rrule = "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE;COUNT=5"
Dans cet exemple, si on suppose de plus que start = "2016-01-18 10:00:00"
(début d'événement le lundi 18 janvier 2016 à 10h), l'événement sera également répété à 10h les mercredi 20 janvier 2016, lundi 25 janvier 2016, mercredi 27 janvier 2016 et lundi 1er février 2016 (on a bien 5 occurrences en tout en comptant l'événement d'origine).
On choisit :
FREQ
, ici "WEEKLY"INTERVAL
, ici 1 (= toutes les semaines)BYDAY
(valeurs possibles du lundi au dimanche : "MO", "TU", "WE", "TH", "FR", "SA", "SU"). Il est également possible de répéter plusieurs jours de la semaine, en les séparant par des virgules (ex : BYDAY=MO,WE pour une répétition les lundi et mercredi).COUNT
(entier >= 2)3 Répétition tous les 3 mois, le 10 du mois, jusqu'au 10 février 2017 (inclus)
On suppose ici que start = "2016-02-10 16:00:00"
et end = "2016-02-10 18:00:00"
, et de plus que le groupe a un fuseau horaire configuré sur timezone = "Paris"
.
Alors, rrule
s'écrit :
rrule = "FREQ=MONTHLY;INTERVAL=3;UNTIL=20170201T170000Z"
Dans cet exemple, l'événement du 10 février 2016 sera ainsi répété les 10 mai 2016, 10 août 2016, 10 novembre 2016, et 10 février 2017.
On choisit :
FREQ
, ici "MONTHLY"INTERVAL
, ici 3 (= tous les 3 mois)UNTIL
, qui est au format YYYYmmddTHHMMSSZ
, dans la timezone UTC. Ici nous avons "20170210T170000Z" qui doit se lire : année 2017, mois 02 (= février), jour 10 (= 10ème jour du mois), à 17h (dans le fuseau UTC). En effet, l'heure de fin du dernier événement répété étant 18h dans le fuseau horaire "Paris" (GMT+1 en heure d'hiver), cela correspond à 17h dans le fuseau UTC. Ainsi nous indiquons bien que le motif de répétition prend fin le 10 février 2017 à 18h dans le fuseau horaire "Paris", après la dernière répétition de l'événement ayant eu lieu ce jour.
Important Dans ce mode, le Vevent doit commencer à une date antérieure à la valeur de UNTIL
.
Important Les clés COUNT
et UNTIL
sont exclusives, on ne peut utiliser qu'une seule de ces clés à la fois.
4 Répétition le 2ème mardi de chaque mois
rrule = "FREQ=MONTHLY;INTERVAL=1;BYDAY=2TU"
Si, de plus, on suppose que l'événement commence le mardi 9 février 2016 à 9h30 (start = "2016-02-09 09:30:00"
), alors l'événement sera répété à 9h30 les mardi 8 mars 2016, mardi 12 avril 2016, mardi 10 mai 2016, etc.
On choisit :
FREQ
, ici "MONTHLY"INTERVAL
, ici 1 (= tous les mois)BYDAY
, ici "2TU" qui doit se lire "2ème mardi du mois". De même, "1MO" siginifie "premier lundi du mois", "3WE" siginifie "troisième mercredi du mois", et "-1FR" signifie "dernier vendredi du mois".5 Répétition annuelle le 21 juin, sauf le 21 juin 2018
rrule = "FREQ=YEARLY;INTERVAL=1" repeat_exceptions = "2018-06-21 00:00:00"
Si, de plus, on suppose que l'événement commence le mardi 21 juin 2016 à 19h (start = "2016-06-21 19:00:00"
), alors l'événement sera répété à 19h les 21 juin 2017, 21 juin 2019, 21 juin 2020, etc.
On choisit :
FREQ
, ici "YEARLY"INTERVAL
, ici 1 (= tous les ans)On présice :
repeat_exceptions
, au format YYYY-mm-dd 00:00:00
repeat_exceptions
, il faut séparer les valeurs par des virgules, par exemple : repeat_exceptions = "2018-06-21 00:00:00,2019-06-21 00:00:00"
Important Les champs repeat_freq
, repeat_intervall
, repeat_count
et repeat_byday
décris ci-dessous sont obsolètes et ne doivent plus être utilisés.
Par exemple, la répétition suivante dans l'ancien format :
start = "2016-02-01 08:00:00" end = "2016-02-01 09:00:00" repeat_freq = "weekly" repeat_intervall = 2 repeat_until = "2016-06-01 09:00:00" repeat_byday = 62
devra désormais être envoyée au nouveau format :
start = "2016-02-01 08:00:00" end = "2016-02-01 09:00:00" rrule = "FREQ=WEEKLY;INTERVAL=2;BYDAY=MO,TU,WE,TH,FR;UNTIL=20160601T070000Z"
repeat_byday
dans le nouveau format BYDAY
?
Il faut interpréter repeat_byday
comme un nombre binaire et relever les jours de la semaine qui correspondent à la valeur 1
. Par exemple, la valeur repeat_byday = 62
se lit en binaire 0111110
:
SA | FR | TH | WE | TU | MO | SU |
---|---|---|---|---|---|---|
Samedi | Vendredi | Jeudi | Mercredi | Mardi | Lundi | Dimanche |
0 | 1 | 1 | 1 | 1 | 1 | 0 |
On relève alors dans le tableau (de droite à gauche), les jours suivants : BYDAY=MO,TU,WE,TH,FR
.