Guide de l'utilisateur MultiDatePick

Chaque composant, chaque paramètre et chaque piège, dans l'ordre où un administrateur les rencontre. Aucun Apex requis.

1. Les trois composants : lequel utiliser

MultiDatePick fournit trois Lightning Web Components sur une base commune. Choisissez celui qui correspond à vos données.

Date

Dans les générateurs : MultiDatePick - Dates

Sélectionnez plusieurs dates d'un coup. Idéal pour les inscriptions, les présences, les congés, les dates d'interdiction et les calendriers de jours fériés.

Composant Date →

Date Time

Dans les générateurs : MultiDatePick - Dates & Times

Des dates et des créneaux horaires. Idéal pour les cours, les rendez-vous, les sessions de formation et les postes de travail.

Composant Date Time →

Booking

Dans les générateurs : MultiDatePick - Resource Booking

Des dates, des heures et une ressource. Idéal pour les salles, les équipements, les personnes et tout ce qui a une capacité.

Composant Booking →

Comparaison des fonctionnalités

Les fonctionnalités s'additionnent. Tout ce que propose Date se retrouve dans Date Time et Booking. Date Time ajoute les heures. Booking ajoute les ressources et la capacité.

Fonctionnalité Date Date Time Booking
Disponible sur les trois composants
Sélection de dates✓✓✓
Cinq vues✓✓✓
Couleurs de statut✓✓✓
Dates bloquées✓✓✓
Chargement des enregistrements existants✓✓✓
Mode édition✓✓✓
Récurrences✓✓✓
Date Time & Booking uniquement
Créneaux horaires✓✓
Enregistrements de sous-blocs✓✓
Booking uniquement
Sélecteur de ressource✓
Badges de capacité✓

2. Formes d'enregistrement : laquelle utiliser

Une forme d'enregistrement décrit comment une sélection devient des enregistrements. Elle résulte de trois choix indépendants, et toutes les combinaisons fonctionnent.

Choix 1
Heure

Date : uniquement des dates, sans heures.

Date Time / Booking : chaque enregistrement a une heure de début et une heure de fin.

En option : activez Consolidate Time Span (Regrouper la durée) pour obtenir un enregistrement parent sur toute la plage horaire, plus un enfant sous-bloc pour chaque intervalle à l'intérieur.

Choix 2
Ressource

Aucune : Date, Date Time ou Booking sans ressource.

Ressource unique : Booking avec une liste déroulante de ressources.

Plusieurs ressources : Booking avec des cases à cocher, un enregistrement par ressource cochée.

Choix 3
Plage

Par clic : chaque date sélectionnée devient son propre enregistrement. Cinq clics, cinq enregistrements.

Par plage : les dates consécutives deviennent un seul enregistrement avec un début et une fin. Renseignez End Date Field API Name.

L'assistant de configuration nomme six formes : un enregistrement par date, un par plage de dates, un par bloc horaire, parent plus sous-blocs, ressource unique et plusieurs ressources.

Exemples concrets : répondez aux 3 questions

Répondez à trois questions par scénario pour trouver la bonne forme. L'assistant de configuration pose les trois mêmes.

Assistant de configuration MultiDatePick dans Salesforce : les questions de Guidez-moi sur l'heure, la ressource et la plage, avec un petit schéma de forme d'enregistrement sur chaque carte de réponse
Guidez-moi pose les 3 mêmes questions dans votre org et choisit la forme pour vous.

Demande de congés

Avez-vous besoin d'heures ? Non, uniquement des dates.

Avez-vous besoin d'un sélecteur de ressource ? Non.

Les dates adjacentes doivent-elles être regroupées ? Oui. Des congés du lundi au vendredi doivent former UN seul enregistrement.

→ Par plage : un enregistrement, début lundi, fin vendredi.

Réservation de salle de réunion

Avez-vous besoin d'heures ? Oui, chaque réservation a un début et une fin.

Avez-vous besoin d'un sélecteur de ressource ? Oui, pour choisir une salle.

Les dates adjacentes doivent-elles être regroupées ? Non, chaque réservation est son propre enregistrement.

→ Ressource unique : un enregistrement par date × bloc horaire, lié à la salle.

Formation dans 3 salles

Avez-vous besoin d'heures ? Oui, le même début et la même fin chaque jour.

Avez-vous besoin d'un sélecteur de ressource ? Oui, plusieurs salles avec des cases à cocher.

Les dates adjacentes doivent-elles être regroupées ? Oui, elle dure du lundi au vendredi.

→ Plusieurs ressources, par plage : un enregistrement par salle couvrant toute la semaine.

Formation d'une journée avec pause déjeuner

Avez-vous besoin d'heures ? Oui, de 9 h à 17 h avec une pause déjeuner.

Avez-vous besoin d'un sélecteur de ressource ? Non.

La pause doit-elle être suivie ? Oui, comme son propre enregistrement enfant.

→ Parent plus sous-blocs : un parent de 9 h à 17 h, un sous-bloc pour le déjeuner.

La grille : toutes les combinaisons

Choisissez la ligne selon vos besoins en heures et en ressources. La colonne dépend du fait que End Date Field API Name soit renseigné ou non. Chaque case correspond à une configuration valide.

Heure + ressource Par clic
(sans End Date Field)
Par plage
(End Date Field renseigné)
Date
Sans heure. Composant Date.
Un enregistrement par date
1 date → 1 enregistrement.
Pour : inscriptions, présences, pointages quotidiens.
Un enregistrement par plage de dates
Dates consécutives → 1 enregistrement avec début et fin.
Pour : congés, déplacements, séjours de plusieurs nuits.
Date Time
Un bloc horaire par enregistrement. Composant Date Time.
Un enregistrement par bloc horaire
1 date × 1 bloc horaire = 1 enregistrement.
Pour : feuilles de temps, segments de poste, sessions de formation.
Plage avec un bloc horaire commun. Dates consécutives aux mêmes heures → 1 enregistrement.
Pour : une formation de plusieurs jours aux mêmes horaires chaque jour.
Date Time + Consolidate Time Span
Enregistrement parent plus enfants sous-blocs pour les intervalles
Parent plus sous-blocs
Un parent couvre toute la plage horaire. Chaque intervalle à l'intérieur devient un enfant sous-bloc.
Pour : formations avec pauses déjeuner, tournées terrain avec trajets entre les arrêts.
Booking, ressource unique
Une liste déroulante de ressources. Composant Booking.
Ressource unique
1 enregistrement par date × bloc horaire, lié à la ressource.
Pour : salles de réunion, planning des formateurs.
Plage sur une ressource unique. Dates consécutives sur une ressource → 1 enregistrement par plage.
Pour : séjours de plusieurs nuits dans une chambre, prêt de matériel sur plusieurs jours.
Booking, plusieurs ressources
Cases à cocher de ressources (Allow Multiple Resources)
Plusieurs ressources
1 enregistrement par ressource × date × bloc horaire.
Pour : réunions d'équipe en parallèle, formations dans plusieurs salles.
Plage sur plusieurs ressources. Dates consécutives sur N ressources → N enregistrements, un par ressource.
Pour : une semaine de formation dans 3 salles à la fois.
Booking + Consolidate Time Span
Réservation parente plus enfants sous-blocs pour les intervalles
Réservation parente plus sous-blocs. Une ressource réservée toute la journée, avec ses pauses enregistrées.
Pour : équipements de laboratoire avec fenêtres de maintenance.

En résumé : toute combinaison des trois choix fonctionne. Si votre scénario ne correspond à aucun modèle nommé, réglez chaque choix séparément et le composant fait le reste.

3. Présentation de l'assistant de configuration

L'assistant de configuration enregistre une configuration une seule fois. Saisissez son nom dans Config Name sur n'importe quelle page ou n'importe quel écran de flux, et cet emplacement l'utilise. Modifiez la configuration et tous les emplacements suivent.

  1. 1 Nom & type
  2. 2 Objet & champs
  3. 3 Champs temporels
  4. 4 Statut & affichage
  5. 5 Vérifier & enregistrer

Choisir un point de départ

L'onglet Créer propose deux parcours. Guidez-moi pose trois questions et choisit le composant et la forme. Configurer toutes les propriétés ouvre tous les paramètres. Deux autres onglets se trouvent à côté : Configurations existantes pour modifier une configuration enregistrée, et Importer pour en coller une depuis la Config Library.

Assistant de configuration MultiDatePick dans Salesforce : l'écran de départ avec les parcours Guidez-moi et Configurer toutes les propriétés
Guidez-moi pose les 3 questions. Configurer toutes les propriétés passe directement à l'étape 1.

Étape 1 : Nom & type

Choisissez le composant (Date, Date Time ou Booking) et nommez la configuration. Ce nom est celui que vous saisirez ensuite dans Config Name. Cette étape définit aussi les vues : la vue par défaut, les vues proposées par le sélecteur, et les options de la Chronologie et de l'Agenda.

Assistant de configuration MultiDatePick dans Salesforce, étape Nom & type : le choix du type de composant (Date, Date Time ou Booking), avec les champs nom et libellé de la configuration
Étape 1 : choisir le composant, nommer la configuration.
Options de vue de l'assistant de configuration MultiDatePick dans Salesforce : Calendrier, Chronologie et Agenda choisis pour le sélecteur de vues, la chronologie regroupée par la liste de sélection Advisor Specialty, et Client Name, Meeting Type et Status choisis comme champs de l'agenda
Options de vue : choisissez les vues du sélecteur, regroupez les lignes de la Chronologie par n'importe quelle liste de sélection ou champ de référence, choisissez les colonnes de l'Agenda dans une liste.

Étape 2 : Objet & champs

L'étape principale. Choisissez l'objet qui contient les enregistrements, son champ date et le champ de relation vers le parent. Des champs facultatifs ajoutent les plages, les ressources, la capacité, les sous-blocs et les dates bloquées. Les configurations Booking définissent aussi ici l'objet ressource, le champ de capacité et les heures ouvrables.

