Documentation en ligne

Gestion des agendas¶

Lister les agendas¶

La liste des agendas est accessible à l’adresse /api/agenda/ via la méthode HTTP GET.

Paramètres¶

Nom Description Exemple
q Filtrer les agendas selon leur slug. q=piscine retournera les agendas dont les slugs sont « piscine_1 » et « first_piscine » mais pas « salle_des_fetes ».
category Filtrer les agendas selon leur catégorie.
kind Filtrer les agendas selon leur type. events pour les évènements, meetings pour les rendez-vous ou virtual pour les agendas virtuels
with_open_events Exclure les agendas qui n’ont pas d’évènements ouverts. with_open_events=true ne retournera que les agendas ayant des évènements ouverts.

Exemple¶

GET /api/agenda/

{
  "data": [
      {
      "text": "Un agenda",
      "id": "un-agenda",
      "slug": "un-agenda",
      "kind": "events",
      "minimal_booking_delay": 1,
      "minimal_booking_delay_in_working_days": False,
      "maximal_booking_delay": 56,
      "edit_role" : "Agent",
      "view_role" : "Agent",
      "category" : "une-categorie",
      "absence_reasons": [
          {"id": "reason-1", "slug": "reason-1", "text": "Reason 1", "label": "Reason 1"},
          {"id": "reason-2", "slug": "reason-2", "text": "Reason 2", "label": "Reason 2"},
      ],
      "api": {
          "datetimes_url": "http://chrono.dev.publik.love/api/agenda/un-agenda/datetimes/",
          "fillslots_url": "http://chrono.dev.publik.love/api/agenda/un-agenda/fillslots/",
      },
      },
      {
      "text": "Un autre agenda",
      "id": "un-autre-agenda",
      "slug": "un-autre-agenda",
      "kind": "meetings",
      "minimal_booking_delay": 1,
      "maximal_booking_delay": 56,
      "edit_role" : "Agent",
      "view_role" : "Agent",
      "category" : "une-categorie",
      "shared_resources": [
          {"id": "resource-1", "text": "Resource 1", "description": "Foo bar Resource 1"},
          {"id": "resource-2", "text": "Resource 2", "description": "Foo bar Resource 2"},
      ],
      "api": {
          "meetings_url": "http://chrono.dev.publik.love/api/agenda/un-autre-agenda/meetings/",
          "desks_url": "http://chrono.dev.publik.love/api/agenda/un-autre-agenda/desks/",
          "shared_resources_url": "http://chrono.dev.publik.love/api/agenda/un-autre-agenda/shared-resources/",
          "fillslots_url": "http://chrono.dev.publik.love/api/agenda/un-autre-agenda/fillslots/",
      },
      },
}

Ajouter un agenda¶

L’ajout d’un agenda s’effectue par un appel à l’adresse /api/agenda/ via la méthode HTTP POST.

Cette procédure est commune aux agendas de type rendez-vous et évènement.

Paramètres JSON, corps de la requête¶

Deux paramètres doivent obligatoirement être présents.

Nom Description Exemple
slug Identifiant pour adresse URL "mon-agenda"
label Libellé "Mon Agenda"

La plupart des paramètres optionnels sont communs aux deux types d’agenda.

Nom Description Exemple
kind Type de l’agenda "events" (défaut), "meetings" ou "virtual"
minimal_booking_delay Nombre de jours minimal (borne incluse) pour réserver 1
maximal_booking_delay Nombre de jours maximal (borne exclue) pour réserver 56
anonymize_delay Délai d’anonymisation (en jours) 30
edit_role Rôle d’édition "Administateur fonctionnel"
view_role RĂ´le de visualisation "Administateur fonctionnel"
category Slug de la catégorie de l'agenda "une-category"

Les paramètres qui encadrent la période de réservation sont mieux décrits ici

Un paramètre supplémentaire peut être inclut sur les agendas évènements :

Nom Description Exemple
minimal_booking_delay_in_working_days Délai de réservation minimal en jours ouvrés (booléen) false (défaut), true

Exemple¶

POST /api/agenda/

{
   "data" : [
      {
         "api" : {
            "datetimes_url" : "https://chrono.dev.publik.love/api/agenda/mon-agenda/datetimes/",
            "fillslots_url" : "https://chrono.dev.publik.love/api/agenda/mon-agenda/fillslots/" 
         },
         "category" : "une-categorie",
         "edit_role" : "Administrateur fonctionnel",
         "id" : "mon-agenda",
         "kind" : "events",
         "maximal_booking_delay" : 56,
         "minimal_booking_delay" : 1,
         "minimal_booking_delay_in_working_days" : true,
         "slug" : "mon-agenda",
         "text" : "Mon Agenda",
         "view_role" : "Administrateur fonctionnel" 
      }
   ],
   "err" : 0
}

Mettre à jour un agenda¶

Les agendas sont modifiables à l’adresse /api/agenda/SLUG-DE-LAGENDA/ via la méthode HTTP PATCH.

Paramètres JSON, corps de la requête¶

Les paramètres utilisables sont les mêmes que ceux de la requête d’ajout, à l'exception du paramètre kind, car le type d'un agenda existant ne peut pas être modifié.
Il n'y a pas besoin de passer l'ensemble des paramètres, seul les paramètres fournis seront mis à jour.

Exemple¶

PATCH /api/agenda/agenda-evenement/

(même retour que pour la méthode POST)

Dupliquer un agenda¶

Un agenda peut être dupliqué via l’adresse /api/agenda/SLUG-DE-LAGENDA/duplicate/ via la méthode HTTP POST.

Paramètres JSON, corps de la requête¶

Nom Description Remarque
label Libellé pour l’agenda dupliqué
slug Slug pour l’agenda dupliqué Si le slug n’est pas mentionné il sera créé automatiquement sur base du libellé

Exemple¶

POST /api/agenda/agenda-evenement/duplicate/
{
  "label": "Nouveau libellé",
  "slug": "identifiant-personnalise" 
}

→
{
  "data": {
    "id": "identifiant-personnalise",
    "slug": "identifiant-personnalise",
    "text": "Nouveau libellé",
    "kind": "events",
    "minimal_booking_delay": 1,
    … (autres attributs de paramétrage) …
    "api": {
      "datetimes_url": "https://…/api/agenda/identifiant-personnalise/datetimes/",
      "backoffice_url": "https://…/manage/agendas/NUM/" 
    },
  }
}

Obtenir des informations sur un agenda¶

Les informations de paramétrage d’un agenda sont accessibles à l’adresse /api/agenda/SLUG-DE-LAGENDA/ via la méthode HTTP GET.

Exemple¶

GET /api/agenda/agenda-evenement/

{
    "data": {
        "api": {
            "datetimes_url": "https://chrono.dev.publik.love/api/agenda/agenda-evenement/datetimes/",
            "fillslots_url": "https://chrono.dev.publik.love/api/agenda/agenda-evenement/fillslots/" 
        },
        "id": "agenda-evenement",
        "kind": "events",
        "maximal_booking_delay": 56,
        "minimal_booking_delay": 1,
        "minimal_booking_delay_in_working_days": True,
        "slug": "agenda-evenement",
        "text": "Agenda Evenement",
        "edit_role" : "Agent",
        "view_role" : "Agent",
        "category" : "une-categorie",
    }
}

Supprimer un agenda¶

La suppression d'un agenda s'effectue via un appel à l’adresse /api/agenda/SLUG-DE-LAGENDA/ via la méthode HTTP DELETE.
L'appel échouera si l'agenda contient des réservation actives.

Exemple¶

DELETE /api/agenda/agenda-evenement/

{
    "err": 0,
}

Dernière mise à jour le 04/12/2025 15:17 — Éditer