Documentation en ligne

Obtenir les créneaux d’un agenda

Deux API existent pour récupérer les créneaux réservables d’un agenda, selon s’il est de type rendez-vous ou évènements. Certains paramètres sont communs :

Nom Description Valeurs permises Notes
date_start Filtrer les évènements selon leur date de début. Date au format YYYY-MM-DD. {{today|date:"Y-m-d"}} retournera les événements disponibles à partir d’aujourd’hui.
date_end Filtrer les évènements selon leur date de fin. Date au format YYYY-MM-DD. {{today|add_days:16|date:"Y-m-d"}} retournera les événements disponibles avant J+15 (la borne supérieure étant exclue).
user_external_id Inclure des informations supplémentaires en fonction de l’utilisateur spécifié. Identifiant unique d’un utilisateur. Chaque créneau contiendra une nouvelle clé booked_for_external_user qui indiquera si l’utilisateur a déjà une réservation.
exclude_user_external_id Désactiver les créneaux pour lesquels l’utilisateur spécifié a déjà une réservation. Identifiant unique d’un utilisateur. Les créneaux déjà réservés apparaîtront désactivés, de manière analogue à s’ils étaient complets.
hide_disabled Exclure les créneaux désactivés. true ou false
bypass_delays Ne pas prendre en compte les délais de réservation. true ou false (valeur par défaut) Usuellement pour permettre à un agent de passer outre ceux-ci; le paramètre doit alors également être mentionné au moment de la réservation (l’appel à l’API « fillslot »).

Agenda évènement : obtenir l’ensemble des évènements

La liste des évènements d’un agenda est accessible à l’adresse /api/agenda/SLUG-DE-LAGENDA/datetimes/ via la méthode HTTP GET.

Paramètres

Nom Description Valeurs permises Notes
min_places Filtrer les évènements selon leur nombre de places libres minimum. Entier supérieur à 1. Si un utilisateur souhaite réserver 2 places, il est utile de ne présenter que les évènements où au moins deux places sont vacantes.
events Inclure les évènements futurs (par défaut) ou passés. all, future ou past.

Exemple

GET /api/agenda/foo-bar/datetimes/

{
    "err": 0,
    "data": [
        {
        "id": "event-slug",
        "slug": "event-slug",
        "text": "Event",
        "label": "Event",
        "date": "2020-06-11",
        "datetime": "2020-06-11 10:00:00",
        "description": null,
        "pricing": null,
        "url": null,
        "disabled": true,
        "api": {
              "bookings_url": "http://chrono.dev.publik.love/api/agenda/foo-bar/bookings/event-slug/",
              "fillslot_url": "http://chrono.dev.publik.love/api/agenda/foo-bar/fillslot/event-slug/",
              "status_url": "http://chrono.dev.publik.love/api/agenda/foo-bar/status/event-slug/",
              "check_url": "http://chrono.dev.publik.love/api/agenda/foo-bar/check/event-slug/",
        },
            "places": {
                "available": 0,
                "full": true,
                "has_waiting_list": false,
                "reserved": 3,
                "total": 3
            }
        },
        {
        "id": "event2-slug",
        "slug": "event2-slug",
        "text": "Event 2",
        "label": "Event 2",
        "date": "2020-06-12",
        "datetime": "2020-06-12 10:00:00",
        "description": null,
        "pricing": null,
        "url": null,
        "disabled": false,
        "api": {
        "bookings_url": "http://chrono.dev.publik.love/api/agenda/foo-bar/bookings/event2-slug/",
        "fillslot_url": "http://chrono.dev.publik.love/api/agenda/foo-bar/fillslot/event2-slug/",
        "status_url": "http://chrono.dev.publik.love/api/agenda/foo-bar/status/event2-slug/",
        "check_url": "http://chrono.dev.publik.love/api/agenda/foo-bar/check/event2-slug/",
        },
            "places": {
                "available": 3,
                "full": false,
                "has_waiting_list": false,
                "reserved": 0,
                "total": 3
            }
        }
    ],
    "meta": {
    "no_bookable_datetimes": false,
    "bookable_datetimes_number_total": 2,
    "bookable_datetimes_number_available": 1,
    "first_bookable_slot": {
        "id": "event2-slug",
        "slug": "event2-slug",
        ...
    }
    }
}

Agenda rendez-vous : obtenir les créneaux disponibles

La liste des évènements d’un agenda est accessible à l’adresse /api/agenda/SLUG-DE-LAGENDA/meetings/SLUG-DU-TYPE-DE-RDV/datetimes/ via la méthode HTTP GET.