Assistant de configuration MultiDatePick dans Salesforce, étape Objet & champs : les sélecteurs d'objet associé, de champ date, de champ de relation et de champ date de fin, plus le choix de l'emplacement
Étape 2 : l'assistant lit le schéma de votre org et propose une liste déroulante pour chaque champ.
Assistant de configuration MultiDatePick dans Salesforce, étape Objet & champs : chaque champ est une liste déroulante filtrée sur l'objet choisi, ici Advisor Appointment et Advisor, avec la liste Champ Capacité ouverte qui ne montre que les champs numériques d'Advisor
Aucun nom d'API à chercher. Chaque liste ne montre que les champs du bon type : Champ Capacité ne liste que les champs numériques.
Section Dates bloquées de l'assistant de configuration MultiDatePick dans Salesforce : l'objet Advisor Closure choisi comme source, ses champs Closure Date, Start Time et End Time sélectionnés, et la liste du champ ressource ouverte sur ses champs de référence
Les dates bloquées peuvent venir de n'importe quel objet. Choisissez-le et les listes de date, d'heure et de ressource se remplissent.

Étape 3 : Champs temporels

Date Time et Booking uniquement. Associez les champs d'heure de début et de fin, puis définissez l'intervalle horaire (tout intervalle fonctionne ; 15, 30 ou 60 minutes sont courants), l'heure la plus tôt et la plus tardive, le mode d'affichage et ce qui se passe en cas de conflit.

Assistant de configuration MultiDatePick dans Salesforce, étape Champs temporels : champs d'heure de début et de fin, intervalle de 30 minutes, affichage en grille, de 08:00 à 18:00, comportement en cas de conflit Bloquer et 90 jours d'anticipation des conflits, avec l'aperçu en direct en dessous
Étape 3 : champs d'heure, intervalle et règles de conflit, avec l'aperçu en direct en dessous.

Étape 4 : Statut & affichage

Champ de statut et couleurs, statuts à masquer, statuts que les utilisateurs peuvent choisir, champs au survol, mode édition, nom des enregistrements, libellés des boutons, taille du calendrier et limites comme Max Dates Allowed.

Assistant de configuration MultiDatePick dans Salesforce, étape Statut & affichage : champ de statut, correspondance des couleurs de statut avec leurs pastilles, et masquage des réservations par statut
Les couleurs de statut reprennent les valeurs de la liste de sélection de votre champ de statut. Chacune reçoit une pastille.
Assistant de configuration MultiDatePick dans Salesforce, étape Statut & affichage : nom des enregistrements, champs au survol, taille du calendrier, format des en-têtes de jour et options des fonctionnalités
Options d'affichage et activation des fonctionnalités, avec l'aperçu en direct en dessous.

Étape 5 : Vérifier & enregistrer

Vérifiez le récapitulatif, essayez l'aperçu en direct, puis cliquez sur Enregistrer la configuration. L'assistant déploie la configuration pour vous en 30 à 60 secondes. Ajoutez une description facultative à la fin.

Assistant de configuration MultiDatePick dans Salesforce, étape Vérifier & enregistrer : le récapitulatif de chaque paramètre choisi et un aperçu fonctionnel du calendrier configuré, avec le bouton Enregistrer la configuration
Étape 5 : tous les paramètres dans une seule liste et un aperçu fonctionnel. Rien n'est enregistré tant que vous n'avez pas cliqué sur Enregistrer la configuration.

Configurations existantes et import

Les configurations enregistrées sont listées dans Configurations existantes : cliquez sur l'une d'elles pour la modifier ou l'exporter. L'onglet Importer accepte le JSON de n'importe quelle carte de la Config Library, ou un export provenant d'une autre org.

Assistant de configuration MultiDatePick dans Salesforce : l'onglet Importer avec une zone où coller une configuration JSON et la carte de description après l'import
Importer : collez une configuration JSON pour déployer la même configuration n'importe où.
Assistant de configuration MultiDatePick dans Salesforce : l'onglet Configurations existantes qui liste les configurations enregistrées avec leur type de composant, libellé et description
Configurations existantes : toutes les configurations enregistrées, prêtes à être modifiées ou exportées.
Dans un flux d'écran (Screen Flow), renseignez Config Name et arrêtez-vous là. Chaque case à cocher vient de la configuration, vous n'avez donc jamais besoin d'un $GlobalConstant. Liez l'enregistrement parent à Parent Record Id.

4. Ensembles d'autorisations & accès

Le package fournit quatre ensembles d'autorisations. Attribuez-les dans Configuration, Ensembles d'autorisations.

Ensemble d'autorisationsPour quiAssistant de configurationUtiliser les calendriers
MultiDatePick - SetupLes administrateurs qui créent les configurations✓ OuiNon
MultiDatePick - UserTous ceux qui utilisent les calendriersNon✓ Oui
MultiDatePick - All AccessLes administrateurs qui les créent et les utilisent✓ Oui✓ Oui
MultiDatePick - GuestL'utilisateur invité d'un site Experience Cloud publicNon✓ Consulter et réserver

Les composants s'exécutent avec les autorisations de chaque utilisateur. Les utilisateurs doivent donc aussi avoir accès à vos objets et champs :

  • Objets : Lecture et Création sur l'objet où les enregistrements sont sauvegardés, plus Lecture sur chaque objet ressource, fermeture ou enfant que lit le calendrier.
  • Champs, lecture : chaque champ affiché par le calendrier (date, statut, champs au survol).
  • Champs, modification : chaque champ qu'il écrit (date, heures, statut, seconde liste de sélection, champ nom, référence au parent). Un champ que l'utilisateur ne peut pas modifier fait échouer l'enregistrement, même si la lecture fonctionne.
  • Enregistrements référencés : au moins Lecture sur le parent et la ressource vers lesquels pointe le nouvel enregistrement.
Les administrateurs ont aussi besoin de l'accès aux champs. Un champ personnalisé tout neuf est invisible pour tout le monde, administrateurs système compris, tant qu'un ensemble d'autorisations ne l'accorde pas. Si un champ semble manquer au moment de l'enregistrement, vérifiez d'abord la sécurité au niveau du champ.

Chaque message d'erreur et sa cause figurent dans Dépannage : erreurs d'accès. Les sites invités demandent quelques étapes de plus : voir Pages publiques pour invités.

5. Click to Save ou enregistrement géré par le flux

Il existe deux façons d'enregistrer. Choisissez celle qui convient à l'emplacement.

Click to Save

Le composant écrit lui-même les enregistrements. Renseignez quatre paramètres et son propre bouton Enregistrer apparaît. Un clic et les enregistrements enfants sont créés. Aucun élément de flux, aucun code.

À utiliser sur : pages d'enregistrement, pages d'application, pages d'accueil, sites Experience et écrans de flux disposant d'un enregistrement parent.

Enregistrement géré par le flux

Le composant transmet la sélection à votre flux. Utilisez l'action incluse Parse Date Entries from JSON, puis vos propres éléments Boucle et Créer des enregistrements.

À utiliser sur : les écrans de flux où vous voulez un contrôle total : approbations, enregistrements conditionnels, validations supplémentaires.

Click to Save : les quatre paramètres

L'assistant de configuration les renseigne. Quand les quatre ont une valeur, le bouton Enregistrer apparaît.

ParamètreContenuNom d'API
Child Object API NameL'objet où les enregistrements sont sauvegardésrelatedObjectApiName
Date Field API NameLe champ date de cet objetdateFieldApiName
Relationship Field API NameLa référence vers l'enregistrement parentrelationshipFieldApiName
Parent Record Id ou Static Parent Record IdLe parent. Renseigné automatiquement sur une page d'enregistrement. Dans un flux, liez Parent Record Id. Sur les pages d'application, d'accueil et Experience, saisissez l'Id dans Static Parent Record Id.recordId / staticRecordId
Deux boutons dans un écran de flux. Avec Click to Save activé, le bouton Enregistrer du composant écrit les enregistrements et le bouton Suivant du flux ne fait qu'avancer. Les utilisateurs cliquent d'abord sur Enregistrer, puis sur Suivant.

Quel enregistrement parent une page utilise, et quand le choisir plutôt dans un flux, est expliqué dans Pages d'application, d'accueil & Experience.

Enregistrement géré par le flux : les sorties

Laissez les quatre paramètres vides. Le bouton Enregistrer se masque et la sélection sort par ces sorties de flux :

SortieContenuComposants
Selected Dates (Output)Une collection texte de dates (YYYY-MM-DD)Date, Date Time
Date Ranges JSON (Output)Les dates consécutives regroupées en plagesDate, Date Time
Dates With Times JSON (Output)Chaque date avec ses heuresDate Time
Successful Bookings Count / Conflict DatesLes résultats après l'enregistrement propre à BookingBooking

Transmettez le JSON à Parse Date Entries from JSON. L'action renvoie une liste que vous pouvez parcourir avec une Boucle, avec sur chaque élément une date de début, une date de fin, une heure de début, une heure de fin et l'Id de la ressource. Pas à pas : Recettes de flux.

L'enregistrement ne fait qu'ajouter

Click to Save ne fait que créer de nouveaux enregistrements. Désélectionner une date ne supprime jamais un enregistrement sauvegardé : un mauvais clic ne peut donc pas faire perdre de données. Pour modifier ou supprimer des enregistrements, utilisez le mode édition ou la liste associée.

6. Couleurs de statut & mode édition

Couleurs de statut et filtrage

Colorez les enregistrements selon n'importe quelle liste de sélection de votre objet, masquez certaines valeurs et limitez ce que les utilisateurs finaux peuvent choisir.

ParamètreRôleNom d'API
Status FieldLa liste de sélection qui pilote les couleurs, par exemple Confirmed / Tentative / Cancelled.statusField
Status ColorsUne couleur par valeur, comme Confirmed:#22C55E, Tentative:#fbbf24. Laissez vide pour une palette automatique.statusColors
Status Color DisplayOù les couleurs s'affichent : calendrier, grille ou les deux. Laissez vide pour une page client épurée, sans couleurs.statusColorDisplay
Ignored StatusesMasque les enregistrements ayant ces valeurs (par exemple No-Show,Cancelled) dans le calendrier et dans le calcul de la capacité.hideBookingsWithStatus
Selectable StatusesLimite les valeurs qu'un utilisateur final peut choisir, par exemple uniquement Requested, alors que le personnel les voit toutes.selectableStatuses
Deux pages, un objet. Une page client peut n'afficher aucune couleur, ne proposer que Requested comme statut et masquer No-Show et Cancelled. Une page de back-office sur les mêmes enregistrements active les couleurs et propose tous les statuts.

Mode édition

