Des questions ? +33 (0)1 83 62 04 04
Du lundi au vendredi 9h - 19h
Connexion Pro
   utilisateurs
 RDV déjà pris
Imprimer

Vevent API

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").

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 calendriers.

  • 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 : 2010-01-22 00:00:00), la durée de la note peut donc être considérée comme nulle.

Liste des vevents sur un calendrier

GET /api/v1/calendars/:calendar_id/vevents?apikey=xxxxxxx

Modification d'un vevent

PUT /api/v1/vevents/:id?apikey=xxxxxxx

Suppression d'un vevent

DELETE /api/v1/vevents/:id?apikey=xxxxxxx

Création d'un vevent

POST /api/v1/vevents?apikey=xxxxxxx

Liste des RDV d'une fiche

Les vevents liés à une fiche sont nécessairement des RDV :

GET /api/v1/fiches/:fiche_id/vevents?apikey=xxxxxxx

Champs standards :

Ces champs sont communs aux 4 types de Vevents

calendar_id
Obligatoire integer - 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 )
end
datetime - Date et heure de la fin de l’événement ( ex: 2010-01-22 15:15:00 )
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)

Champs liés au cas où le Vevent est de type « RDV » :

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 statuts suivants :
  • Venu (valeur : 1)
  • Pas Venu (valeur: 2)
  • En Attente (valeur: 3)
  • Aucun (valeur: 0)

(0 par défaut)

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

Champs liés au cas où le Vevent est de type « Disponibilité Internet » :

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,23,343,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)

Champs liés au cas où le Vevent est de type « Note » :

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)

Répétitions des Vevents :

Les Vevents de type (Plage / Disponibilité Internet / 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.

Important : Les Vevent de type RDV ne peuvent pas être répétés !

Indépendamment du mode de répétition, on doit choisir la fréquence (repeat_freq) et l'intervalle de répétition (repeat_intervall) , par exemple :

  • tous les 2 jours ( repeat_freq = daily ; repeat_intervall = 2 )

  • tous les 3 mois (repeat_freq = monthly ; repeat_intervall = 3)

Important : Les valeurs possibles pour repeat_freq sont : daily / weekly / monthly / yearly

Important : Si repeat_freq = weekly , alors on a accès à l'attribut repeat_byday qui permet de spécifier quels jours de la semaine doivent être pris en compte dans la répétition.

Pour le calcul du repeat_byday, voir Annexe partie 3

Il y a 3 modes de répétitions:

1 - répétition un certain nombre de fois :

Dans ce mode, on choisi combien de fois on veux répéter l' événement, grâce à l'attribut repeat_count .

Par exemple, « Répéter tous les 2 jours, 3 fois» peut se traduire avec les valeurs suivantes :

repeat_freq = daily

repeat_intervall = 2

repeat_count = 3

Important : Dans ce mode, l'attribut repeat_until doit rester vide.

2 – répétition jusqu'à une certaine Date :

Dans ce mode, on choisit une date jusqu'à laquelle on veux répéter l'évènement, grâce à l'attribut repeat_until .

Par exemple, « Répéter tous les 2 jours, du 1er février jusqu'au 23 mars 2010, de 08h00 à 09h00 » peut se traduire avec les valeurs suivantes :

start = 2010-02-01 08:00:00

end = 2010-02-01 09:00:00

repeat_freq = daily

repeat_intervall = 2

repeat_until = 2010-03-23 09:00:00

Important : Dans ce mode, l'attribut repeat_count doit rester vide,.

Important : Dans ce mode, le Vevent doit commencer à une date antérieure au repeat_until, la partie « heures:minutes:secondes » étant commune aux attributs end et repeat_until.

2 – répétition Toujours :

Dans ce mode, l'évènement sera répété pour toujours

Par exemple, « Répéter tous les 2 jours, toujours » peut se traduire avec les valeurs suivantes :

repeat_freq = daily

repeat_intervall = 2

Important : Les attributs repeat_count ET repeat_until doivent rester vide, c'est cela qui fait que le Vevent sera répété pour toujours.

Champs liés aux répétitions :

repeat_freq
string(255) - Définit la fréquence de répétition dans le 1er mode de répétition : Valeurs possibles : daily / weekly / monthly / yearly
repeat_intervall
integer - Entier indiquant la fréquence de répétition
repeat_count
integer - Nombre de répétitions de cet événement (mode répété X fois)
repeat_until
datetime - Date de fin de répétition (mode « répété jusqu'à ») Important : le repeat_until doit avoir les mêmes « heures:minutes:secondes » que l'attribut end du rdv.
repeat_byday
integer - Masque de répétition semaine (uniquement si repeat_freq vaut « weekly » ) voir Annexe
repeat_exceptions
text - Liste des dates exceptions, séparées par des virgules, au format YYYY-MM-DD HH:mm:ss Le Vevent ne sera pas répété pour ces jours là, quel que soit le mode de répétition) (exemple : 2001-03-22 00:00:00,2010-03-23 00:00:00 )

Annexe WeekMask

Comment calculer la valeur de repeat_byday (uniquement lorsque repeat_freq = weekly)

Il faut construire le nombre en binaire grâce au tableau suivant :

Exemple, pour une répétition semaine uniquement les Mercredi, Jeudi et Vendredi :

Samedi Vendredi Jeudi Mercredi Mardi Lundi Dimanche
0 1 1 1 0 0 0

Cela nous donne le nombre binaire suivant : 0111000

Il nous faut le convertir en nombre entier pour l'attribuer à repeat_byday

0111000 nous donne le nombre entier 56

Dans ce cas nous aurons donc repeat_byday = 56

Attributs personnalisés

Les champs personnalisés sont créés via l'interface d'administration (Onglet "Persos" dans l'administration ClicRDV).

Le nom du champ dépend du type de champ personnalisé :

  • Champ booléen (cases à cocher), boolX, X=0..9
  • Champ date dtX, X=0..1
  • Champ nombre numX, X=0..3
  • Champ texte (<255) strX, X=0..9
  • Champ texte long txtX, X=0..2

Si vous n'arrivez pas à reconnaitre la correspondance de nom avec vos champs personnalisés, vous pouvez exécuter la requête suivante pour récupérer les champs personnalisés sur les vevents :

GET /api/v1/groups/:id/customfields?\
      format=json&\
      apikey=xxxxxx&\
      conditions%5B0%5D%5Bfield%5D=model&\
      conditions%5B0%5D%5Bop%5D=%3D&\
      conditions%5B0%5D%5Bvalue%5D=Vevent

L'attribut name retournera pour chaque champ son nom dans l'API. Vous pourrez faire le rapprochement avec l'attribut pro_label.

ClicRDV - agenda partagé par Internet