Agenda de type Rendez-vous
Un agenda de type Rendez-vous permet de proposer aux usagers la prise de rendez-vous sur des créneaux définis, en tenant compte de règles de disponibilité, de la durée des rendez-vous et de délais de réservation.
Pour mettre en place une démarche de prise de rendez-vous en ligne, la première étape est de créer un nouvel agenda Link: https://doc-publik.entrouvert.com/admin-fonctionnel/agendas/#1-creer-un-nouvel-agenda , puis de le paramétrer Link: https://doc-publik.entrouvert.com/admin-fonctionnel/agendas/rendez-vous/#comment-parametrer-un-agenda-de-type-rendez-vous et enfin de l'utiliser dans un formulaire et un workflow.
Comment paramétrer un agenda de type Rendez-vous ?
⚙️ Accès dans le backoffice :
Agendas > 👉 un agenda > Paramétrage
Chaque type d'agenda comporte des paramètres communs Link: https://doc-publik.entrouvert.com/admin-fonctionnel/agendas/parametrages-communs/ et des paramètres spécifiques détaillés ci-dessous.
Types de rendez-vous
Les types de rendez-vous permettent de proposer des créneaux de durées différentes en fonction de l’objet du rendez-vous. Ils sont particulièrement utiles lorsque tous les rendez-vous ne nécessitent pas le même temps de traitement.
Chaque type de rendez-vous est défini par :
- un libellé (par exemple : inscription, dépôt, retrait) ;
- une durée, exprimée en minutes (par exemple : 15, 30 ou 45 minutes).

Guichets
Un agenda de type Rendez-vous peut contenir un ou plusieurs guichets. Chaque type de rendez-vous est défini par un libellé (par défaut : Guichet 1).
Les guichets permettent de gérer la capacité d’accueil en parallèle sur un même lieu (avec un unique agenda). Ils sont utilisés pour augmenter le nombre de rendez-vous possibles sur un même créneau, sans multiplier les agendas.
Les types de rendez-vous, les rappels, les délais de réservation ainsi que les permissions sont communs à l’ensemble des guichets d’un même agenda.
Si des règles différentes doivent être appliquées sur ces éléments, il est nécessaire de créer un nouvel agenda.
La création d’un nouveau guichet ne permet pas de différencier ces paramètres.
Lors de la réservation les rendez-vous sont affectés indifféremment à l’un ou l’autre guichet. Dans la vue calendaire, le guichet associé à chaque rendez-vous est visible.
Gestion globale
Par défaut, un agenda est configuré en gestion globale des guichets. Les plages horaires d’ouverture et les exceptions s’appliquent alors à l'ensemble des guichets.
Gestion unitaire
Il est possible de « Basculer en gestion unitaire des guichets » (depuis le menu kebab). Chaque guichet peut alors être configuré indépendamment, avec ses propres plages horaires et ses propres exceptions.

Plages horaires
Pour qu’un agenda de type Rendez-vous puisse proposer des créneaux, il est nécessaire de définir des plages horaires d’ouverture.
Il est possible de définir différents types de plages horaires afin de s’adapter à l’organisation du service.
Plage horaire régulière
LesRendez-vous
Pour configurer un agenda de type « rendez-vous », il faut définir les plages horaires d'ouverture (par exemple, « les lundis de 9 à 17 heures et le mercredi de 14 à 18 heures ») et un ou plusieurs types de rendez-vous ayant chacun une durée définie.
permettent de définir des ouvertures récurrentes dans le temps, par exemple :
- tous les lundis et jeudis de 9h à 12h et de 14h à 17h ;
- le premier lundi de chaque mois de 13h à 16h30 ;
Plage horaire unique
Il est également possible de définir
Exceptions
Les exceptions permettent de définir des périodes pendant lesquelles les plages horaires habituelles ne s’appliquent pas.
Elles servent à rendre indisponibles certains créneaux.
Les exceptions peuvent être définies globalement pour l’agenda ou spécifiquement pour chaque guichet, selon le mode de gestion choisi (globale ou unitaire).
Elles sont généralement utilisées pour :
- les jours fériés ;
- les absences (congés, formation, indisponibilité ponctuelle) ;
- des changements temporaires d’horaires.
Il est possible d’« Ajouter une exception » en renseignant la date et heure de début et de fin ainsi qu'un libellé. Tous les créneaux compris entre ces deux bornes sont automatiquement rendus indisponibles à la réservation.
Il est également possible de gérer les exceptions via des sources d'exceptions (ou calendrier d'exceptions Link: http://doc-publik.entrouvert.com/admin-fonctionnel/agendas/parametrages-communs/calendrier-dexceptions/ ) en cliquant sur l'icône de la clé à molette :
- activation d’une source d’exceptions. Par défaut, la source jours fériés est activée, ce qui permet d’exclure automatiquement les jours fériés des créneaux proposés ;
- import d’un fichier calendrier (.ics) ;
- connexion à une URL de calendrier distant, synchronisée automatiquement (toutes les heures).