Activez Enable Edit Mode (Activer le mode édition) et un bouton Modifier apparaît. En mode édition, les utilisateurs peuvent :

  • Voir les enregistrements existants sous forme de cartes avec leur date et leur statut
  • Cliquer sur des dates pour ajouter leurs enregistrements à la sélection à modifier
  • Changer la date, les heures, la ressource ou le statut : l'enregistrement est mis à jour
  • Supprimer avec une confirmation en deux clics, pour que rien ne parte par accident
Démo animée du mode édition MultiDatePick sur un calendrier Salesforce : deux jours de rendez-vous Requested sont sélectionnés, Tout sélectionner prend les deux réservations, le statut passe à Confirmed et, après Appliquer les modifications, les deux jours passent du bleu au vert
Changement de statut groupé : sélectionnez les jours, Tout sélectionner, choisissez le statut, appliquez.
Démo animée du mode édition MultiDatePick sur un calendrier Salesforce : le rendez-vous client d'un jour est sélectionné, le lendemain est saisi dans Déplacer vers la date et, après Appliquer les modifications, la réservation quitte le 30 octobre pour le 31 octobre, seul jour encore sélectionné
Déplacer des réservations : choisissez le jour, une nouvelle date, appliquez. Le même panneau change la ressource ou les heures.
Calendrier de réservation Salesforce avec les couleurs de statut sur chaque jour et le mode édition ouvert : le jour sélectionné liste chaque réservation avec son statut, son heure et sa salle, prête pour un changement de statut groupé, un déplacement ou une réaffectation
Les couleurs de statut colorent chaque jour. Le mode édition liste les enregistrements du jour, prêts à être modifiés.

7. Vues : cinq mises en page, un composant

Chaque composant propose cinq mises en page. Elles lisent les mêmes enregistrements avec les mêmes correspondances de champs, appliquent les mêmes règles de conflit, dates bloquées et heures ouvrables, et enregistrent de la même façon. Changer de vue change l'apparence des enregistrements, jamais leur signification.

Les cinq vues, et la question à laquelle chacune répond

Vue (View)La questionMise en pageModifiable ?
CalendrierQue se passe-t-il le 14 ?Un mois à la fois, couleurs de statut par jour.Oui. Vue par défaut.
ChronologieQuelle ressource est libre, et quand ?Les ressources sur le côté, les dates en haut. Les enregistrements de plusieurs jours s'affichent en une seule barre.Oui
SemaineQui est disponible jeudi à 14 h ?Sept jours en colonnes, les heures ouvrables en lignes. Faites glisser sur plusieurs jours et plusieurs heures à la fois.Oui
OccupationQui dépasse sa capacité ?Une heatmap de la capacité utilisée, par ressource et par jour.Non, lecture seule
AgendaQuelle est la suite ?La liste chronologique des 60 prochains jours.Non, lecture seule
N'ouvrez pas une page de réservation sur Occupation ou Agenda. Ces deux vues sont en lecture seule : la page perdrait sa fonction principale. Proposez-les dans Available Views (Vues disponibles) et ouvrez sur une vue modifiable.

Paramètres

ParamètrePar défautRôle
ViewviewCalendrierLa mise en page affichée à l'ouverture du composant.
Available ViewsavailableViewsvideLes vues proposées par le sélecteur, par exemple calendar,timeline,agenda. Vide, il propose les cinq. Votre vue par défaut est toujours incluse : ne listez que les vues en plus.
Timeline Window (Days)timelineWindowDays14Le nombre de jours affichés à la fois dans la Chronologie. Sur un mois entier, chaque réservation ne fait qu'une vingtaine de pixels de large et son libellé est coupé. Mettez 0 pour afficher le mois complet. Les flèches intérieures avancent d'une fenêtre, les flèches extérieures d'un mois.
Resource RowsresourceViewFilterallbooked n'affiche que les ressources qui ont une réservation dans la période visible. C'est la meilleure façon de raccourcir une longue liste, car une ligne vide n'apporte aucune information. Si rien n'est réservé nulle part, toutes les ressources réapparaissent.
Max View ResourcesmaxViewResources0 (toutes)Limite le nombre de lignes de ressources que la Chronologie et l'Occupation affichent, les plus chargées en premier. Tout reste compté. Préférez Resource Rows, qui ne masque que les lignes vides.
Agenda FieldsagendaFieldsvideJusqu'à quatre champs supplémentaires sur chaque ligne de l'Agenda. Vide, il reprend Hover Popover Fields. La date, l'heure et le nom figurent déjà sur la ligne.
Capacity FieldcapacityFieldvideCe n'est pas un paramètre de vue, mais l'Occupation en a besoin pour afficher des pourcentages plutôt que des nombres bruts.

Une vue différente sur chaque page

La vue se règle sur chaque emplacement : les mêmes enregistrements peuvent donc avoir une apparence différente selon l'endroit où ils s'affichent. Une seule installation, un seul jeu de correspondances de champs.

EmplacementVue (View)Vues disponibles (Available Views)
Page d'entretiens du recruteurSemainecalendar,agenda
Page de réservation de salles des services générauxCalendriertimeline,utilization
Planning du responsable d'équipeChronologieweek,agenda
Écran mural des opérationsAgendautilization,timeline
Page Experience Cloud publiqueCalendriervide, ou une liste courte

Le mode édition fonctionne dans toutes les vues

Avec Enable Edit Mode activé, le bouton de modification apparaît dans toutes les vues. Cliquez sur un enregistrement dans la Chronologie, la Semaine ou l'Agenda pour l'ajouter à la sélection à modifier, exactement comme une date du calendrier mensuel. Un changement de statut groupé depuis la Chronologie fonctionne comme depuis le calendrier.

Chronologie : lignes repliées

Quand une ressource a des réservations qui se chevauchent, sa ligne se replie en une seule bande avec une pastille N à la fois. Une flèche de dépliage ouvre un couloir par réservation. Les lignes repliées acceptent toujours le glisser, le survol et le clic.

Vue chronologie Salesforce avec des réservations de plusieurs jours qui se chevauchent, empilées en couloirs sous chaque ressource, une flèche de dépliage sur chaque ligne à plusieurs couloirs et une bande de capacité combinée en haut
Les réservations qui se chevauchent s'empilent en couloirs. La bande du haut montre le taux de remplissage de chaque jour.

Chronologie : replanifier par glisser-déposer

Avec Enable Edit Mode activé, les barres de la Chronologie se déplacent à la souris. Saisissez le milieu pour décaler une réservation sur d'autres jours, un bord pour changer son début ou sa fin. La barre montre où elle va atterrir et s'enregistre dès que vous relâchez. En zoom Jour, les mêmes gestes changent les heures.

Démo animée de la replanification sur la chronologie MultiDatePick dans Salesforce : tirer le bord droit d'une mission la prolonge de deux jours, puis faire glisser une autre mission la décale de deux jours ; chaque changement s'enregistre au relâchement et les nouvelles dates s'affichent sur la barre
Étirez une réservation par son bord, faites glisser une autre vers des jours plus tard. Chaque changement s'enregistre au relâchement.

Planifiez des personnes, pas seulement des salles

Resource Object API Name accepte n'importe quel objet. Choisissez User : la Chronologie devient un planning d'équipe, la Semaine une grille de postes et l'Occupation un tableau de bord de la capacité de l'équipe.

  • User n'a pas de champ de capacité standard. Ajoutez-en un personnalisé (par exemple Daily Capacity) pour voir l'Occupation en pourcentages.
  • Associez Business Hours Start Field (Champ Début des heures ouvrables) et Business Hours End Field (Champ Fin des heures ouvrables) à des champs de User : la grille Semaine suit alors les horaires de chaque personne.

La Config Library propose deux exemples prêts à l'emploi : Planification de la capacité des équipes et Planning des postes du personnel.

MultiDatePick affiche les réservations Salesforce dans les cinq vues : chronologie des ressources, calendrier mensuel, heatmap d'occupation, grille hebdomadaire et agenda
Les mêmes réservations dans les cinq vues.

8. Réservation de ressources & capacité (composant Booking)

Ressource unique

L'utilisateur choisit une ressource dans une liste déroulante. La grille horaire charge les réservations et la capacité de cette ressource.

Plusieurs ressources

Activez Allow Multiple Resources et la liste déroulante devient des cases à cocher. La grille ne montre que les créneaux libres sur toutes les ressources cochées, et Enregistrer les réserve toutes en une fois.

Calendrier de réservation Salesforce en mode multi-ressources avec deux ressources cochées, montrant une grille de capacité combinée avec des badges X/Y sur chaque créneau
Deux ressources cochées. Chaque badge indique les réservations par rapport à la capacité des deux.

Capacité

Plusieurs réservations peuvent partager un créneau, avec des badges 3/5 en temps réel. Un créneau complet n'accepte plus de réservation.

ParamètreRôleNom d'API
Capacity FieldUn champ numérique sur la ressource, par exemple Capacity = 5.capacityField
Show Availability CountAffiche les badges X/Y.showAvailabilityCount
Capacity AggregationCombined (par défaut) additionne les réservations et les capacités des ressources cochées : deux salles de 5 affichent 0/10. Distinct compte une seule fois un événement réservé sur plusieurs ressources et retient la plus grande capacité individuelle : un cours dans 4 salles affiche 1/5, et non 4/20.capacityAggregation
La capacité a besoin des deux champs d'heure de réservation. Sans Booking Start Time Field (Champ Heure de début) et Booking End Time Field (Champ Heure de fin), il n'y a aucun créneau à compter, et le composant affiche une bannière orange à la place du calendrier.

Conflits

Conflict Behavior décide de ce qui se passe quand un créneau choisi est déjà pris. Conflict Look-Ahead Days fixe jusqu'où vérifier (360 jours par défaut).

ValeurCe qui se passeIdéal pour
Block (par défaut)Un créneau pris ne peut pas être choisi, et l'enregistrement s'arrête en mettant les conflits en évidence.La plupart des pages de réservation
SkipEnregistre les créneaux libres et ignore ceux qui sont pris. Les dates ignorées sont renvoyées dans Conflict Dates (Output).Prendre tout ce qui reste libre sur de nombreuses dates
AllowAucune vérification des conflits. Les réservations peuvent dépasser la capacité.Surréservation volontaire

Une fermeture l'emporte toujours. Rien ne s'enregistre sur un créneau bloqué, même avec Allow.