Paramètres

Nom Description Valeurs permises Notes
resources Filtrer les créneaux où certaines resources sont disponibles. Liste de slugs séparés par des virgules.
events Inclure les évènements futurs (par défaut) ou passés. all, future ou past.
minutes Filtrer les créneaux sur l'horaire de début du créneau Des nombres entiers de 0 à 59, séparés par des virgules 0,30 retournera les créneaux qui commencent au heures piles et au demi-heures.

Exemple

GET /api/agenda/rdvs-autre/meetings/base/datetimes/

{
    "data": [
          {
            "api": {
                "fillslot_url": "https://chrono.dev.publik.love/api/agenda/rdvs-autre/fillslot/19:2020-08-05-1500/"                                                                                               
            },
            "date": "2020-08-05",
            "datetime": "2020-08-05 15:00:00",
            "disabled": true,
            "id": "19:2020-08-05-1500",
            "text": "5 août 2020 15:00" 
        },
        {
            "api": {
                "fillslot_url": "https://chrono.dev.publik.love/api/agenda/rdvs-autre/fillslot/19:2020-08-05-1515/"                                                                                               
            },
            "date": "2020-08-05",
            "datetime": "2020-08-05 15:15:00",
            "disabled": false,
            "id": "19:2020-08-05-1515",
            "text": "5 août 2020 15:15" 
        },
        {
            "api": {
                "fillslot_url": "https://chrono.dev.publik.love/api/agenda/rdvs-autre/fillslot/19:2020-08-05-1530/"                                                                                               
            },
            "date": "2020-08-05",
            "datetime": "2020-08-05 15:30:00",
            "disabled": false,
            "id": "19:2020-08-05-1530",
            "text": "5 août 2020 15:30" 
        }
    ],
    "meta": {
    "no_bookable_datetimes": false,
    "bookable_datetimes_number_total": 3,
    "bookable_datetimes_number_available": 2,
    "first_bookable_slot": {
            "api": {
                "fillslot_url": "https://chrono.dev.publik.love/api/agenda/rdvs-autre/fillslot/19:2020-08-05-1515/"                                                                                               
            },
            "date": "2020-08-05",
            "datetime": "2020-08-05 15:15:00",
            "disabled": false,
            "id": "19:2020-08-05-1515",
            "text": "5 août 2020 15:15" 
        }
    }
}

Agenda évènement : obtenir l’ensemble des évènements de plusieurs agendas

Il est possible d’obtenir une liste d’évènements aggrégés depuis plusieurs agendas via un appel HTTP GET à l’adresse /api/agendas/datetimes/ (noter les pluriels).

Paramètres

Nom Description Exemple
agendas Identifiants des agendas. agenda-slug,agenda2-slug

Ce paramètre est obligatoire et vient s’ajouter à la liste des paramètres acceptés par l’API de récupération des évènements classique.

Réponse

La réponse est la même que celle de l’API de récupération des évènements classique. La seule différence est que les identifiants des évènements (clé "id") sont constitués de la concaténation entre le slug de l’agenda et le slug de l’évènement. Cela permet leur réutilisation dans l’API de réservation multiple.

Agenda évènement : obtenir les évènements récurrents

La liste des évènements récurrents définis sur un agenda est accessible à l’adresse /api/agendas/recurring-events/?agendas=SLUG-DE-LAGENDA via la méthode HTTP GET.

Attention, les occurrences d’un évènement récurrents sont bien retournées par l’API /datetimes/ décrite plus haut. Cette API n’est utile que dans des cas très spécifiques, où l’on voudrait récupérer l’évènement récurrent source plutôt que les évènements directement réservables qui en découlent.

Les évènements retournés sont réservables grâce à l’API de réservation multiple des évènements récurrents.

Paramètres

Nom Description Exemple
agendas Identifiants des agendas. agenda-slug,agenda2-slug

Ce paramètre est obligatoire.

Exemple

GET /api/agendas/recurring-events/?agenda=SLUG-DE-LAGENDA

{
    "data": [
    {
        "date": "2021-09-06",
        "datetime": "2021-09-06 14:00:00",
        "description": null,
        "id": "xxx@event-slug:0",
        "pricing": null,
        "text": "Lundi: Évènement",
        "url": null
    },
    {
        "date": "2021-09-21",
        "datetime": "2021-09-21 14:00:00",
        "description": null,
        "id": "xxx@other-event-slug:1",
        "pricing": null,
        "text": "Mardi: Autre Évènement",
        "url": null
    }
    ]
}

Dernière mise à jour le 09/08/2023 21:16 — Éditer