---
title: "Appointments"
description: "Ressources réservables. Chaque application est un module sur un même modèle de données."
canonical: "https://obop.dev/fr/apps/appointments/"
lang: "fr"
---

# Appointments

## À quoi elle sert

Describe bookable people, rooms and equipment and record appointments with a date, start and end. Overlaps are not prevented automatically.

## Ce que fait et ne fait pas le paquet

Bookable resources (people, rooms, equipment) and appointments with a date, start and end time and a status flow. Overlaps are not prevented automatically.

## Modèles

### `appointments_resource`

Something or someone that can be booked

Groupe de lecture: `appointments.user`. Groupe d'écriture: `appointments.manager`.

| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
| `name` | text | `none` | non | `appointments.user` | en clair | Name of the resource, for example Meeting room 2 |
| `kind` | select (person, room, equipment) | `none` | non | `appointments.user` | en clair | What kind of resource it is: person, room, equipment |
| `capacity` | number | `none` | non | `appointments.user` | en clair | How many people it can serve at once |
| `active` | bool | `none` | non | `appointments.user` | en clair | Whether the resource can be booked |

### `appointments_appointment`

A booking of a resource at a time

Groupe de lecture: `appointments.user`. Groupe d'écriture: `appointments.user`.

| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
| `resource_id` | ref → appointments_resource | `none` | non | `appointments.user` | en clair | The resource booked |
| `title` | text | `none` | non | `appointments.user` | en clair | What the appointment is for |
| `day` | date | `none` | non | `appointments.user` | en clair | Date of the appointment (YYYY-MM-DD) |
| `start_minute` | number | `none` | non | `appointments.user` | en clair | Start time as minutes since midnight, for example 540 for 09:00 |
| `end_minute` | number | `none` | non | `appointments.user` | en clair | End time as minutes since midnight, for example 600 for 10:00 |
| `attendee_name` | text | `internal` | oui | `appointments.user` | masqué | Name of the person attending |
| `attendee_email` | text | `internal` | oui | `appointments.user` | masqué | Email address of the attendee |
| `attendee_phone` | text | `internal` | oui | `appointments.user` | masqué | Phone number of the attendee |
| `notes` | longtext | `none` | non | `appointments.user` | en clair | Anything the host should know beforehand |
| `state` | select (scheduled, confirmed, done, cancelled, no_show) | `none` | non | `appointments.user` | en clair | Booking status: scheduled, confirmed, done, cancelled, no_show |

## Flux de travail

### `appointments_appointment`

| Action | Transition | Qui peut l'exécuter | Approbation |
|---|---|---|---|
| `appointments_appointment.confirm` | state: scheduled → confirmed | `appointments.user` | non |
| `appointments_appointment.complete` | state: confirmed → done | `appointments.user` | non |
| `appointments_appointment.cancel` | state: scheduled → cancelled | `appointments.user` | non |
| `appointments_appointment.mark_no_show` | state: confirmed → no_show | `appointments.user` | non |

## Groupes de permissions

Groupes utilisés par cette application :

- `appointments.manager`
- `appointments.user`

## Étapes d'approbation

Aucune étape de cette application ne requiert d'approbation, hormis la suppression d'enregistrements.

## Ce que les agents peuvent et ne peuvent pas faire

Un agent peut lire, rechercher, créer et modifier les enregistrements de cette application, et exécuter les actions qui ne requièrent pas d'approbation, dans les limites des groupes de permissions de son jeton.

Il ne peut que proposer ces étapes, qu'une personne doit approuver : `appointments_resource.delete`, `appointments_appointment.delete`.

Les données personnelles sont masquées sous forme de jetons de substitution : `appointments_appointment.attendee_name`, `appointments_appointment.attendee_email`, `appointments_appointment.attendee_phone`.

## Dépendances

Aucune.

## Installation

Installez-la depuis l'application Customize (Place de marché), ou en ligne de commande :

```bash
obop modules install-from appointments
```

Nécessite une base de données et des droits d'administrateur.

## Créer la vôtre

[Le guide des modules montre comment sont écrites les applications de ce type](/fr/docs/reference/module-manifest/)