9. Limiter ce que les utilisateurs sélectionnent

Plafonnez ce qu'une personne peut choisir, en nombre de dates ou de créneaux.

ParamètreRôleNom d'API
Max Dates Allowed
Booking : Max Dates Per Booking
Le nombre maximal de dates qu'un utilisateur peut choisir. 0 signifie sans limite.maxSelections
Max Time SlotsLe nombre maximal de créneaux au total, toutes dates confondues. 0 signifie sans limite. Mettez 1 pour un seul rendez-vous par personne.maxTimeSlotSelection
Earliest / Latest Selectable DateGrise les dates en dehors de bornes fixes.minDate / maxDate
Book Up To / Minimum NoticeUne fenêtre glissante : jusqu'à N jours à l'avance, avec au moins N heures de préavis.maxDaysAhead / minNoticeHours
Buffer Between BookingsGarde un temps de battement libre après chaque réservation.bufferMinutes
Add to CalendarAprès l'enregistrement, un seul fichier .ics pour tout ce qui vient d'être enregistré.showAddToCalendar
Allow Past DatesDésactivé, seules aujourd'hui et les dates futures sont proposées. Activé par défaut pour Date et Date Time, désactivé pour Booking.allowPastDates
Max Dates Allowed limite les dates, pas les créneaux. Avec une limite de 1, un utilisateur peut encore choisir plusieurs créneaux sur cette date. Ajoutez Max Time Slots (Créneaux max.) pour limiter le nombre de réservations.

10. Bloquer des dates, des heures & des ressources (fermetures)

Tout calendrier peut lire des fermetures depuis un autre objet et griser les dates, créneaux ou ressources concernés : les utilisateurs ne réservent que lorsque vous êtes ouvert. Faites pointer quelques paramètres sur l'objet des fermetures et le composant fait le reste. Le blocage de journées entières fonctionne sur les trois composants. Le blocage d'heures et de ressources nécessite la grille horaire de Date Time ou Booking.

Bloquer ou masquer : quelle différence ?

Les deux se ressemblent mais font l'inverse l'un de l'autre. Bloquer retire de la disponibilité : le créneau s'affiche mais ne peut pas être réservé. Masquer retire des enregistrements de l'affichage, ce qui libère leurs créneaux.

Bloquer (fermetures) Masquer (par statut)
Ce que ça contrôleLes dates, heures et ressources réservablesLes enregistrements sauvegardés qui s'affichent
ParamètreBlocked Dates Object (Objet des dates bloquées) et ses champs date, heure et ressourceIgnored Statuses
Piloté parUne liste de fermetures ou de jours fériés : son propre objet, ou votre objet de réservation filtréUne valeur de statut sur les enregistrements eux-mêmes
Ce que voient les utilisateursLe créneau est là, mais barré, grisé et non cliquableL'enregistrement disparaît du calendrier
Effet sur la capacitéRetire de la disponibilitéLibère de la disponibilité : l'enregistrement masqué n'est plus compté
Les donnéesAucune réservation n'existe : vous marquez le créneau comme interditLes enregistrements existent toujours dans Salesforce
À utiliser pourJours fériés, fenêtres de maintenance, une salle ou une région ferméeLes réservations Cancelled ou Rejected qui ne doivent ni encombrer la grille ni compter dans la capacité
Un même statut peut servir aux deux, selon la fonctionnalité à laquelle vous le reliez. Prenons une réservation Cancelled :
  • Ignored Statuses = Cancelled → la réservation disparaît et son créneau se libère.
  • Blocked Dates Object = votre objet de réservation, filtré sur Status = Cancelled → la réservation bloque sa date pour que personne ne la reprenne.
Masquez pour libérer le créneau. Bloquez pour le garder interdit.

Les paramètres des dates bloquées

ParamètreRôleNom d'API
Blocked Dates ObjectL'objet qui contient les fermetures, par exemple un objet Office Closure ou votre objet de réservation. Le renseigner active le blocage.blockedDatesSourceObject
Blocked Dates Date FieldLe champ date de cet objet.blockedDatesDateField
Blocked Dates Start / End Time FieldChamps d'heure facultatifs. Renseignez les deux pour des blocages d'une partie de la journée ; laissez-les vides pour des blocages sur la journée entière. Date Time et Booking.blockedDatesStartTimeField / blockedDatesEndTimeField
Blocked Dates Resource FieldChamp de référence facultatif qui limite une fermeture à une seule ressource. Vide, la fermeture s'applique à toutes les ressources. Booking.blockedDatesResourceField
Blocked Dates Filter Field / ValuePérimètre facultatif, comme Region = North ou Status = Cancelled. C'est ainsi qu'une même table de fermetures sert plusieurs calendriers.blockedDatesFilterField / blockedDatesFilterValue

Trois niveaux de blocage

  1. Journée entière : une fermeture sans heures grise toute la date. Sur les trois composants. Une date fermée reste fermée, même si elle a déjà des réservations.
  2. Partie de la journée : une fermeture avec une heure de début et de fin bloque uniquement ces créneaux. Le reste de la journée reste réservable. Les créneaux bloqués apparaissent dès qu'une date est sélectionnée.
  3. Une ressource : une fermeture qui pointe vers une ressource ne ferme que celle-ci. Dans une vue à ressource unique, le créneau est barré. Dans la vue combinée, il reçoit un petit marqueur dans le coin et reste réservable sur les ressources ouvertes.

Vous utilisez la grille horaire ? Il vous faut des blocages sur une partie de la journée. Les blocages de journée entière conviennent aux sélecteurs de dates seules.

Deux modèles pour l'objet des fermetures

  • Le même objet, marqué par un statut : faites pointer Blocked Dates Object sur votre objet de réservation et filtrez sur Status = Cancelled, pour que les réservations annulées servent aussi de fermetures. C'est le plus simple, mais tous les calendriers de cet objet les partagent. Voir la configuration Prise de rendez-vous avec jours fériés dans la Config Library.
  • Un objet de fermeture dédié : un objet Office Closure avec une date, des heures de début et de fin facultatives, un champ Region et une référence facultative à une ressource. Chaque calendrier filtre sur sa région, et une fermeture peut cibler une seule ressource. Voir la configuration Fermetures de ressources à l'heure près.

Pour que chacun bloque son propre temps (un responsable qui bloque une matinée, par exemple), placez un composant Date Time qui enregistre dans l'objet des fermetures sur une page interne ou un site.

Comportement des créneaux bloqués

  • Apparence : un créneau entièrement fermé est barré et grisé. Un créneau fermé pour une partie seulement des ressources choisies reçoit un marqueur dans le coin.
  • Sélection : un créneau entièrement fermé ne peut être ni cliqué ni survolé en glissant.
  • Enregistrement : rien ne s'enregistre sur une ressource, une date et une heure fermées. Avec plusieurs ressources, seule la ressource fermée est écartée ; les autres sont réservées normalement.

Une table de fermetures, plusieurs calendriers

Ajoutez un champ d'étiquette à l'objet des fermetures (Region, Location, Building) et le même champ sur vos ressources. Chaque calendrier utilise alors Resource Filter Field / Value (Champ filtre de ressource / Valeur du filtre de ressource) pour afficher ses propres ressources et Blocked Dates Filter Field / Value (Champ filtre / Valeur de filtre des dates bloquées) pour lire ses propres fermetures.

11. Pages publiques pour invités (Experience Cloud)

Placez un composant sur un site Experience Cloud et n'importe qui peut réserver sans se connecter. Faites les cinq étapes avant de tester en tant qu'invité.

  1. Autorisations sur les objets. Donnez à l'utilisateur invité du site la Lecture, plus la Création si les invités soumettent quelque chose, sur chaque objet. Salesforce n'autorise jamais les invités à modifier ou supprimer des enregistrements : réservez les pages de modification, d'annulation et de suppression aux utilisateurs connectés.
  2. Sécurité au niveau du champ sur chaque champ utilisé par le composant, y compris les champs d'heures ouvrables des ressources et les champs d'heure des fermetures. Un seul champ manquant fait échouer la requête des ressources ou des fermetures.
  3. Une règle de partage invité (Lecture) pour que l'invité voie les enregistrements. Le paramètre par défaut externe à l'échelle de l'organisation de l'objet doit être Privé pour que la règle s'applique. Une règle déployée sous forme de métadonnées demande un clic sur Recalculer dans Configuration, Paramètres de partage.
  4. L'ensemble d'autorisations MultiDatePick - Guest sur l'utilisateur invité du site. Il donne accès aux classes Apex par lesquelles le composant charge ses données.
  5. Activez le site. Publier et activer sont deux étapes distinctes.
Calendrier vide pour les invités ? Si les objets, les champs et l'accès aux classes semblent corrects, c'est presque toujours le recalcul du partage de l'étape 3. Les étapes 4 et 5 sont ensuite les plus souvent oubliées.
  • Quel enregistrement voient les invités : une page publique utilise Static Parent Record Id, donc tous les invités réservent sur le même parent (un bureau, un lieu ou une ressource). Pour un enregistrement par visiteur, pilotez-le depuis un flux avec un paramètre d'URL. De vrais calendriers par utilisateur nécessitent des utilisateurs connectés.
  • Contacts et comptes : Salesforce limite fortement l'accès des invités à ces objets. Faites réserver les invités sur un objet personnalisé, ou utilisez un site authentifié.
  • Plusieurs composants sur une même page : ils ne se synchronisent pas en direct. Ajoutez une invitation à actualiser entre eux pour qu'un blocage fait dans l'un apparaisse dans le suivant.

Les étapes de placement sont décrites dans Pages d'application, d'accueil & Experience. Un site complet en exemple se trouve dans Réservation sur Experience Cloud.

12. Pièges fréquents (FAQ)

Une bannière, un bouton Enregistrer absent ou un calendrier vide ? Le Dépannage montre chaque message avec une capture d'écran et la solution.