Ressources partagées
Une ressource partagée (une voiture, un vidéoprojecteur...) peut être associée à un ou plusieurs agenda(s), l'objectif étant de permettre la réservation de cette ressource pour une période donnée.
Il faut commencer par créer la ressource concernée (depuis la barre latérale de la page d'accueil des agendas) avant de pouvoir l'associer à l'agenda.
Une fois l'association réalisée, les périodes de disponibilités de la ressource peuvent être affichées dans un formulaire en utilisant comme source d'un champ liste une URL du type
/api/agenda/SLUG-DE-LAGENDA/meetings/SLUG-DU-TYPE-DE-RDV/datetimes/?shared-resources=MA-SALLE
Une source de donnée est automatiquement créé en même temps qu'un agenda. Il est possible de la dupliquer pour créer une source de donnée dédiée à une ressource en ajoutant le paramètre ?shared-resources=MA-SALLE.
Il est possible d'afficher les périodes de disponibilités pour plusieurs ressources, en les séparant par des virgules :
?shared-resources=MA-SALLE1,MA-SALLE2
Paramètres d'affichage
Dans l'onglet « Paramètres d'affichage » de l'écran de configuration de l'agenda, il est possible de définir ce que l'on souhaite afficher dans la vue calendaire pour chaque rendez-vous. Cela prend la forme d'un gabarit dans lequel on peut utiliser un certain nombre de variables, par exemple :
- {{ booking.label }} : l'intitulé du rendez-vous
- {{ booking.user_name }} : le nom de l'utilisateur
- {{ booking.extra_data.QUELQUECHOSE }} : une donnée transmise lors de la réservation (lors de l'appel webservice, en passant QUELQUECHOSE dans les données à envoyer dans le corps de la requête
- {{booking.event.desk }} et {{booking.event.desk.slug }} : Le libellé et le slug du guichet sur lequel la réservation a eu lieu
Exposer les types de rendez-vous dans un formulaire
L'agenda va aussi vous permettre de définir un délai minimal et maximal de réservation, des rappels par SMS et/ou courriel, et des permissions en visualisation et en gestion.
Types de Rendez-vous
Les types de rendez-vous peuvent être proposés à l’usager via un champ de type liste dans le formulaire, comprennent un libellé et une durée, c'est tout. Ils vont permettre d'exposer des créneaux différents et adaptés pour des personnes qui viendraient par exemple pour faire un unique passeport ou pour d'autres qui viendrait en faire 4. Lorsque vous avez défini plusieurs type de rendez-vous différents dans un agenda, il peut être utile d'afficher ces types (rendez-vous pour 1 personne, rendez-vous famille...) dans le formulaire pour permettre à l'usager de choisir le type qui l'intéresse.Les types de rendez-vous peuvent être exposés dans un champ liste configuré pour utiliser une source de donnée.
Quelques minutes après la création d’un agenda de type Rendez-vous, d'un agenda rendez-vous, une source de données dédiée devient automatiquement disponible : donnée
« Nom de
l’agenda – Types de rendez-vous ».
Cette source permet d’afficher dynamiquement les types de rendez-vous définis dans l’agenda et de laisser l’usager choisir celui qui correspond à l'objet de sa demande.
Exemple de génération des créneaux
Lorsque vous créez un type de rendez-vous d’une durée de 30 minutes sur une plage horaire allant de 8h00 à 12h00 :
- 8 créneaux sont générés automatiquement ;
- le dernier créneau proposé commence à 11h30 ;
- aucun créneau n’est affiché à 12h00, qui correspond à l’heure de fin de la plage horaire.
Exposer les créneaux horaires dans un formulaire
Vous pouvez donner- Donnez l'identifiant « meeting_type » au champ liste des types de rendez-vous,
- Configurez le champ liste exposant les créneaux pour qu'il utilise comme source de données « Nom de l'agenda - Créneaux du type form_var_meeting_type_raw »
Si vous créez un type de rendez-vous de 30 min sur une plage horaire de 8h00 à 12h00, vous aurez 8 créneaux disponibles, le dernier affiché étant celui de 11h30 (il n'y a pas de créneau disponible à 12h00 qui est l'heure de fermeture).
Guichets
Il est possible de créer plusieurs guichets, permettant ainsi de multiplier le nombre de places disponibles pour un même créneau. Pour créer un nouveau guichet, il suffit de cliquer sur « Nouveau guichet » et de choisir le nom du nouveau guichet.
Les rendez-vous seront pris sur un guichet ou l'autre, indifféremment. Dans la vue calendaire, on verra quel est le guichet concerné par le rendez-vous.
Gestion globale
Par défaut, l'agenda est créé en gestion globale des guichets, cela signifie que la configuration des plages horaires d'ouverture et des exceptions est commune à tous les guichets.
Gestion unitaire
Mais il est possible de basculer en « Gestion unitaire des guichets » dans le menu burger. Chaque guichet peut alors être configuré indépendamment des autres, avec ses propres plages horaires et ses propres exceptions.
Les types de rendez-vous, les rappels, les délais de réservations et les permissions sont communs à tous les guichets. Pour mettre en place quelque chose de différent à ce niveau là, vous avez besoin d'un nouvel agenda et pas d'un nouveau guichet.
Vue calendaire des rendez-vous pris
Les agents ayant le rôle requis, accèdent à la vue calendaire des rendez-vous pris. Cette vue peut être :
quotidienne pour exposer le détail des rendez-vous de la journée,hebdomadaire pour avoir une vue synthétique de la semaine en cours,mensuelle pour avoir une vue plus globale des rendez-vous pris, et voir le détail des rendez-vous au survol de la souris.
Paramétrage
Lorsque l'agenda est créé, un certain nombre de paramètres sont exposés dans des onglets dédiés.
Ressources partagées
Une ressource partagée (une voiture, un vidéoprojecteur...) peut être associée à un ou plusieurs agenda(s), l'objectif étant de permettre la réservation de cette ressource pour une période donnée.
Il faut commencer par créer la ressource concernée (depuis la barre latérale de la page d'accueil des agendas) avant de pouvoir l'associer à l'agenda.
Une fois l'association réalisée, les périodes de disponibilités de la ressource peuvent être affichées dans un formulaire en utilisant comme source d'un champ liste une URL du type
/api/agenda/SLUG-DE-LAGENDA/meetings/SLUG-DU-TYPE-DE-RDV/datetimes/?shared-resources=MA-SALLE
Une source de donnée est automatiquement créé en même temps qu'un agenda. Il est possible de la dupliquer pour créer une source de donnée dédiée à une ressource en ajoutant le paramètre ?shared-resources=MA-SALLE.
Il est possible d'afficher les périodes de disponibilités pour plusieurs ressources, en les séparant par des virgules :
?shared-resources=MA-SALLE1,MA-SALLE2
Paramètres d'affichage
Dans l'onglet « Paramètres d'affichage » de l'écran de configuration de l'agenda, il est possible de définir ce que l'on souhaite afficher dans la vue calendaire pour chaque rendez-vous. Cela prend la forme d'un gabarit dans lequel on peut utiliser un certain nombre de variables, par exemple :
{{ booking.label }} : l'intitulé du rendez-vous{{ booking.user_name }} : le nom de l'utilisateur{{ booking.extra_data.QUELQUECHOSE }} : une donnée transmise lors de la réservation (lors de l'appel webservice, en passant QUELQUECHOSE dans les données à envoyer dans le corps de la requête{{booking.event.desk }} et {{booking.event.desk.slug }} : Le libellé et le slug du guichet sur lequel la réservation a eu lieu
Rappels de réservation
Chaque agenda permet de configurer un rappel (et un seul) pour chaque rendez-vous/évènement, indépendamment de ce qui sera fabriqué dans le workflow. Le rappel est désactivé par défaut.
Les rappels se font par courriel et/ou par SMS (si une plate-forme d'envoi de SMS est raccordée) et ils contiennent par défaut les informations de base telles que le lieu, la date et l’heure. Le texte de base ne peut être modifié. Ce qui peut être configuré :
Le moment du rappel (entre 1 et 5 jours avant)Le canal ou les canaux utilisés (SMS et/ou courriel)Un texte personnalisé qui vient s'ajouter au texte de base (attention à ne pas dépasser 160 caractères pour les SMS).
Pour que ces rappels soient effectifs, l'appel webservice de réservation dans le workflow, doit contenir les paramètres user_email et/ou user_phone_number contenant respectivement le courriel / le numéro de mobile de l'usager, ainsi que l'URL de la demande (classiquement {{ form_url }}).
Les variables utilisées pour l'affichage Link: https://doc-publik.entrouvert.com/admin-fonctionnel/prises-de-rendez-vous/rendez-vous/#affichage-des-rdv sont utilisables pour les rappels.
Si le texte par défaut, non modifiable, ne correspond pas à ce qui est souhaité pour le rappel, il est toujours possible de paramétrer une action SMS ou courriel à la place.
Permissions
La configuration des permissions permet d'associer à l'agenda :
un rôle de visualisation pour l'accès à la vue calendaire des rendez-vous pris Link: https://doc-publik.entrouvert.com/admin-fonctionnel/prises-de-rendez-vous/rendez-vous/#vue-calendaire-des-rdv-pris ,un rôle d'édition pour le paramétrage de l'agenda (périodes horaires, types de rendez-vous, périodes d'exclusion, rappels, délais de réservation...)
Délais de réservation
Par défaut, les agendas sont configurés pour permettre la prise de rendez-vous au plus tard la veille du rendez-vous et jusqu'à 56 jours avant. Mais il est donc possible d'indiquer des valeurs différentes en fonction de vos besoins en définissant un nombre de jours minimal (borne incluse) et un nombre de jours maximal (borne exclue). Il faut entendre ces journées en termes calendaires (de 00h00 à 23h59).
Un délai minimal réglé à 0 permet une réservation le jour mêmeUn délai minimal réglé à 1 interdit les réservations sur le jour même et permet une réservation le lendemain entre 00h00 et 23h59
L’option « Ignorer les délais de réservation lors de la réservation backoffice » désactive le délai minimal de prise de rendez-vous pour les réservations effectuées depuis le backoffice du module de démarches et prolonge le délai maximal de réservation jusqu’à un an.

Exposer les créneaux horaires dans un formulaire
Les créneaux disponibles peuvent être exposés dans un champ liste configuré pour utiliser une source de donnée. Quelques minutes après la création d'un agenda rendez-vous, une source de donnée « Agendas - nom du type de rendez-vous » est en effet disponible pour chaque type de rendez-vous et il suffit de la sélectionner dans la liste des sources de données « Agendas ». Le champ liste configuré en mode « Horaires » présentera alors sous forme calendaire l'ensemble des créneaux disponibles.
L'ancienne méthode, était de sélectionner « URL du JSON » dans la liste des sources de données, et d'indiquer :
{{agendas_url}}api/agenda/AGENDA/meetings/TYPE-DE-RDV/datetimes/ Indépendamment du délai de réservation configuré au niveau de l'agenda, on peut choisir de n'afficher les créneaux qu'à partir d'une certaine date. Le champ « Date d'alignement » disponible quand on sélectionne le mode d'affichage « Horaires » pour la liste, accepte une date pouvant provenir d'un gabarit.
Dans les « Paramètres supplémentaires » du champ liste, le réglage « Afficher les éléments désactivés » (désactivé par défaut) permet d'afficher pour information, en grisé, les créneaux déjà réservés.
Lorsque l'usager aura choisi un créneau et validé le formulaire, il est nécessaire que le workflow soit correctement configuré pour enregistrer la réservation dans l'agenda.
Changer les horaires : exceptions et calendriers d'indisponibilités
Exceptions
Les agendas définissent, de façon récurrente, les horaires d'ouverture pour une semaine type mais il est possible de définir pour chaque guichet (ou globalement pour l'agenda) des périodes pendant lesquelles les horaires normaux ne s'appliquent pas : les « exceptions ». Il peut y avoir des exceptions parce qu'un jour est férié, parce qu'une personne est absente ou simplement parce que les horaires d'ouverture changent durant une période donnée.
Les exceptions permettent de définir une date/heure de début et une date/heure de fin, les créneaux indiqués sont alors indisponibles entre les bornes indiquées. Dans l'écran d'accueil de l'agenda, il est possible de d'« ajouter une exception » (au niveau des périodes horaires) :
manuellement en saisissant le début et la fin de chaque exception,ou, après avoir cliqué sur l’icône clé, en face de « Exceptions », via un fichier (.ics) qui pourra être ajouté ponctuellement ou importé automatiquement toutes les heures si ce fichier est accessible depuis une URL (nota : seules les exceptions dans les 600 jours à venir sont importées).
Périodes d'indisponibilité
Chaque guichet dispose d'un calendrier d'indisponibilité « Jours fériés » prédéfini, qui peut être désactivé si nécessaire.
Par défaut, les agendas sont créés avec des périodes d'indisponibilité qui correspondent aux jours fériés français. Mais il est possible, depuis la page d'accueil des agendas, d'ajouter d'autres « Calendriers d'indisponibilité » qui seront autant de périodes pendant lesquelles aucune prise de rendez-vous n'est possible.
Une fois que le calendrier d'indisponibilité est créé, il est possible de l'associer à un agenda de type rendez-vous en allant dans la page de paramétrage de ce dernier et en cliquant sur l'icône de la petite clé en face de « Exceptions ». En cas de conflit avec des réservations existantes, un message d'alerte est affiché.
Après configuration, le calendrier d'indisponibilité est exposé dans la liste des exceptions de l'agenda concerné.
Le calendrier d'indisponibilité peut être alimenté par un fichier ICS.
Mettre des couleurs aux rendez-vous
Il est possible d'afficher des couleurs sur les créneaux réservés dans un agenda, ces couleurs sont sélectionnées automatiquement, elles ne sont pas paramétrables. Par défaut, les rendez-vous sont en bleu.

Dans l'appel de réservation, dans le corps de la requête, il faut passer le nouveau paramètre « use_color_for ». Sa valeur doit être une chaîne de caractères et entraînera l'attribution d'une couleur. Si le libellé est inconnu, une couleur de la palette est attribuée, sinon on réutilise la couleur déjà attribuée pour cette chaîne de caractères.

Il y a 8 couleurs en tout, le neuvième libellé reprend la première couleur.

Une légende s'affiche en bas des vues calendriers, elle indique la correspondance entre libellés et couleurs présentes sur la vue courante.

Visualisation des rendez-vous et export .ics
Envoyer le fichier .ics d'un rendez-vous par courriel
Il est possible de joindre à un courriel un fichier .ics d'un rendez-vous. La personne recevant ce courriel dans son logiciel de messagerie n'aura qu'à cliquer sur le fichier .ics pour mettre le rendez-vous dans son agenda. Pour suivre le tutoriel, c'est par là.
Fichier .ics de la liste des rendez-vous
Publik offre une vue sur les agendas directement depuis son backoffice, il suffit d'attribuer les droits de visualisation sur l'agenda concerné aux rôles autorisés. Les personnes autorisées disposeront alors d'une vue calendaire des rendez-vous, vue quotidienne ou mensuelle. C'est la méthode recommandée.
Alternativement, il est possible d'exporter la liste des rendez-vous vers un logiciel d'agenda type Zimbra, Outlook, Thunderbird, etc., à travers une vue « ics » des demandes.
Ces logiciels accéderont à une adresse du type :
{{eservices_url}}api/forms/IDENTIFIANT-DU-FORMULAIRE/ics/IDENTIFIANT-CHAMP-DATE?api-user=IDENTIFIANT-API&api-key=CLÉ-API
L'URL ci-dessus retourne uniquement les demandes en attente. Il est possible d'inclure aussi les demandes traitées en créant une vue personnalisée, ou en ajoutant à l'url un paramètre filter=all
{{eservices_url}}api/forms/IDENTIFIANT-DU-FORMULAIRE/ics/IDENTIFIANT-CHAMP-DATE?api-user=IDENTIFIANT-API&api-key=CLÉ-API&filter=all
Il est donc nécessaire de disposer d'une clé et d'un identifiant API pour construire l'adresse en question. Pour cela, vous devez créer un rôle dédié, par exemple « Accès API » (qui ne contiendra aucun utilisateur).
Puis, dans l'entrée Paramètres du menu latéral, vous pourrez configurer un nouvel accès aux API en indiquant le rôle « Accès API ». Vous avez désormais un identifiant et une clé d'accès.
Mais il faut encore que ce rôle ait accès à la démarche, pour cela il doit être associé à une fonction dans le workflow (tous les rôles associés à une fonction ont alors accès à la démarche concernée). Dans le workflow, il faut ajouter une fonction « Accès ics » (par exemple), et l'associer au rôle « Accès API » (dans le formulaire ou dans le workflow).
Il est possible de remplacer, dans l'URL, l'identifiant du champ date par celui d'un champ texte contenant une date, par exemple une donnée de traitement où le jour et l'heure du rendez-vous seraient stockés.