Export et envoi de fichiers ICS

Export et envoi de fichiers ICS

Deux façons d'utiliser le format ICS avec Publik :

  • Exporter la liste des rendez-vous vers un logiciel d'agenda externe (Zimbra, Outlook, Thunderbird…), ou vers un calendrier d'exceptions Publik.
  • Envoyer une invitation ICS à l'usager pour qu'il l'ajoute à son agenda personnel

Export ICS d'une liste de rendez-vous

Il est possible d'exporter la liste des rendez-vous via une vue ICS des demandes de RDV.

Construire l'URL d'accès

Le logiciel externe accède aux rendez-vous via une URL dont le format est le suivant :

{{eservices_url}}api/forms/IDENTIFIANT-DU-FORMULAIRE/ics/<IDENTIFIANT-CHAMP>?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>?api-user=IDENTIFIANT-API&api-key=CLÉ-API&filter=all

<IDENTIFIANT-CHAMP> est à remplacer par l'identifiant d'un champ texte contenant le jour et l'heure du rendez-vous dans un format ISO : "yyyy-mm-dd hh:mm:ss" ou Français :  "dd/mm/yyyy hh:mm". Concrètement, ce peut être la donnée de traitement "rdv_datetime" (sans le préfixe form_var) dans le worflow de prise de RDV proposé sur le catalogue.
A noter, cela fonctionne également avec un champ de type date si l'horraire des RDV n'est pas important.

Obtenir un identifiant et une clé API

Pour construire l'URL ci-dessus, vous avez besoin d'un identifiant et d'une clé d'accès API.

Envoyer une invitation ics par courriel

Objectif : permettre à un usager d'ajouter automatiquement son rendez-vous à son agenda personnel en lui envoyant un fichier ICS en pièce jointe.

Ce tutoriel utilise des exemples simplifiés : le formulaire et le workflow fournis contiennent le minimum nécessaire pour fonctionner. Les cas avancés (annulation, déplacement de rendez-vous) ne sont pas couverts ici.

Situation de départ

L’usager prend un rendez-vous. Le rendez-vous s’affiche dans l’agenda en back-office. Un courriel est envoyé à l’usager avec les informations du rendez-vous dans le corps du message.

Explications

Dans l’agenda de l’agent, en back-office, le créneau sera réservé avec les informations label et user_name (forme : label – user_name). Le lien sur l’intitulé est généré grâce à backoffice_url.

Modifications Ă  apporter

  1. Le fichier ICS généré est une donnée de traitement, on crée donc une nouvelle donnée de traitement de type fichier :
    • nom : par exemple « Fichier ics »
    • type : fichier
    • identifiant : par exemple « fichierics » ({{ form_var_fichierics }})
  1. On génère l’ics à partir du statut « Enregistrement du rendez-vous ». Pour cela, on ajoute une action « webservice » :
    • Nom : gĂ©nĂ©ration ics

    • url : {{form_workflow_data_reservation_response_api_ics_url}} ; quelques explications :

      • reservation est l’identifiant de l’appel webservice de rĂ©servation du rendez-vous dans l’agenda ; peut varier selon les workflows

      • response est le retour de l’appel au webservice (ce nom est statique et ne change jamais)

      • api_ics_url est le nom de la donnĂ©e gĂ©nĂ©rĂ©e par le webservice ; ce nom ne change jamais

    • MĂ©thode : GET
    • DonnĂ©es Ă  envoyer en paramètres de l'URL :

      • comment : il s’agit d’un commentaire Ă  propos du rendez-vous. Le champ commentaire n’est pas affichĂ© par tous les agendas, n’indiquez rien d’important dans ce champ (utilisez le champ description pour cela).

      • description : c’est la description du rendez-vous. Indiquez par exemple « rendez-vous en mairie pour votre renouvellement de passeport »

      • location : indiquer ici le lieu du rendez-vous (par exemple : Mairie de Fondcomb). Si vous indiquez une adresse prĂ©cise, certains logiciels de messagerie proposent le lien vers une carte.

      • url : lien vers la dĂ©marche par exemple ({{form_url}})

      • tous les paramètres ci-dessus sont facultatifs, mais nous recommandons de renseigner au moins description et location.

    • Type de rĂ©ponse : choisissez « fichier joint »
    • Identifiant : indiquez un identifiant, par exemple : « ics ». Cet identifiant sera utilisĂ© comme nom de fichier (par exemple si l’identifiant est « fichier_ics », le fichier joint se nommera fichier_ics.ics)
    • Enregistrez dans les donnĂ©es de traitement : choisissez la donnĂ©e de traitement nouvellement créée, dans notre exemple « Fichier ics »
  1. Joignez l’ics généré au courriel :

    • allez dans l’action « courriel » dans le statut « rendez-vous rĂ©servé ». Sous le corps du message, « Fichiers attachĂ©s », choisissez la donnĂ©e de traitement concernĂ©e, par exemple « Fichier ics ».

  1. Testez !

    1. Remplissez la démarche avec une adresse courriel existante

    2. le courriel reçu contient l’invitation :

      invitation ics

    3. affichage du rendez-vous dans l’agenda :

      affichage du rendez-vous dans l'agenda

Le titre du rendez-vous (title, ou summary) reprend par défaut la valeur du champ « label » paramétré lors de l’appel précédent au webservice (voir section suivante pour modifier cela). Le nom de la personne qui a rendez-vous (« attendee ») utilise, lui, la valeur du champ « user_name ».

Aller plus loin : changer le titre du rendez-vous dans l’invitation et ajouter une description.

Il peut être intéressant d’avoir un intitulé différent pour l’agent en back-office et pour l’usager dans son agenda, et d'ajouter une description du rendez-vous.

Pour personnaliser le nom de l’événement pour l’usager, on utilise le paramètre « user_display_label » :

  1. dans le statut « Enregistrement du rendez-vous », allez dans la première action « webservice », nommée dans l’exemple « Réservation ».
  2. dans les données à envoyer dans le corps de la requête, ajoutez le paramètre « user_display_label » et indiquez comme valeur le nom de l’événement pour l’usager, le titre qu’il verra apparaître dans son agenda. Par exemple : « rendez-vous Mairie pour passeport »
  3. testez !

Invitation ics personnalisée

affichage dans l'agenda : titre personnalisé

Pour personnaliser la description de l’événement, on utilise le paramètre « description » :

  1. dans le statut « Enregistrement du rendez-vous », allez dans la première action « webservice », nommée dans l’exemple « Réservation ».
  2. dans les données à envoyer dans le corps de la requête, ajoutez le paramètre « description » et indiquez comme valeur une description du rendez-vous (raisons, pièces à apporter...). Par exemple : « Pensez à ramener un justificatif de domicile. »
  3. testez !

⬇️ Fichiers à télécharger

Vous n'avez pas trouvé ce que vous cherchez ?

Une suggestion ? Écrivez-nous !

Proposez une amélioration pour la documentation

Dernière mise à jour le 03/09/2026 16:23