Mes couleurs de statut ne s'appliquent pas
Vérifiez trois choses. (a) Status Field contient-il exactement le nom d'API de la liste de sélection ? Il est sensible à la casse. (b) Status Colors respecte-t-il le format Value:#hex, Value:#hex sans guillemets ? 'Confirmed':'#22C55E' le casse sans aucun message. (c) Les enregistrements ont-ils réellement une valeur dans cette liste de sélection ?
Les enregistrements sont sauvegardés avec des noms inattendus
Vérifiez Record Name Field (Champ Nom d'enregistrement) : si le champ est court, les noms longs sont tronqués. Vérifiez Append Date to Record Name (Ajouter date/heure au nom) : activé, il ajoute la date et l'heure sélectionnées à chaque nom.
Comment masquer les enregistrements Cancelled de la grille de capacité ?
Mettez Ignored Statuses sur Cancelled, ou une liste comme Cancelled,Rejected. Ils disparaissent du calendrier et du calcul de la capacité.
Quelle différence entre bloquer et masquer ?
Bloquer (fermetures) laisse une date, une heure ou une ressource visible mais non réservable : jours fériés, maintenance, salle fermée. Masquer retire du calendrier et de la capacité des enregistrements comme ceux en Cancelled, ce qui libère le créneau. Voir Bloquer ou masquer.
Le bouton de modification n'apparaît pas
Activez Enable Edit Mode. C'est la seule condition, sur les trois composants. Un Status Field est facultatif : il ajoute seulement une liste déroulante de statut dans l'éditeur. Si le bouton manque toujours, Enable Edit Mode est désactivé sur la page ou dans la configuration.
Je ne veux que certaines ressources (les salles, pas le matériel)
Utilisez Resource Filter Field et Resource Filter Value. Une valeur : champ Active__c, valeur true. Plusieurs valeurs (OU) : North,South. Plusieurs champs (ET) : champ Type__c;Active__c, valeur Conference Room;true.
Date Time affiche toujours un seul sélecteur d'heure commun
Le paramètre à utiliser est Time Display Mode (Mode d'affichage des heures) : Grid ou Dropdown. En mode Grid, toutes les dates partagent la grille. Pour une heure différente par date, choisissez Dropdown et activez Allow Different Times Per Date (Autoriser des heures différentes).
Comment passer de l'enregistrement géré par le flux à Click to Save ?
Renseignez Parent Record Id, Child Object API Name, Date Field API Name et Relationship Field API Name. Supprimez l'action Parse Date Entries from JSON et la boucle qui créait les enregistrements. C'est désormais le bouton Enregistrer du composant qui les écrit.
J'obtiens une notification d'erreur sans détail
Ouvrez la console de développement du navigateur et cherchez les lignes qui commencent par [MDP:ERROR]. L'erreur complète y est toujours journalisée, même quand la notification est courte.

13. Recettes de flux

Tout se construit dans Flow Builder. Sans Apex.

Parcourir les dates sélectionnées dans une boucle

  1. Ajoutez un écran avec le composant Date Time. Laissez vides les paramètres de Click to Save.
  2. Après l'écran, ajoutez l'action Parse Date Entries from JSON. Passez-lui Dates With Times JSON (Output).
  3. Parcourez la liste renvoyée par l'action avec une Boucle. Chaque élément a une date de début, une date de fin, une heure de début et une heure de fin.
  4. Dans la boucle, affectez les valeurs à une variable d'enregistrement et ajoutez-la à une collection. Créez les enregistrements en une seule fois, après la boucle.

Remonter la première et la dernière date sur le parent

Vous voulez que le parent affiche la date enfant la plus ancienne et la plus récente ? Choisissez la méthode sans code adaptée à vos données.

Votre configurationQue faire
Relation principal-détailsAjoutez deux champs de récapitulatif de cumul sur le parent : MIN du champ date et MAX du champ date. C'est tout.
Relation de référenceUn flux déclenché par un enregistrement sur l'enfant (après l'enregistrement). Obtenir des enregistrements sur l'objet enfant pour le même parent, triés par date croissante, premier enregistrement uniquement. Faites de même par ordre décroissant. Mettez à jour la date de début et de fin du parent avec ces deux dates.

D'autres modèles de flux : Guide des flux d'écran.

14. Correspondance des objets & champs

Chaque page de composant propose un schéma complet de correspondance des objets et des champs :

Les composants fonctionnent avec n'importe quel objet. Les objets d'exemple du package (Schedule, Event, Resource, Sub Block) ne sont que des valeurs par défaut. Faites pointer les paramètres sur vos propres objets, personnalisés ou standard, qui ont les bons champs.

15. Référence de toutes les propriétés

Chaque paramètre des trois composants, sous le libellé affiché dans Lightning App Builder, Experience Builder et Flow Builder. Le nom d'API figure sous chaque libellé.

Toutes les propriétés Plus de 100 propriétés Cliquez pour déplier : recherche possible
Propriété Date Date Time Booking Type Par défaut Description
Configuration
Config NameconfigName✓✓✓StringvideFacultatif : DeveloperName d'un enregistrement Config__mdt créé par l'assistant de configuration. S'il est renseigné, tous les paramètres de champs et d'objets de cette configuration s'appliquent par défaut. Les propriétés texte et numériques définies ici remplacent celles de la configuration. Les cases à cocher viennent toujours de la configuration : une case décochée ne se distingue pas d'une case jamais renseignée.
Vues
Viewview✓✓✓StringcalendarLe rendu à utiliser. calendar est la grille mensuelle (par défaut). timeline affiche les ressources en lignes et les dates en colonnes. week est une grille jours par heures. utilization est une heatmap de capacité, en lecture seule. agenda est une liste chronologique, en lecture seule.
Available ViewsavailableViews✓✓✓StringvideListe, séparée par des virgules, des vues proposées par le sélecteur, par ex. calendar,timeline,agenda. Laissez vide pour proposer les cinq. La vue par défaut (View ci-dessus) est toujours incluse.
Timeline Window (Days)timelineWindowDays✓✓✓Integer14Le nombre de jours affichés à la fois par la vue Chronologie. Sur un mois entier, chaque réservation ne fait qu'une vingtaine de pixels de large et tous les libellés sont coupés : la valeur par défaut est donc 14. Mettez 0 pour afficher le mois complet.
Timeline ZoomtimelineZoom✓✓✓StringweekLe zoom de départ de la vue Chronologie : day (les heures d'une journée), week (la Timeline Window) ou month. Les utilisateurs peuvent changer de zoom en cours de consultation.
Timeline Group By FieldtimelineGroupByField✓✓✓StringvideNom d'API d'un champ de l'objet ressource (par exemple Building__c) qui regroupe les lignes de la Chronologie sous des en-têtes avec une bande de capacité. Laissez vide pour une liste unique.
Max View ResourcesmaxViewResources✓✓✓Integer0Le nombre maximal de lignes de ressources affichées par les vues Chronologie et Occupation, les plus chargées en premier. Évite qu'une longue liste de ressources transforme l'une ou l'autre vue en mur illisible.
Agenda FieldsagendaFields✓✓✓StringvideChamps, séparés par des virgules, à afficher sur chaque ligne de la vue Agenda, après le nom de l'enregistrement. Laissez vide pour reprendre les Hover Fields. Les champs date, heure et nom sont ignorés automatiquement, car la ligne les affiche déjà.
Resource RowsresourceViewFilter✓✓✓StringallQuelles ressources ont une ligne dans la Chronologie et l'Occupation. all affiche toutes les ressources ; booked n'affiche que celles qui ont une réservation dans la période visible. C'est la meilleure façon de raccourcir une longue liste de ressources, car masquer une ligne vide ne fait rien perdre.
Affichage et mise en page
Button Labellabel✓✓✓StringDate : Sélectionner les dates ; Date Time : Sélectionner les dates & les heures ; Booking : Réserver une ressourceLe texte du bouton qui ouvre le sélecteur de dates. Exemple : « Choisir des dates » ou « Ajouter des dates »
Calendar TitlemodalTitle✓✓✓StringDate : Sélectionner les dates ; Date Time : Sélectionner les dates & les heures ; Booking : Réserver une ressourceLe titre affiché en haut de la fenêtre du calendrier.
Show Inline (Always Visible)Apparaît aussi sous le nom Show Inline (No Button)showInline✓✓✓BooleantrueActivé, le calendrier est toujours visible, sans clic sur un bouton. Désactivé, un bouton ouvre le calendrier dans une fenêtre contextuelle.
Two-Month ViewtwoMonthView✓✓✓BooleanfalseActivé, affiche deux mois côte à côte pour sélectionner plus facilement une plage. Désactivé, affiche un mois à la fois.
Calendar SizecalendarSize✓✓✓StringmediumRègle la taille globale du calendrier. Valeurs possibles : tiny, xsmall (très petit), small, medium, large. Par défaut : medium. Utilisez tiny ou xsmall pour les barres d'utilitaires, les barres latérales et les vignettes de tableau de bord, small pour les espaces réduits, medium pour la plupart des mises en page, large pour les écrans tactiles.
Day Header FormatdayHeaderFormat✓✓✓String3Longueur des en-têtes des jours de la semaine. Valeurs possibles : 3, 2, 1. Par défaut : 3. 3 = LUN MAR MER, 2 = LU MA ME, 1 = L M M.
Week Starts on MondayweekStartsOnMonday✓✓✓BooleanfalseActivé, la semaine commence le lundi (norme ISO, l'usage en France). Désactivé, elle commence le dimanche (usage américain).
Show Recurring Pattern ButtonshowRecurringPattern✓✓✓BooleantrueActivé, affiche un bouton qui permet de sélectionner rapidement tous les jours de semaine, les week-ends ou certains jours précis jusqu'à une date de fin.
Show Selection SummaryshowSelectedSummary✓✓✓BooleantrueActivé, affiche un résumé du nombre de dates sélectionnées et de leur liste.
Show Done Button in Inline ModeshowDoneButtonInline✓✓✓BooleanfalseActivé avec Show Inline, affiche un bouton Terminé qui replie le calendrier en un résumé.
Show In-Component ToastshowSuccessToast✓✓✓BooleanfalseAffiche la notification de succès ou d'erreur dans le composant lui-même (indispensable sur les sites Experience, où la notification standard n'apparaît pas). Fonctionne aussi sur les pages d'enregistrement.
Show Add to Calendar After SavingshowAddToCalendar✓✓✓BooleanfalseAprès un enregistrement réussi, un bouton Ajouter au calendrier télécharge un fichier de calendrier (.ics) contenant un événement pour chaque enregistrement créé. Il s'ouvre dans Outlook, Google Agenda et Apple Calendar, et fonctionne pour les invités Experience Cloud. Les enregistrements sans heure deviennent des événements sur la journée entière ; les autres gardent leurs heures.
Calendar File Location FieldcalendarLocationField✓StringvideNom d'API d'un champ de l'objet ressource dont la valeur devient le lieu de chaque événement du fichier Ajouter au calendrier, par exemple l'adresse d'une salle, ou Name pour la salle elle-même. Laissez vide quand les ressources sont des personnes, comme des conseillers ou des techniciens : elles sont déjà nommées dans le titre de l'événement, et une personne n'est pas un lieu. Nécessite Show Add to Calendar After Saving.
Success Toast Message (optional)successToastMessage✓✓✓StringvideMessage personnalisé facultatif après un enregistrement réussi. Vide, le message par défaut est utilisé.
Règles de sélection
Requiredrequired✓✓✓BooleanfalseActivé, l'utilisateur doit sélectionner au moins une date avant que le flux puisse passer à l'écran suivant.
Max Dates AllowedApparaît aussi sous le nom Max Dates Per BookingmaxSelections✓✓✓Integer0Nombre maximal de dates qu'un utilisateur peut sélectionner. 0 = illimité.
Max Time SlotsmaxTimeSlotSelection✓✓Integer0Nombre maximal de créneaux qu'un utilisateur peut sélectionner au total (toutes dates confondues). 0 = illimité.
Allow Past DatesallowPastDates✓✓✓BooleanDate : true ; Date Time : true ; Booking : falseActivé, les utilisateurs peuvent sélectionner n'importe quelle date passée. Désactivé, seules aujourd'hui et les dates futures sont sélectionnables.
Earliest Selectable DateApparaît aussi sous le nom Earliest Bookable DateminDate✓✓✓DatevideLa première date sélectionnable. Les dates antérieures sont grisées. Pour empêcher les réservations le jour même, utilisez plutôt Minimum Notice, qui avance avec l'horloge.
Latest Selectable DateApparaît aussi sous le nom Latest Bookable DatemaxDate✓✓✓DatevideLa dernière date sélectionnable. Les dates postérieures sont grisées.
Book Up To (Days Ahead)maxDaysAhead✓✓✓Integer0Une fenêtre de réservation glissante : la dernière date sélectionnable est aujourd'hui plus ce nombre de jours, et elle avance chaque jour. 0 signifie sans limite. Si Latest Selectable Date est aussi renseigné, c'est la plus proche des deux qui s'applique.
Minimum Notice (Hours)minNoticeHours✓✓✓Integer0Rien qui commence avant maintenant plus ce nombre d'heures ne peut être choisi ni enregistré. Les jours précédents sont grisés et, le jour limite, les premiers créneaux se ferment. La règle est revérifiée à l'enregistrement : une page restée ouverte toute la nuit ne peut pas réserver dans le délai de préavis. 0 signifie aucun minimum.
Pre-Selected DatesdefaultDates✓✓✓String[]videLes dates déjà sélectionnées à l'ouverture du calendrier. Au format ISO (YYYY-MM-DD).
Blocked DatesdisabledDates✓✓✓String[]videDes dates précises qui ne peuvent pas être sélectionnées (affichées en grisé). Pour les jours fériés ou les dates d'interdiction. Au format ISO (YYYY-MM-DD).
Only These Dates Are SelectableavailableDates✓✓✓String[]videS'il est renseigné, SEULES ces dates sont sélectionnables : toutes les autres sont grisées. Au format ISO (YYYY-MM-DD). Utile quand les dates valides viennent d'une autre source dans votre flux.
Auto-Jump to First Available DateautoJumpToFirstAvailable✓✓✓BooleanfalseActivé avec « Only These Dates Are Selectable » renseigné, le calendrier s'ouvre directement sur le mois de la première date disponible.
Allow Whole-Day (No Times)allowWholeDayNoTimes✓✓BooleanfalseActivé, une date sélectionnée sans créneau horaire est enregistrée comme un enregistrement sur la journée entière (la journée est bloquée ou réservée en entier). Les dates avec créneaux sont enregistrées avec leurs heures.
Enregistrements et sauvegarde
Parent Record IdrecordId✓✓✓StringvideS'il est renseigné, le composant fonctionne en mode Click to Save et écrit des enregistrements enfants liés à ce parent. Passez un Id d'enregistrement issu d'un élément Obtenir des enregistrements ou d'une sortie recordCreate (par ex. {!recordVar.Id}). Laissez vide pour utiliser le modèle standard action d'analyse + boucle + création.
Static Parent Record IdstaticRecordId✓✓✓StringvideCas particulier : codez en dur un Id d'enregistrement pour attacher ce calendrier à un seul enregistrement parent. Fonctionne sur une page d'enregistrement, une page d'application (Id statique requis), une page d'accueil (Id statique requis) et un site Experience (Id statique requis). Sur une page d'enregistrement, laissez vide : l'enregistrement de la page est injecté automatiquement.
Parent Record Id FieldparentRecordIdField✓✓✓StringvideUtile uniquement quand ce composant se trouve sur la page d'enregistrement d'un AUTRE objet que le parent. Saisissez le nom d'API du champ de référence qui pointe vers le vrai parent. Laissez vide si le composant est sur la page de l'objet parent.
Child Object API NameApparaît aussi sous les noms Related Booking Object API Name ; Child Object API Name (for preload)relatedObjectApiName✓✓✓StringvideNom d'API de l'objet où chaque date sélectionnée est enregistrée. Exemple : Appointment__c, Schedule_Entry__c. Obligatoire pour Click to Save.
Date Field API NameApparaît aussi sous le nom Date Field API Name (for preload)dateFieldApiName✓✓✓StringvideNom d'API du champ Date de l'objet enfant qui stocke la date sélectionnée. Exemple : Event_Date__c, Start_Date__c
End Date Field API NameApparaît aussi sous le nom End Date FieldendDateField✓✓✓StringvideNom d'API d'un champ date de fin sur l'objet enfant. S'il est renseigné, les dates sélectionnées adjacentes sont regroupées en un seul enregistrement avec une date de début et de fin, au lieu d'un enregistrement par date. Exemple : End_Date__c
Relationship Field API NameApparaît aussi sous le nom Parent Record Relationship FieldrelationshipFieldApiName✓✓✓StringvideNom d'API du champ de référence de l'objet enfant qui le relie à l'enregistrement parent. Exemple : Account__c, Contact__c, Order__c
Load Existing DatesApparaît aussi sous le nom Load Existing BookingspreloadExistingDates✓✓✓BooleantrueActivé, interroge les enregistrements enfants existants et affiche leurs dates dans le calendrier au chargement. Nécessite Child Object, Date Field et Relationship Field.
Existing Dates ModeApparaît aussi sous le nom Existing Bookings ModepreloadMode✓✓✓StringeditableDéfinit l'affichage des dates chargées. Ne s'applique que si Load Existing Dates est activé. Valeurs possibles : editable, readonly. Par défaut : editable. editable = les dates sont sélectionnées et modifiables. readonly = les dates apparaissent grisées et ne peuvent pas être retirées. Dans un flux, ce champ est un texte libre : saisissez exactement l'une de ces valeurs.
Save Button LabelsaveButtonLabel✓✓✓StringEnregistrerLe texte du bouton d'enregistrement en mode Click to Save. Exemple : « Enregistrer les dates », « Confirmer la sélection »
Record Name FieldrecordNameField✓✓✓StringvideNom d'API d'un champ texte de l'objet enfant où un libellé d'enregistrement est stocké. S'il est renseigné, une zone de saisie permet aux utilisateurs d'entrer ce libellé.
Default Record NamedefaultRecordName✓✓✓StringvidePréremplit la zone de nom de l'enregistrement. Les utilisateurs peuvent le modifier. Exemple : « Jour de congé », « Réunion d'équipe ».
Append Date/Time to Record NameApparaît aussi sous le nom Append Date to Record NameappendDateTimeToName✓✓✓BooleantrueActivé, ajoute la date au nom de l'enregistrement.
Statut et modification
Status FieldstatusField✓✓✓StringvideNom d'API d'un champ liste de sélection ou statut de l'objet enfant. S'il est configuré, une liste déroulante de statut apparaît à côté du nom de l'enregistrement pour que les utilisateurs attribuent un statut en sélectionnant les dates. Requis pour Status Colors, Ignored Statuses, Status Field Label et Enable Edit Mode. Exemple : Status__c
Status ColorsstatusColors✓✓✓StringvideCorrespondance, séparée par des virgules, entre valeurs de statut et couleurs hexadécimales. Format : Value:#hex. Les couleurs de statut s'affichent dans les cases de date du calendrier. Nécessite Status Field. Exemple : Confirmed:#22C55E, Tentative:#fbbf24, Pending:#60a5fa, Cancelled:#a1a8b5
Status Color DisplaystatusColorDisplay✓✓✓StringDate : calendar ; Date Time : both ; Booking : bothOù les couleurs de statut s'affichent. Pour le composant Dates, seule la valeur « calendar » est disponible : les cases de date du calendrier prennent la couleur de leur statut.
Ignored StatusesApparaît aussi sous le nom Ignored StatuseshideBookingsWithStatus✓✓✓StringvideListe, séparée par des virgules, des valeurs de statut dont les enregistrements sont masqués dans le calendrier. Les enregistrements masqués ne sont plus affichés mais restent dans Salesforce. Nécessite Status Field. Exemple : Cancelled, Rejected
Selectable Statuses (Status Picker)selectableStatuses✓✓✓StringvideValeurs de statut, séparées par des virgules, que le sélecteur de statut de réservation peut attribuer. Laissez vide pour toutes les autoriser (back-office). Par ex. « Scheduled » pour un site client. Quand un seul statut est sélectionnable, il est choisi automatiquement et le sélecteur est masqué. Nécessite Status Field.
Second Picklist FieldsecondStatusField✓✓✓StringvideNom d'API facultatif d'une seconde liste de sélection que l'utilisateur renseigne à l'enregistrement (par ex. Reason__c). Sans code couleur : c'est statusField qui pilote les couleurs du calendrier. Ajoutez-la à Hover Popover Fields pour l'afficher. Fonctionne dans les flux, App Builder et les Communities.
Second Picklist LabelsecondStatusFieldLabel✓✓✓StringvideLibellé d'affichage facultatif pour la liste déroulante de la seconde liste de sélection. Vide, le composant dérive un libellé lisible du nom d'API du champ.
Selectable Second-Picklist ValuesselectableSecondStatuses✓✓✓StringvideListe blanche facultative, séparée par des virgules, des valeurs que l'utilisateur peut choisir dans la seconde liste de sélection. Laissez vide pour toutes les autoriser. Quand une seule valeur est listée, elle est choisie automatiquement et le sélecteur est masqué.
Status Field LabelstatusFieldLabel✓✓✓StringvideLibellé d'affichage facultatif de la liste déroulante de statut vue par les utilisateurs finaux. N'indiquez PAS de nom d'API de champ ici : c'est uniquement un libellé. Vide, le composant dérive un libellé lisible du nom d'API de Status Field.
Hover Popover FieldshoverFields✓✓✓StringvideListe, séparée par des virgules, des noms d'API de champs à afficher au survol d'une date du calendrier qui a des enregistrements existants. Les champs sont lus sur le Child Object. Les champs de relation sont pris en charge. N'affiche des données que si les enregistrements existants sont chargés (via Load Existing Dates). Exemple : Name, Status__c, Notes__c. Laissez vide pour désactiver l'info-bulle au survol.
Enable Edit ModeenableEditMode✓✓✓BooleantrueActivé, les utilisateurs peuvent cliquer sur des dates existantes pour modifier la date ou le statut, ou supprimer l'enregistrement. Nécessite que Status Field ET Status Colors soient configurés.
Edit Button LabeleditButtonLabel✓✓✓StringvideLibellé personnalisé du bouton qui active le mode édition. Vide, il affiche « Modifier les dates ».
Edit Record DisplayeditRecordDisplay✓✓✓StringvideMots-clés, séparés par des virgules, qui définissent les champs affichés dans la liste des enregistrements du mode édition, et leur ordre. Mots-clés : name, status, time, date, resource. Par défaut si vide : name, status, time. Exemple : name, date, status
Créneaux horaires
Time Display ModetimeDisplayMode✓StringgridMode de présentation des heures. Valeurs possibles : grid, dropdown. Par défaut : grid. grid = une grille de créneaux où les utilisateurs cliquent ou font glisser pour choisir des blocs horaires. dropdown = des sélecteurs d'heure lightning-input. En mode dropdown, Allow Different Times Per Date choisit entre un sélecteur commun et un sélecteur par date. Dans un flux, ce champ est un texte libre : saisissez exactement l'une de ces valeurs.
Time Interval (Minutes)Apparaît aussi sous le nom Time Slot Interval (Minutes)timeInterval✓✓Integer30Minutes entre deux créneaux. N'importe quel nombre entier fonctionne ; 15, 30 ou 60 minutes sont courants. Exemple : 30 affiche 9:00, 9:30, 10:00.
Earliest TimeminTime✓String09:00La première heure proposée dans le sélecteur. Au format 24 heures (HH:mm). Exemples : 08:00, 13:00. Laissez vide pour commencer à 00:00.
Latest TimemaxTime✓String18:00La dernière heure proposée dans le sélecteur. Au format 24 heures (HH:mm). Exemples : 17:00, 20:00. Laissez vide pour finir à 23:30.
Start Time FieldApparaît aussi sous le nom Start Time Field API NamestartTimeField✓StringvideNom d'API d'un champ Heure de l'objet enfant pour l'heure de début du créneau. Exemple : Start_Time__c
End Time FieldApparaît aussi sous le nom End Time Field API NameendTimeField✓StringvideNom d'API d'un champ Heure de l'objet enfant pour l'heure de fin du créneau. Exemple : End_Time__c
Allow Different Times Per DateallowDifferentTimes✓✓BooleanfalseActivé avec Time Display Mode sur « dropdown », chaque date a son propre sélecteur d'heure (regroupé par semaine). Désactivé, toutes les dates partagent la même heure. Sans effet quand Time Display Mode est sur « grid ».
Enable End TimeenableEndTime✓BooleantrueActivé, affiche une liste déroulante Heure de fin à côté de l'Heure de début. La sortie JSON contient alors startTime et endTime. Ne s'applique qu'en mode dropdown (Time Display Mode = « dropdown »). Sans effet en mode grid.
Group Time Slots by PeriodgroupTimeSlotsByPeriod✓✓BooleanfalseActivé, les créneaux sont regroupés en sections Matin, Après-midi et Soir. Désactivé (par défaut), la grille est continue. Ne s'applique que si Time Display Mode est sur « grid ».
Time Grid OnlytimeGridOnly✓✓BooleanfalseActivé, masque entièrement le calendrier et n'affiche QUE la grille des créneaux pour une date implicite. L'utilisateur choisit des créneaux ; les enregistrements sont sauvegardés sur l'enregistrement hôte via Click to Save (sans étape de choix de date). La date implicite vient de Time Grid Date, sinon de Time Grid Date Field, sinon c'est aujourd'hui.
Time Grid DatetimeGridDate✓✓StringvideDate ISO explicite facultative (YYYY-MM-DD) pour la date implicite quand Time Grid Only est activé. Priorité la plus haute. Laissez vide pour lire Time Grid Date Field ou, à défaut, prendre aujourd'hui.
Time Grid Date FieldtimeGridDateField✓✓StringvideNom d'API facultatif d'un champ Date de l'enregistrement hôte d'où lire la date implicite quand Time Grid Only est activé (sur une page d'enregistrement). Utilisé seulement si Time Grid Date est vide. Exemple : Appointment_Date__c
Disable Time Slot Grid (Full-Day Mode)disableTimeSlotGrid✓BooleanfalseActivé, masque la grille des créneaux pour les réservations à la journée, où seule la date compte. Désactivé (par défaut), affiche la grille des créneaux pour des réservations à l'heure près.
Ressources et capacité
Resource Object API NameresourceObjectApiName✓StringvideNom d'API de l'objet qui stocke vos ressources réservables. Chaque enregistrement = une ressource réservable proposée dans la liste déroulante. Exemple : Room__c, Equipment__c, Vehicle__c, Staff__c
Resource Name FieldresourceNameField✓StringNameNom d'API du champ qui contient le nom affiché de la ressource. En général « Name ».
Resource Filter Field (optional)resourceFilterField✓StringvideNom d'API d'un champ de l'objet ressource qui limite les ressources proposées dans le sélecteur. À utiliser avec Resource Filter Value. Utilisez « ; » pour combiner plusieurs champs (ET). Exemples : « Active__c » (un champ booléen), « Type__c » (une liste de sélection), « Type__c;Building__c » (DEUX champs combinés par ET). Laissez vide pour afficher toutes les ressources.
Resource Filter Value (optional)resourceFilterValue✓StringvideLa ou les valeurs que doit avoir le champ de filtre. « , » entre les valeurs d'UN même champ = OU (clause IN). « ; » entre les valeurs = ET sur plusieurs champs (autant de valeurs que de champs dans Resource Filter Field). Exemples : « true » : Active=true. « Conference Room » : Type=Conference Room. « North,South » : Building IN North ou South. « Conference Room;North » : Type=Conference Room ET Building=North. « Conference Room;North,South » : Type=Conference Room ET Building IN North ou South.
Business Hours Start FieldbusinessHoursStartField✓StringvideNom d'API du champ Heure de l'objet ressource qui indique quand elle devient disponible chaque jour. Exemple : Business_Hours_Start__c (valeur 08:00:00.000Z pour 8 h). Laissez vide pour proposer des créneaux sur toute la plage configurée.
Business Hours End FieldbusinessHoursEndField✓StringvideNom d'API du champ Heure de l'objet ressource qui indique la dernière heure disponible chaque jour. Exemple : Business_Hours_End__c (valeur 18:00:00.000Z pour 18 h).
Allow Multiple ResourcesApparaît aussi sous le nom Allow Booking Multiple ResourcesallowMultipleResources✓BooleanfalseActivé, les utilisateurs peuvent cocher plusieurs ressources et les réserver toutes en même temps. La grille horaire ne montre que les créneaux libres sur TOUTES les ressources sélectionnées. Exemple : réserver une salle ET un vidéoprojecteur en même temps.
Allow No ResourceApparaît aussi sous le nom Allow Save Without Picking a ResourceallowNoResource✓BooleanfalseActivé, les utilisateurs peuvent enregistrer sans choisir de ressource : la référence à la ressource reste vide sur l'enregistrement. Prévu pour les composants qui saisissent des fermetures ou des interdictions, où une ressource vide signifie « s'applique à tout le monde ». Les calendriers en aval qui lisent les fermetures avec un filtre par ressource (blockedDatesResourceField) traitent une ressource vide comme valable pour toute la région : associé à allowNoResource, on obtient le modèle « ciblage facultatif par conseiller ». Laissez désactivé (par défaut) pour une réservation classique, où une ressource doit toujours être choisie.
Booking Object API NameresourceBookingObject✓StringvideNom d'API de l'objet où les réservations sont créées. Un enregistrement par date et par ressource. Exemple : Room_Booking__c, Equipment_Reservation__c
Booking Date FieldbookingDateField✓StringvideNom d'API du champ Date de l'objet de réservation. Doit être de type Date (et non Date/Heure). Exemple : Booking_Date__c
Booking Resource FieldbookingResourceField✓StringvideNom d'API du champ de référence de l'objet de réservation qui pointe vers la ressource. Exemple : Room__c (référence de Room_Booking__c vers Room__c)
Booking Start Time FieldbookingStartTimeField✓StringvideNom d'API du champ Heure de l'objet de réservation pour l'heure de début. Exemple : Start_Time__c. Laissez vide pour des réservations à la journée, sans créneaux.
Booking End Time FieldbookingEndTimeField✓StringvideNom d'API du champ Heure de l'objet de réservation pour l'heure de fin. Exemple : End_Time__c. L'heure de fin est calculée d'après les créneaux sélectionnés.
Book Button LabelresourceBookButtonLabel✓StringRéserver (Book)Le texte du bouton qui confirme la réservation. Exemple : « Réserver maintenant », « Réserver », « Confirmer la réservation »
Capacity FieldcapacityField✓StringvideNom d'API d'un champ Nombre de l'objet ressource qui définit le nombre maximal de réservations simultanées par créneau. S'il est renseigné, les créneaux affichent un badge X/Y et restent disponibles jusqu'à ce qu'ils soient complets. Idéal pour les salles de formation, les postes en flex office ou les inscriptions à des cours. Laissez vide pour une seule réservation par créneau. Exemple : Capacity__c
Capacity Aggregation (multi-resource)capacityAggregation✓StringCombinedUNIQUEMENT EN MODE RÉSERVATION AVEC CAPACITÉ (nécessite Capacity Field). Définit le calcul de la capacité X/Y quand plusieurs ressources sont sélectionnées. COMBINED (par défaut) additionne les réservations ET les capacités : idéal quand chaque ressource est un stock indépendant (par ex. 4 enregistrements sur 4 salles de capacité 5 = 4/20). DISTINCT compte les événements uniques (les enregistrements qui partagent la même date, la même heure de début et de fin sur plusieurs ressources comptent pour UN) et retient la capacité MAX d'une seule ressource : idéal quand un événement occupe plusieurs ressources à la fois (4 enregistrements sur 4 salles = 1/5).
Show Availability CountshowAvailabilityCount✓BooleantrueActivé, affiche le détail des disponibilités dans le panneau des ressources (par ex. « 3/5 jours disponibles »). Aide les utilisateurs à choisir la meilleure ressource avant de réserver. Nécessite Resource Object API Name.
Conflits
Conflict BehaviorconflictBehavior✓✓StringblockDéfinit ce qui se passe quand des dates sélectionnées entrent en conflit horaire avec des enregistrements existants. « block » (par défaut) : l'enregistrement est bloqué et les dates en conflit sont mises en évidence. « skip » : l'enregistrement a lieu mais les dates en conflit sont ignorées. « allow » : aucune vérification des conflits. Ne s'applique qu'en mode grille commune (Time Display Mode = « grid » + Allow Different Times Per Date désactivé).
Buffer Between Bookings (Minutes)bufferMinutes✓✓Integer0Minutes laissées libres après chaque réservation existante pour le rangement ou la remise en état, par ressource sur Booking. Une heure qui commencerait dans ce battement compte comme prise partout où la disponibilité s'affiche (grille horaire, compteurs de capacité, glisser-déposer dans Semaine) et à l'enregistrement, et Conflict Behavior décide de la suite. Exemple : 15 laisse un quart d'heure entre deux réunions dans la même salle.
Conflict Look-Ahead DaysconflictLookAheadDays✓✓Integer360Nombre de jours à l'avance sur lesquels vérifier les conflits de créneaux et charger les disponibilités. Par défaut : 360. Réduisez-le pour de meilleures performances sur les objets à fort volume.
Sous-blocs
Consolidate Time SpanconsolidateTimeSpan✓✓BooleanfalseActivé, les créneaux sélectionnés sortent sous forme d'une seule plage, du début du premier créneau à la fin du dernier. Les intervalles entre créneaux passent automatiquement en orange et sont suivis comme sous-blocs. Pour les plannings où il faut l'amplitude complète d'un poste (par ex. 9 h-17 h) tout en suivant les pauses à part. Ne s'applique qu'en mode grid.
Sub-Block Button LabelsubBlockModeButtonLabel✓✓StringvideS'il est renseigné, ajoute un bouton bascule qui permet de marquer manuellement des créneaux comme sous-blocs (orange). Utile pour les sous-blocs en bordure de la plage de travail. Laissez vide pour n'utiliser que l'orange automatique. Exemple : « Marquer comme pause », « Marquer comme déjeuner ». Nécessite Consolidate Time Span activé.
Show Sub-Block Toggle ButtonshowSubBlockButton✓✓BooleanfalseActivé, affiche le bouton bascule des sous-blocs dans l'en-tête de la grille horaire. Nécessite Consolidate Time Span activé et Sub-Block Button Label renseigné.
Sub-Block Object API NamesubBlockObjectApiName✓✓StringvideNom d'API de l'objet enfant des enregistrements de sous-blocs. Exemple : Work_Break__c. Nécessite Consolidate Time Span activé et le mode Click to Save (Parent Record Id renseigné).
Sub-Block Parent Lookup FieldsubBlockParentLookupField✓✓StringvideChamp de référence de l'objet sous-bloc qui le relie à l'enregistrement parent. Exemple : Shift__c. Obligatoire quand Sub-Block Object est renseigné.
Sub-Block Date FieldsubBlockDateField✓✓StringvideChamp date de l'objet sous-bloc. Exemple : Break_Date__c. Obligatoire quand Sub-Block Object est renseigné.
Sub-Block Start Time FieldsubBlockStartTimeField✓✓StringvideChamp heure de début de l'objet sous-bloc. Exemple : Break_Start__c. Obligatoire quand Sub-Block Object est renseigné.
Sub-Block End Time FieldsubBlockEndTimeField✓✓StringvideChamp heure de fin de l'objet sous-bloc. Exemple : Break_End__c. Obligatoire quand Sub-Block Object est renseigné.
Sub-Block Name FieldsubBlockNameField✓✓StringvideChamp texte de l'objet sous-bloc qui stocke un libellé. Exemple : Break_Name__c. Obligatoire quand Sub-Block Object est renseigné.
Dates bloquées
Blocked Dates ObjectblockedDatesSourceObject✓✓✓StringvideNom d'API d'un objet à interroger pour trouver les dates à bloquer. Exemple : Public_Holiday__c
Blocked Dates Date FieldblockedDatesDateField✓✓✓StringvideNom d'API du champ Date de l'objet des dates bloquées. Nécessite Blocked Dates Object.
Blocked Dates Start Time FieldblockedDatesStartTimeField✓✓✓StringvideFacultatif : champ Heure de l'objet bloqué qui marque le DÉBUT d'une fermeture partielle. Quand les champs de début et de fin sont renseignés et qu'un enregistrement bloqué a les deux valeurs, seule cette plage horaire est fermée ce jour-là (le reste reste réservable). Laissez vide pour un blocage sur la journée entière.
Blocked Dates End Time FieldblockedDatesEndTimeField✓✓✓StringvideFacultatif : champ Heure de l'objet bloqué qui marque la FIN d'une fermeture partielle. Va de pair avec Blocked Dates Start Time Field.
Blocked Dates Resource FieldblockedDatesResourceField✓✓✓StringvideFacultatif : limite une fermeture existante à une seule ressource. Indiquez le nom d'API d'un champ de référence ou de ressource de l'objet bloqué ; quand la ressource d'un enregistrement bloqué correspond à celle sélectionnée dans le calendrier, seule cette ressource est fermée sur la plage horaire. Laissez vide et chaque fermeture s'applique à TOUTES les ressources (toute la région). Le blocage lui-même est activé par Blocked Dates Source Object, pas par ce champ. N'a de sens qu'avec la réservation de ressources.
Blocked Dates Filter FieldblockedDatesFilterField✓✓✓StringvideFacultatif : champ de filtre sur l'objet bloqué. Deux modes : (a) mode valeur : si Blocked Dates Filter Value est renseigné, limite les enregistrements bloqués à <champ> = <valeur> (par ex. Status__c = Cancelled). (b) mode parent : si Filter Value est vide, ce champ est traité comme une référence à l'enregistrement courant et le filtre devient <champ> = recordId. Laissez vide pour un blocage global.
Blocked Dates Filter ValueblockedDatesFilterValue✓✓✓StringvideFacultatif : valeur de filtre pour Blocked Dates Filter Field. Si elle est renseignée, les enregistrements bloqués doivent vérifier <filterField> = <filterValue> (par ex. Status__c = Cancelled). Plusieurs catégories de blocages peuvent ainsi cohabiter dans la même table : chaque calendrier choisit celle qui le concerne.
Sorties de flux
Output Date Ranges as JSONoutputAsJson✓✓BooleanfalseActivé, remplit la sortie Date Ranges JSON avec les dates consécutives regroupées en plages. Nécessaire pour parcourir les plages avec l'action MultiDatePickParser.
Selected Dates (Output)selectedDates✓✓String[]videSORTIE : tableau de toutes les dates sélectionnées au format ISO (YYYY-MM-DD). À utiliser dans votre flux pour créer des enregistrements ou à transmettre à l'écran suivant.
Date Ranges JSON (Output)selectedDateRangesJson✓✓StringvideSORTIE : JSON des dates consécutives regroupées en plages. Rempli uniquement si « Output Date Ranges as JSON » est activé. À transmettre à MultiDatePickParser pour boucler dans le flux.
Dates With Times JSON (Output)selectedDatesWithTimesJson✓StringvideSORTIE : chaîne JSON contenant chaque date et l'heure sélectionnée. À transmettre à MultiDatePickParser pour la parcourir dans votre flux.
Sub-Blocks JSON (Output)subBlocksJson✓StringvideSORTIE : JSON des sous-blocs (intervalles ou pauses) par date. Rempli uniquement si Consolidate Time Span est activé. À utiliser dans une boucle de flux pour créer des enregistrements enfants.
Successful Bookings Count (Output)bookingSuccessCount✓IntegervideSORTIE : nombre de réservations créées avec succès. À utiliser dans votre flux pour afficher un message de confirmation.
Conflict Dates (Output)bookingConflictDates✓String[]videSORTIE : liste des dates où les réservations n'ont pas pu être créées à cause d'un conflit avec des réservations existantes.

16. Sécurité & accessibilité

  • A passé la revue de sécurité Salesforce AppExchange.
  • 100 % natif. Vos données restent dans votre org Salesforce. Aucun serveur externe, aucun appel sortant. Voir Confiance & sécurité.
  • Toujours vos autorisations. Chaque lecture et chaque enregistrement s'exécutent avec les accès de l'utilisateur : autorisations sur les objets, sécurité au niveau du champ et partage s'appliquent à chaque enregistrement.
  • Accessible. WCAG 2.1 AA, testé avec axe-core. VPAT 2.5 complet.
  • 9 langues : anglais, espagnol, français, allemand, japonais, hindi, portugais (Brésil), italien, chinois (simplifié).

17. Des questions ou des bugs ?

Il manque quelque chose dans ce guide, ou un élément ne fonctionne pas ? Écrivez à support@multidatepick.com.

Prêt à le voir dans votre org ?

$20 par utilisateur et par mois, toutes les fonctionnalités incluses, essai gratuit de 30 jours. Bientôt disponible sur Salesforce AppExchange.