MultiDatePick-Benutzerhandbuch
Jede Komponente, jede Einstellung und jeder Stolperstein, in der Reihenfolge, in der ein Admin ihnen begegnet. Kein Apex erforderlich.
Inhalt
- Die drei Komponenten
- Datensatzformen
- Der Einrichtungsassistent Schritt für Schritt
- Berechtigungssätze & Zugriff
- Speichern per Klick vs. Speichern im Flow
- Statusfarben & Bearbeitungsmodus
- Ansichten: fünf Layouts, eine Komponente
- Ressourcenbuchung & Kapazität
- Auswahl der Benutzer begrenzen
- Termine, Zeiten & Ressourcen sperren
- Öffentliche Gastseiten
- Häufige Stolpersteine (FAQ)
- Flow-Rezepte
- Objekt- & Feldzuordnung
- Referenz aller Eigenschaften
- Sicherheit & Barrierefreiheit
- Fragen / Fehler
1. Die drei Komponenten: wann welche passt
MultiDatePick liefert drei Lightning Web Components auf einer gemeinsamen Basis. Wählen Sie die, die zu Ihren Daten passt.
Date
In den Buildern: MultiDatePick - Dates
Viele Termine auf einmal auswählen. Ideal für Zusagen, Anwesenheit, Urlaub, Sperrtage und Feiertagskalender.
Date Time
In den Buildern: MultiDatePick - Dates & Times
Termine plus Zeitfenster. Ideal für Kurse, Termine, Schulungsblöcke und Schichten.
Booking
In den Buildern: MultiDatePick - Resource Booking
Termine, Uhrzeiten und eine Ressource. Ideal für Räume, Geräte, Personen und alles mit Kapazität.
Funktionsvergleich
Die Funktionen bauen aufeinander auf. Alles aus Date gibt es auch in Date Time und Booking. Date Time ergänzt Uhrzeiten. Booking ergänzt Ressourcen und Kapazität.
| Funktion | Date | Date Time | Booking |
|---|---|---|---|
| In allen drei Komponenten verfügbar | |||
| Datumsauswahl | ✓ | ✓ | ✓ |
| Fünf Ansichten | ✓ | ✓ | ✓ |
| Statusfarben | ✓ | ✓ | ✓ |
| Gesperrte Daten | ✓ | ✓ | ✓ |
| Vorhandene Datensätze laden | ✓ | ✓ | ✓ |
| Bearbeitungsmodus | ✓ | ✓ | ✓ |
| Wiederholungsmuster | ✓ | ✓ | ✓ |
| Nur Date Time & Booking | |||
| Zeitfenster | ✓ | ✓ | |
| Unterblock-Datensätze | ✓ | ✓ | |
| Nur Booking | |||
| Ressourcenauswahl | ✓ | ||
| Kapazitätsanzeigen | ✓ | ||
2. Datensatzformen: wann welche passt
Eine Datensatzform legt fest, wie aus einer Auswahl Datensätze werden. Sie ergibt sich aus drei unabhängigen Entscheidungen, und jede Kombination funktioniert.
Date: nur Termine, keine Uhrzeiten.
Date Time / Booking: jeder Datensatz hat eine Start- und Endzeit.
Zusatz: Aktivieren Sie Consolidate Time Span (Zeitspanne konsolidieren) für einen übergeordneten Datensatz über den ganzen Zeitraum plus einen Unterblock-Datensatz für jede Lücke darin.
Keine: Date, Date Time oder Booking ohne Ressource.
Eine Ressource: Booking mit einem Ressourcen-Dropdown.
Mehrere Ressourcen: Booking mit Kontrollkästchen, ein Datensatz pro angekreuzter Ressource.
Pro Klick: jedes ausgewählte Datum ist ein eigener Datensatz. Fünf Klicks, fünf Datensätze.
Pro Zeitraum: aufeinanderfolgende Tage werden zu einem Datensatz mit Start und Ende. Setzen Sie End Date Field API Name (Enddatumsfeld).
Der Einrichtungsassistent nennt sechs Formen: ein Datensatz pro Datum, einer pro Zeitraum, einer pro Zeitblock, übergeordneter Datensatz plus Unterblöcke, eine Ressource und mehrere Ressourcen.
Beispiele: die 3 Fragen beantworten
Beantworten Sie pro Szenario drei Fragen, und Sie landen bei einer Form. Der Einrichtungsassistent stellt dieselben drei.
Urlaubsantrag
Brauchen Sie Uhrzeiten? Nein, nur Tage.
Brauchen Sie eine Ressourcenauswahl? Nein.
Sollen aufeinanderfolgende Tage zusammengefasst werden? Ja. Urlaub von Mo bis Fr soll EIN Datensatz sein.
→ Pro Zeitraum: ein Datensatz, Beginn Mo, Ende Fr.
Besprechungsraum reservieren
Brauchen Sie Uhrzeiten? Ja, jede Buchung hat Beginn und Ende.
Brauchen Sie eine Ressourcenauswahl? Ja, einen Raum auswählen.
Sollen aufeinanderfolgende Tage zusammengefasst werden? Nein, jede Buchung ist ein eigener Datensatz.
→ Eine Ressource: ein Datensatz pro Datum × Zeitblock, mit dem Raum verknüpft.
Schulung in 3 Räumen
Brauchen Sie Uhrzeiten? Ja, jeden Tag derselbe Beginn und dasselbe Ende.
Brauchen Sie eine Ressourcenauswahl? Ja, mehrere Räume per Kontrollkästchen.
Sollen aufeinanderfolgende Tage zusammengefasst werden? Ja, sie läuft von Mo bis Fr.
→ Mehrere Ressourcen, pro Zeitraum: ein Datensatz pro Raum für die ganze Woche.
Ganztägige Schulung mit Mittagspause
Brauchen Sie Uhrzeiten? Ja, 9 bis 17 Uhr mit einer Mittagslücke.
Brauchen Sie eine Ressourcenauswahl? Nein.
Soll die Lücke erfasst werden? Ja, als eigener untergeordneter Datensatz.
→ Übergeordneter Datensatz plus Unterblöcke: ein übergeordneter Datensatz von 9 bis 17 Uhr, ein Unterblock für die Mittagspause.
Das Raster: jede Kombination
Wählen Sie die Zeile für Ihren Bedarf an Uhrzeit und Ressource. Die Spalte hängt davon ab, ob Enddatumsfeld gesetzt ist. Jede Zelle ist eine gültige Einrichtung.
| Uhrzeit + Ressource | Pro Klick (kein Enddatumsfeld) |
Pro Zeitraum (Enddatumsfeld gesetzt) |
|---|---|---|
| Date Keine Uhrzeit. Komponente Date. |
Ein Datensatz pro Datum 1 Datum → 1 Datensatz. Für: Zusagen, Anwesenheit, tägliche Check-ins. |
Ein Datensatz pro Zeitraum Aufeinanderfolgende Tage → 1 Datensatz mit Beginn und Ende. Für: Urlaub, Dienstreisen, mehrtägige Aufenthalte. |
| Date Time Ein Zeitblock pro Datensatz. Komponente Date Time. |
Ein Datensatz pro Zeitblock 1 Datum × 1 Zeitblock = 1 Datensatz. Für: Stundenzettel, Schichtsegmente, Schulungsblöcke. |
Zeitraum mit gemeinsamem Zeitblock. Aufeinanderfolgende Tage mit denselben Zeiten → 1 Datensatz. Für: mehrtägige Schulungen mit täglich gleichen Zeiten. |
| Date Time + Zeitspanne konsolidieren Übergeordneter Datensatz plus Unterblöcke für Lücken |
Übergeordneter Datensatz plus Unterblöcke Ein übergeordneter Datensatz umfasst den ganzen Zeitraum. Jede Lücke darin wird zu einem Unterblock. Für: Schulungen mit Mittagspausen, Außendiensttouren mit Fahrtzeit zwischen den Stopps. |
|
| Booking, eine Ressource Ein Ressourcen-Dropdown. Komponente Booking. |
Eine Ressource 1 Datensatz pro Datum × Zeitblock, mit der Ressource verknüpft. Für: Besprechungsräume, Trainerplanung. |
Zeitraum für eine Ressource. Aufeinanderfolgende Tage für eine Ressource → 1 Datensatz pro Zeitraum. Für: mehrtägige Zimmerbelegung, mehrtägige Geräteausleihe. |
| Booking, mehrere Ressourcen Ressourcen-Kontrollkästchen (Mehrere Ressourcen zulassen) |
Mehrere Ressourcen 1 Datensatz pro Ressource × Datum × Zeitblock. Für: parallele Teambesprechungen, Schulungen in mehreren Räumen. |
Zeitraum für mehrere Ressourcen. Aufeinanderfolgende Tage über N Ressourcen → N Datensätze, einer pro Ressource. Für: eine Schulungswoche in 3 Räumen gleichzeitig. |
| Booking + Zeitspanne konsolidieren Übergeordnete Buchung plus Unterblöcke für Lücken |
Übergeordnete Buchung plus Unterblöcke. Eine Ressource ganztägig gebucht, mit ihren Pausen als Datensätze. Für: Laborgeräte mit Wartungsfenstern. |
|
Fazit: Jede Kombination der drei Entscheidungen funktioniert. Wenn Ihr Szenario kein benanntes Muster ist, treffen Sie jede Entscheidung einzeln, und die Komponente erledigt den Rest.
3. Der Einrichtungsassistent Schritt für Schritt
Der Einrichtungsassistent speichert eine Konfiguration einmal. Geben Sie ihren Namen in Config Name auf einer beliebigen Seite oder in einem Flow-Bildschirm ein, und dieser Einsatzort verwendet sie. Ändern Sie die Konfiguration, und jeder Einsatzort folgt.
- 1 Name & Typ
- 2 Objekt & Felder
- 3 Zeitfelder
- 4 Status & Anzeige
- 5 Überprüfen & Speichern
Einstieg wählen
Die Registerkarte Neu erstellen bietet zwei Wege. Schritt für Schritt führen stellt drei Fragen und wählt Komponente und Form. Alle Eigenschaften konfigurieren öffnet jede Einstellung. Daneben gibt es zwei weitere Registerkarten: Vorhandene Konfigurationen, um eine gespeicherte Konfiguration zu bearbeiten, und Importieren, um eine aus der Config Library einzufügen.
Schritt 1: Name & Typ
Wählen Sie die Komponente (Date, Date Time oder Booking) und benennen Sie die Konfiguration. Diesen Namen geben Sie später in Config Name ein. In diesem Schritt legen Sie auch die Ansichten fest: die Standardansicht, welche Ansichten der Umschalter anbietet, und die Optionen für Zeitachse und Agenda.
Schritt 2: Objekt & Felder
Der wichtigste Schritt. Wählen Sie das Objekt mit den Datensätzen, sein Datumsfeld und das Beziehungsfeld zum übergeordneten Datensatz. Optionale Felder ergänzen Zeiträume, Ressourcen, Kapazität, Unterblöcke und gesperrte Termine. Booking-Konfigurationen legen hier auch Ressourcenobjekt, Kapazitätsfeld und Geschäftszeiten fest.
Schritt 3: Zeitfelder
Nur Date Time und Booking. Ordnen Sie das Start- und Endzeitfeld zu und legen Sie dann das Zeitintervall fest (jedes Intervall funktioniert; üblich sind 15, 30 oder 60 Minuten), die früheste und späteste Uhrzeit, den Anzeigemodus und was bei einem Konflikt passiert.
Schritt 4: Status & Anzeige
Statusfeld und -farben, auszublendende Status, Status, die Benutzer wählen dürfen, Hover-Felder, Bearbeitungsmodus, Datensatzbenennung, Schaltflächenbeschriftungen, Kalendergröße und Limits wie Max Dates Allowed (Maximale Auswahlen).
Schritt 5: Überprüfen & Speichern
Prüfen Sie die Zusammenfassung, testen Sie die Live-Vorschau und klicken Sie dann auf Konfiguration speichern. Der Assistent stellt die Konfiguration in 30 bis 60 Sekunden für Sie bereit. Danach können Sie optional eine Beschreibung hinzufügen.
Vorhandene Konfigurationen und Importieren
Gespeicherte Konfigurationen stehen unter Vorhandene Konfigurationen: Klicken Sie auf eine, um sie zu bearbeiten oder zu exportieren. Die Registerkarte Importieren nimmt das JSON jeder Karte der Config Library an oder einen Export aus einer anderen Org.
4. Berechtigungssätze & Zugriff
Das Paket liefert vier Berechtigungssätze. Weisen Sie sie im Setup unter Berechtigungssätze zu.
| Berechtigungssatz | Wer ihn bekommt | Einrichtungsassistent | Kalender nutzen |
|---|---|---|---|
| MultiDatePick - Setup | Die Admins, die Konfigurationen erstellen | ✓ Ja | Nein |
| MultiDatePick - User | Alle, die die Kalender nutzen | Nein | ✓ Ja |
| MultiDatePick - All Access | Admins, die sie erstellen und nutzen | ✓ Ja | ✓ Ja |
| MultiDatePick - Guest | Der Gastbenutzer einer öffentlichen Experience Cloud-Site | Nein | ✓ Ansehen und buchen |
Die Komponenten laufen mit den Berechtigungen des jeweiligen Benutzers, Benutzer brauchen also auch Zugriff auf Ihre Objekte und Felder:
- Objekte: Lesen und Erstellen für das Objekt, in dem die Datensätze gespeichert werden, plus Lesen für jedes Ressourcen-, Schließtags- oder untergeordnete Objekt, das der Kalender liest.
- Felder, lesen: jedes Feld, das der Kalender anzeigt (Datum, Status, Hover-Felder).
- Felder, bearbeiten: jedes Feld, das er schreibt (Datum, Uhrzeiten, Status, zweite Auswahlliste, Namensfeld, das Lookup-Feld zum übergeordneten Datensatz). Ein Feld, das der Benutzer nicht bearbeiten darf, lässt das Speichern scheitern, auch wenn das Lesen funktioniert.
- Referenzierte Datensätze: mindestens Lesen für den übergeordneten Datensatz und die Ressource, auf die der neue Datensatz verweist.
Jede Fehlermeldung und ihre Ursache finden Sie unter Fehlerbehebung: Zugriffsfehler. Gast-Sites brauchen ein paar zusätzliche Schritte: siehe Öffentliche Gastseiten.
5. Speichern per Klick vs. Speichern im Flow
Es gibt zwei Arten zu speichern. Wählen Sie die, die zum Einsatzort passt.
Speichern per Klick
Die Komponente schreibt die Datensätze selbst. Füllen Sie vier Einstellungen aus, und ihre eigene Schaltfläche Speichern erscheint. Ein Klick darauf erstellt die untergeordneten Datensätze. Keine Flow-Elemente, kein Code.
Einsatz auf: Datensatzseiten, App-Seiten, Startseiten, Experience Cloud-Sites und Flow-Bildschirmen mit übergeordnetem Datensatz.
Speichern im Flow
Die Komponente übergibt die Auswahl an Ihren Flow. Verwenden Sie die mitgelieferte Aktion Parse Date Entries from JSON und dann Ihre eigenen Elemente Schleife und Datensätze erstellen.
Einsatz auf: Flow-Bildschirmen, auf denen Sie volle Kontrolle wollen: Genehmigungen, bedingte Datensätze, zusätzliche Validierung.
Speichern per Klick: die vier Einstellungen
Der Einrichtungsassistent füllt sie aus. Sobald alle vier einen Wert haben, erscheint die Schaltfläche Speichern.
| Einstellung | Inhalt | API-Name |
|---|---|---|
| Child Object API Name (Verwandtes Objekt) | Das Objekt, in dem die Datensätze gespeichert werden | relatedObjectApiName |
| Date Field API Name (Datumsfeld) | Das Datumsfeld an diesem Objekt | dateFieldApiName |
| Relationship Field API Name (Beziehungsfeld) | Das Lookup-Feld zurück zum übergeordneten Datensatz | relationshipFieldApiName |
| Parent Record Id oder Static Parent Record Id | Der übergeordnete Datensatz. Auf einer Datensatzseite automatisch gesetzt. Binden Sie im Flow Parent Record Id. Auf App-, Start- und Experience-Seiten geben Sie die Id in Static Parent Record Id ein. | recordId / staticRecordId |
Welchen übergeordneten Datensatz eine Seite verwendet und wann Sie ihn stattdessen in einem Flow wählen, steht unter App-, Start- & Experience-Seiten.
Speichern im Flow: die Ausgaben
Lassen Sie die vier Einstellungen leer. Die Schaltfläche Speichern wird ausgeblendet, und die Auswahl kommt über diese Flow-Ausgaben heraus:
| Ausgabe | Enthält | Komponenten |
|---|---|---|
| Selected Dates (Output) | Eine Textsammlung von Datumsangaben (YYYY-MM-DD) | Date, Date Time |
| Date Ranges JSON (Output) | Aufeinanderfolgende Tage, zu Zeiträumen gruppiert | Date, Date Time |
| Dates With Times JSON (Output) | Jedes Datum mit seinen Uhrzeiten | Date Time |
| Successful Bookings Count / Conflict Dates | Ergebnisse nach dem eigenen Speichern von Booking | Booking |
Übergeben Sie das JSON an Parse Date Entries from JSON. Die Aktion gibt eine Liste zurück, die Sie in einer Schleife durchlaufen können, mit Von-Datum, Bis-Datum, Startzeit, Endzeit und Ressourcen-Id pro Eintrag. Schritt für Schritt: Flow-Rezepte.
Speichern fügt nur hinzu
Speichern per Klick erstellt nur neue Datensätze. Das Abwählen eines Datums löscht nie einen gespeicherten Datensatz, ein falscher Klick kann also keine Daten vernichten. Um Datensätze zu ändern oder zu entfernen, nutzen Sie den Bearbeitungsmodus oder die Themenliste.
6. Statusfarben & Bearbeitungsmodus
Statusfarben und Filter
Färben Sie Datensätze nach einer beliebigen Auswahlliste Ihres Objekts, blenden Sie einige Werte aus und begrenzen Sie, was Endbenutzer wählen können.
| Einstellung | Funktion | API-Name |
|---|---|---|
| Status Field (Statusfeld) | Die Auswahlliste, die die Farben steuert, zum Beispiel Confirmed / Tentative / Cancelled. | statusField |
| Status Colors (Statusfarben) | Eine Farbe pro Wert, etwa Confirmed:#22C55E, Tentative:#fbbf24. Leer lassen für eine automatische Palette. | statusColors |
| Status Color Display (Anzeige der Statusfarbe) | Wo Farben erscheinen: Kalender, Raster oder beides. Leer lassen für eine aufgeräumte Kundenseite ohne Farben. | statusColorDisplay |
| Ignored Statuses (Ignorierte Status) | Blendet Datensätze mit diesen Werten (zum Beispiel No-Show,Cancelled) im Kalender und in den Kapazitätszählungen aus. | hideBookingsWithStatus |
| Selectable Statuses (Auswählbare Status) | Begrenzt, welche Werte ein Endbenutzer wählen kann, zum Beispiel nur Requested, während Mitarbeitende alle sehen. | selectableStatuses |
Bearbeitungsmodus
Aktivieren Sie Enable Edit Mode (Bearbeitungsmodus aktivieren), und eine Schaltfläche Bearbeiten erscheint. Im Bearbeitungsmodus können Benutzer:
- Vorhandene Datensätze als Karten mit Datum und Status sehen
- Termine anklicken, um deren Datensätze zur Bearbeitungsauswahl hinzuzufügen
- Datum, Uhrzeiten, Ressource oder Status ändern, und der Datensatz wird aktualisiert
- Mit einer Bestätigung in zwei Klicks löschen, damit nichts versehentlich verschwindet
7. Ansichten: fünf Layouts, eine Komponente
Jede Komponente zeichnet fünf Layouts. Sie lesen dieselben Datensätze über dieselben Feldzuordnungen, folgen denselben Konfliktregeln, gesperrten Terminen und Geschäftszeiten und speichern auf dieselbe Weise. Ein Wechsel der Ansicht ändert, wie Datensätze aussehen, nie, was sie bedeuten.
Die fünf, und welche Frage jede beantwortet
| Ansicht (View) | Die Frage | Layout | Beschreibbar? |
|---|---|---|---|
| Kalender | Was ist am 14. los? | Jeweils ein Monat, Statusfarben pro Tag. | Ja. Die Standardansicht. |
| Zeitachse | Welche Ressource ist frei, und wann? | Ressourcen untereinander, Tage nebeneinander. Mehrtägige Datensätze erscheinen als ein Balken. | Ja |
| Woche | Wer hat Donnerstag um 14 Uhr Zeit? | Sieben Tage nebeneinander, Geschäftszeiten untereinander. Über Tage und Stunden gleichzeitig ziehen. | Ja |
| Auslastung | Wer ist über der Kapazität? | Heatmap der genutzten Kapazität pro Ressource und Tag. | Nein, schreibgeschützt |
| Agenda | Was steht als Nächstes an? | Eine Liste der nächsten 60 Tage in zeitlicher Reihenfolge. | Nein, schreibgeschützt |
Einstellungen
| Einstellung | Standard | Funktion |
|---|---|---|
| Ansichtview | Kalender | Das Layout, mit dem die Komponente öffnet. |
| Verfügbare AnsichtenavailableViews | leer | Ansichten, die der Umschalter anbietet, zum Beispiel calendar,timeline,agenda. Leer bietet alle fünf an. Ihre Standardansicht ist immer dabei, listen Sie also nur die zusätzlichen auf. |
| Timeline Window (Days) / Zeitachsenfenster (Tage)timelineWindowDays | 14 | Wie viele Tage die Zeitachse auf einmal zeigt. Bei einem ganzen Monat ist jede Buchung nur etwa zwanzig Pixel breit, und ihre Beschriftung wird abgeschnitten. 0 zeigt den ganzen Monat. Die inneren Pfeile springen einen Zeitraum weiter, die äußeren einen Monat. |
| Resource Rows (Ressourcenzeilen)resourceViewFilter | all | booked zeichnet nur Ressourcen mit einer Buchung im sichtbaren Bereich. Der beste Weg, eine lange Liste zu kürzen, denn eine leere Zeile trägt keine Information. Ist nirgends etwas gebucht, erscheinen wieder alle Ressourcen. |
| Max View Resources (Max. Ressourcenzeilen)maxViewResources | 0 (alle) | Begrenzt, wie viele Ressourcenzeilen Zeitachse und Auslastung zeichnen, die ausgelastetsten zuerst. Gezählt wird weiterhin alles. Besser ist Ressourcenzeilen, das nur leere Zeilen ausblendet. |
| Agenda Fields (Agenda-Felder)agendaFields | leer | Zusätzliche Felder in jeder Agenda-Zeile, bis zu vier. Leer übernimmt die Hover Popover Fields (Hover-Felder). Datum, Uhrzeit und Name stehen bereits in der Zeile. |
| Capacity Field (Kapazitätsfeld)capacityField | leer | Keine Ansichtseinstellung, aber die Auslastung braucht sie, um Prozentwerte statt reiner Zählungen zu zeigen. |
Eine andere Ansicht pro Seite
Die Ansicht ist eine Einstellung jedes Einsatzorts, dieselben Datensätze können also überall anders aussehen. Eine Installation, ein Satz Feldzuordnungen.
| Einsatzort | Ansicht (View) | Verfügbare Ansichten (Available Views) |
|---|---|---|
| Interviewseite des Recruiters | Woche | calendar,agenda |
| Raumbuchungsseite des Facility Managements | Kalender | timeline,utilization |
| Dienstplan des Schichtleiters | Zeitachse | week,agenda |
| Wandanzeige im Betrieb | Agenda | utilization,timeline |
| Öffentliche Experience Cloud-Seite | Kalender | leer, oder kurz halten |
Der Bearbeitungsmodus funktioniert in jeder Ansicht
Mit aktivem Bearbeitungsmodus aktivieren erscheint die Schaltfläche Bearbeiten in jeder Ansicht. Klicken Sie in Zeitachse, Woche oder Agenda auf einen Datensatz, um ihn zur Bearbeitungsauswahl hinzuzufügen, genau wie ein Datum im Monatskalender. Eine gesammelte Statusänderung aus der Zeitachse funktioniert genauso wie aus dem Kalender.
Zeitachse: eingeklappte Zeilen
Hat eine Ressource überlappende Buchungen, klappt ihre Zeile zu einem Streifen mit dem Chip N gleichzeitig zusammen. Ein Aufklapppfeil öffnet eine Spur pro Buchung. Eingeklappte Zeilen reagieren weiterhin auf Ziehen, Hover und Klick.
Zeitachse: per Ziehen umplanen
Mit aktivem Bearbeitungsmodus aktivieren lassen sich die Balken der Zeitachse ziehen. Greifen Sie die Mitte, um eine Buchung auf andere Tage zu verschieben. Greifen Sie einen Rand, um Beginn oder Ende zu ändern. Der Balken zeigt, wo er landet, und speichert beim Loslassen. Im Tageszoom ändern dieselben Gesten die Uhrzeiten.
Personen einplanen, nicht nur Räume
Resource Object API Name (Ressourcenobjekt) nimmt jedes Objekt an. Setzen Sie es auf User, und die Zeitachse wird zum Dienstplan, die Woche zum Schichtraster und die Auslastung zum Kapazitäts-Dashboard des Teams.
- User hat kein Standard-Kapazitätsfeld. Legen Sie ein benutzerdefiniertes an (zum Beispiel Daily Capacity), um die Auslastung in Prozent zu sehen.
- Ordnen Sie Business Hours Start Field (Geschäftszeiten-Startfeld) und Business Hours End Field (Geschäftszeiten-Endfeld) User-Feldern zu, und das Wochenraster folgt den Arbeitszeiten jeder Person.
Die Config Library enthält zwei fertige Beispiele: Teamkapazitätsplanung und Schichtdienstplan.
8. Ressourcenbuchung & Kapazität (Komponente Booking)
Eine Ressource
Benutzer wählen eine Ressource aus einem Dropdown. Das Zeitraster lädt die Buchungen und die Kapazität dieser Ressource.
Mehrere Ressourcen
Aktivieren Sie Allow Multiple Resources (Mehrere Ressourcen zulassen), und aus dem Dropdown werden Kontrollkästchen. Das Raster zeigt nur Zeitfenster, die bei jeder angekreuzten Ressource frei sind, und Speichern bucht sie alle auf einmal.
Kapazität
Lassen Sie mehrere Buchungen ein Zeitfenster teilen, mit Live-Anzeigen wie 3/5. Ein volles Zeitfenster nimmt keine Buchungen mehr an.
| Einstellung | Funktion | API-Name |
|---|---|---|
| Kapazitätsfeld | Ein Zahlenfeld an der Ressource, zum Beispiel Capacity = 5. | capacityField |
| Show Availability Count (Verfügbarkeitsanzahl anzeigen) | Zeigt die X/Y-Anzeigen. | showAvailabilityCount |
| Capacity Aggregation (Kapazitäts-Aggregation) | Kombiniert (Standard) summiert Buchungen und Kapazitäten über die angekreuzten Ressourcen: Zwei Räume mit je 5 zeigen 0/10. Eindeutig zählt ein Ereignis, das über mehrere Ressourcen gebucht ist, einmal und verwendet die größte Einzelkapazität: Ein Kurs in 4 Räumen zeigt 1/5, nicht 4/20. | capacityAggregation |
Konflikte
Conflict Behavior (Konfliktverhalten) legt fest, was passiert, wenn ein gewähltes Zeitfenster schon belegt ist. Conflict Look-Ahead Days (Konflikt-Vorausschau in Tagen) legt fest, wie weit im Voraus geprüft wird (Standard 360).
| Wert | Was passiert | Ideal für |
|---|---|---|
| Blockieren (Standard) | Ein belegtes Zeitfenster kann nicht gewählt werden, und das Speichern stoppt mit hervorgehobenen Konflikten. | Die meisten Buchungsseiten |
| Überspringen | Speichert die freien Zeitfenster und überspringt die belegten. Die übersprungenen Termine kommen in Conflict Dates (Output) zurück. | Über viele Termine hinweg alles nehmen, was noch frei ist |
| Zulassen | Keine Konfliktprüfung. Buchungen können die Kapazität überschreiten. | Bewusste Überbuchung |
Eine Schließung hat immer Vorrang. Auf ein gesperrtes Zeitfenster wird nichts gespeichert, auch nicht mit Zulassen.
9. Auswahl der Benutzer begrenzen
Begrenzen Sie, wie viel eine Person auswählen kann, nach Terminen oder nach Zeitfenstern.
| Einstellung | Funktion | API-Name |
|---|---|---|
| Maximale Auswahlen Booking: Max Dates Per Booking | Höchstzahl an Terminen, die ein Benutzer auswählen kann. 0 bedeutet kein Limit. | maxSelections |
| Max Time Slots (Max. Zeitfenster) | Höchstzahl an Zeitfenstern insgesamt, über alle Termine. 0 bedeutet kein Limit. Verwenden Sie 1 für einen Termin pro Person. | maxTimeSlotSelection |
| Frühestes / spätestes auswählbares Datum | Graut Termine außerhalb fester Daten aus. | minDate / maxDate |
| Buchbar bis / Mindestvorlauf | Ein rollierender Zeitraum: bis zu N Tage im Voraus, mindestens N Stunden Vorlauf. | maxDaysAhead / minNoticeHours |
| Buffer Between Bookings (Puffer zwischen Buchungen) | Hält nach jeder Buchung eine Übergangszeit frei. | bufferMinutes |
| Zum Kalender hinzufügen | Eine .ics-Datei mit allem, was gerade gespeichert wurde, nach dem Speichern. | showAddToCalendar |
| Allow Past Dates (Vergangene Daten zulassen) | Aus bedeutet nur heute und später. Standardmäßig an bei Date und Date Time, aus bei Booking. | allowPastDates |
10. Termine, Zeiten & Ressourcen sperren (Schließungen)
Jeder Kalender kann Schließungen aus einem anderen Objekt lesen und die Tage, Zeitfenster oder Ressourcen ausgrauen, die sie abdecken, sodass Benutzer nur buchen, wenn Sie geöffnet haben. Richten Sie ein paar Einstellungen auf das Schließungsobjekt, und die Komponente erledigt den Rest. Ganztägige Sperren funktionieren in allen drei Komponenten. Sperren nach Uhrzeit und Ressource brauchen das Zeitraster von Date Time oder Booking.
Sperren vs. Ausblenden: Was ist der Unterschied?
Beides klingt ähnlich, bewirkt aber das Gegenteil. Sperren nimmt Verfügbarkeit weg: Das Zeitfenster ist sichtbar, aber nicht buchbar. Ausblenden nimmt Datensätze aus der Ansicht und gibt damit ihre Zeitfenster frei.
| Sperren (Schließungen) | Ausblenden (nach Status) | |
|---|---|---|
| Was es steuert | Welche Tage, Zeiten und Ressourcen buchbar sind | Welche gespeicherten Datensätze erscheinen |
| Einstellung | Blocked Dates Object (Objekt für gesperrte Daten) und seine Datums-, Zeit- und Ressourcenfelder | Ignored Statuses (Ignorierte Status) |
| Gesteuert durch | Eine Liste von Schließ- oder Feiertagen: ein eigenes Objekt oder Ihr gefiltertes Buchungsobjekt | Einen Statuswert an den Datensätzen selbst |
| Was Benutzer sehen | Das Zeitfenster ist da, aber durchgestrichen, ausgegraut und nicht anklickbar | Der Datensatz verschwindet aus dem Kalender |
| Wirkung auf die Kapazität | Entfernt Verfügbarkeit | Gibt Verfügbarkeit frei: Der ausgeblendete Datensatz zählt nicht mehr |
| Die Daten | Es gibt keine Buchung; Sie markieren den Zeitraum als gesperrt | Die Datensätze existieren weiterhin in Salesforce |
| Einsatz für | Feiertage, Wartungsfenster, ein geschlossener Raum oder eine geschlossene Region | Stornierte oder abgelehnte Buchungen, die das Raster nicht überladen oder auf die Kapazität angerechnet werden sollen |
- Ignorierte Status = Cancelled → die Buchung verschwindet, und ihr Zeitfenster wird frei.
- Objekt für gesperrte Daten = Ihr Buchungsobjekt, gefiltert auf Status = Cancelled → die Buchung sperrt ihr Datum, damit niemand es erneut bucht.
Die Einstellungen für gesperrte Termine
| Einstellung | Funktion | API-Name |
|---|---|---|
| Objekt für gesperrte Daten | Das Objekt mit den Schließungen, etwa ein Objekt Office Closure oder Ihr Buchungsobjekt. Sobald es gesetzt ist, ist das Sperren aktiv. | blockedDatesSourceObject |
| Blocked Dates Date Field (Datumsfeld für gesperrte Daten) | Das Datumsfeld an diesem Objekt. | blockedDatesDateField |
| Start- / Endzeitfeld für gesperrte Daten | Optionale Zeitfelder. Setzen Sie beide für Sperren über einen Teil des Tages; lassen Sie sie leer für ganztägige Sperren. Date Time und Booking. | blockedDatesStartTimeField / blockedDatesEndTimeField |
| Blocked Dates Resource Field (Ressourcenfeld für gesperrte Daten) | Optionales Lookup-Feld, das eine Schließung auf eine Ressource einschränkt. Leer bedeutet, die Schließung gilt für jede Ressource. Booking. | blockedDatesResourceField |
| Filterfeld / Filterwert für gesperrte Daten | Optionaler Geltungsbereich, etwa Region = North oder Status = Cancelled. So bedient eine Schließungstabelle viele Kalender. | blockedDatesFilterField / blockedDatesFilterValue |
Drei Ebenen des Sperrens
- Ganzer Tag: Eine Schließung ohne Uhrzeiten graut das ganze Datum aus. Alle drei Komponenten. Ein geschlossener Tag bleibt geschlossen, auch wenn er schon Buchungen hat.
- Teil eines Tages: Eine Schließung mit Start- und Endzeit sperrt nur diese Zeitfenster. Der Rest des Tages bleibt buchbar. Gesperrte Zeitfenster erscheinen, sobald ein Datum ausgewählt ist.
- Eine Ressource: Eine Schließung, die auf eine Ressource zeigt, schließt nur diese Ressource. In der Ansicht einer einzelnen Ressource ist das Zeitfenster durchgestrichen. In der kombinierten Ansicht bekommt es eine kleine Eckmarkierung und bleibt für die freien Ressourcen buchbar.
Sie nutzen das Zeitraster? Dann brauchen Sie Sperren für Teile des Tages. Ganztägige Sperren passen zu reinen Datumsauswahlen.
Zwei Muster für das Schließungsobjekt
- Dasselbe Objekt, per Status markiert: Richten Sie das Objekt für gesperrte Daten auf Ihr Buchungsobjekt und filtern Sie auf Status = Cancelled, sodass stornierte Buchungen zugleich als Schließungen dienen. Am einfachsten, aber jeder Kalender auf diesem Objekt teilt sie. Siehe die Konfiguration Terminbuchung mit Feiertagssperre in der Config Library.
- Ein eigenes Schließungsobjekt: ein Objekt Office Closure mit einem Datum, optionaler Start- und Endzeit, einem Feld Region und einem optionalen Lookup-Feld zur Ressource. Jeder Kalender filtert nach seiner Region, und eine Schließung kann eine einzelne Ressource betreffen. Siehe die Konfiguration Stundenweise Ressourcensperren.
Damit Personen ihre eigene Zeit sperren können (etwa ein Verantwortlicher, der einen Vormittag blockt), platzieren Sie auf einer internen Seite oder Site eine Komponente Date Time, die im Schließungsobjekt speichert.
Wie sich gesperrte Zeitfenster verhalten
- Aussehen: Ein vollständig geschlossenes Zeitfenster ist durchgestrichen und ausgegraut. Ein Zeitfenster, das nur für einige der gewählten Ressourcen geschlossen ist, bekommt eine Eckmarkierung.
- Auswahl: Ein vollständig geschlossenes Zeitfenster lässt sich weder anklicken noch überziehen.
- Speichern: Auf eine geschlossene Kombination aus Ressource, Datum und Uhrzeit wird nichts gespeichert. Bei mehreren Ressourcen wird nur die geschlossene ausgelassen; die freien werden trotzdem gebucht.
Eine Schließungstabelle, viele Kalender
Geben Sie dem Schließungsobjekt ein Kennzeichnungsfeld (Region, Standort, Gebäude) und legen Sie dasselbe Feld an Ihren Ressourcen an. Jeder Kalender nutzt dann Resource Filter Field / Value, um seine eigenen Ressourcen zu zeigen, und Filterfeld / Filterwert für gesperrte Daten, um seine eigenen Schließungen zu lesen.
11. Öffentliche Gastseiten (Experience Cloud)
Platzieren Sie eine Komponente auf einer Experience Cloud-Site, und jeder kann ohne Anmeldung buchen. Erledigen Sie alle fünf Schritte, bevor Sie als Gast testen.
- Objektberechtigungen. Geben Sie dem Gastbenutzer der Site Lesen, plus Erstellen, wenn Gäste etwas absenden, für jedes Objekt. Salesforce erlaubt Gästen nie, Datensätze zu bearbeiten oder zu löschen, behalten Sie Seiten zum Bearbeiten, Stornieren und Löschen also angemeldeten Benutzern vor.
- Sicherheit auf Feldebene für jedes Feld, das die Komponente berührt, auch die Geschäftszeitenfelder der Ressource und die Zeitfelder der Schließungen. Ein einziges fehlendes Feld stoppt die Abfrage der Ressourcen oder Schließungen.
- Eine Freigaberegel für Gäste (Lesen), damit der Gast die Datensätze sehen kann. Die externe organisationsweite Standardeinstellung des Objekts muss Privat sein, damit die Regel greift. Eine als Metadaten bereitgestellte Regel braucht im Setup unter Freigabeeinstellungen einen Klick auf Neu berechnen.
- Der Berechtigungssatz MultiDatePick - Guest für den Gastbenutzer der Site. Er enthält den Zugriff auf die Apex-Klassen, über die die Komponente ihre Daten lädt.
- Site aktivieren. Veröffentlichen und Aktivieren sind getrennte Schritte.
- Welchen Datensatz Gäste sehen: Eine öffentliche Seite nutzt Static Parent Record Id, jeder Gast bucht also für denselben übergeordneten Datensatz (ein Büro, einen Standort oder eine Ressource). Für einen Datensatz pro Besucher steuern Sie das über einen Flow mit URL-Parameter. Echte Kalender pro Benutzer brauchen angemeldete Benutzer.
- Kontakte und Accounts: Salesforce schränkt den Gastzugriff darauf stark ein. Lassen Sie Gäste auf ein benutzerdefiniertes Objekt buchen oder nutzen Sie eine authentifizierte Site.
- Mehrere Komponenten auf einer Seite: Sie synchronisieren sich nicht live. Fügen Sie dazwischen eine Aufforderung zum Aktualisieren ein, damit eine Sperre aus der einen in der nächsten erscheint.
Die Schritte zur Platzierung stehen unter App-, Start- & Experience-Seiten. Eine vollständig ausgearbeitete Site finden Sie unter Buchung in Experience Cloud.
12. Häufige Stolpersteine (FAQ)
Sie sehen ein Banner, eine fehlende Schaltfläche Speichern oder einen leeren Kalender? Die Fehlerbehebung zeigt jede Meldung mit Screenshot und Lösung.
- Meine Statusfarben werden nicht angewendet
- Prüfen Sie drei Dinge. (a) Ist Statusfeld genau der API-Name der Auswahlliste? Groß- und Kleinschreibung zählt. (b) Nutzt Statusfarben das Format
Value:#hex, Value:#hexohne Anführungszeichen?'Confirmed':'#22C55E'bricht es stillschweigend. (c) Haben die Datensätze tatsächlich einen Wert in dieser Auswahlliste? - Datensätze werden mit unerwarteten Namen gespeichert
- Prüfen Sie Record Name Field (Datensatz-Namensfeld): Ist das Feld kurz, werden lange Namen abgeschnitten. Prüfen Sie Append Date to Record Name (Datum/Uhrzeit an Namen anhängen): Ist es aktiv, werden ausgewähltes Datum und Uhrzeit an jeden Namen angehängt.
- Wie blende ich stornierte Datensätze im Kapazitätsraster aus?
- Setzen Sie Ignorierte Status auf
Cancelledoder eine Liste wieCancelled,Rejected. Sie verschwinden aus dem Kalender und aus der Kapazitätszählung. - Was ist der Unterschied zwischen Sperren und Ausblenden?
- Sperren (Schließungen) hält ein Datum, eine Uhrzeit oder eine Ressource sichtbar, aber nicht buchbar: Feiertage, Wartung, ein geschlossener Raum. Ausblenden entfernt Datensätze wie Cancelled aus Kalender und Kapazität und gibt so das Zeitfenster frei. Siehe Sperren vs. Ausblenden.
- Die Schaltfläche Bearbeiten erscheint nicht
- Aktivieren Sie Bearbeitungsmodus aktivieren. Das ist die einzige Voraussetzung, bei allen drei Komponenten. Ein Statusfeld ist optional; es fügt im Editor nur ein Status-Dropdown hinzu. Fehlt die Schaltfläche trotzdem, ist Bearbeitungsmodus aktivieren auf der Seite oder in der Konfiguration ausgeschaltet.
- Ich möchte nur bestimmte Ressourcen (Räume, keine Geräte)
- Nutzen Sie Resource Filter Field (Ressourcenfilterfeld) und Resource Filter Value (Ressourcenfilterwert). Ein Wert: Feld
Active__c, Werttrue. Mehrere Werte (ODER):North,South. Mehrere Felder (UND): FeldType__c;Active__c, WertConference Room;true. - Die richtige Einstellung ist Time Display Mode (Zeitanzeigemodus): Raster oder Dropdown. Im Rastermodus teilen sich alle Termine das Raster. Für eine eigene Uhrzeit pro Datum wählen Sie Dropdown und aktivieren Allow Different Times Per Date (Unterschiedliche Zeiten zulassen).
- Wie wechsle ich von Speichern im Flow zu Speichern per Klick?
- Füllen Sie Parent Record Id, API-Name des untergeordneten Objekts, API-Name des Datumsfelds und API-Name des Beziehungsfelds aus. Entfernen Sie die Aktion Parse Date Entries from JSON und die Schleife, die Datensätze erstellt hat. Jetzt schreibt die eigene Schaltfläche Speichern der Komponente sie.
- Ich bekomme eine Fehlermeldung ohne Details
- Öffnen Sie die Entwicklerkonsole des Browsers und suchen Sie nach Zeilen, die mit
[MDP:ERROR]beginnen. Der vollständige Fehler wird dort immer protokolliert, auch wenn die Meldung kurz ist.
13. Flow-Rezepte
Alles hier entsteht im Flow Builder. Kein Apex.
Die ausgewählten Termine in einer Schleife durchlaufen
- Fügen Sie einen Bildschirm mit der Komponente Date Time hinzu. Lassen Sie die Einstellungen für Speichern per Klick leer.
- Fügen Sie nach dem Bildschirm die Aktion Parse Date Entries from JSON hinzu. Übergeben Sie ihr Dates With Times JSON (Output).
- Durchlaufen Sie die Liste der Aktion in einer Schleife. Jeder Eintrag hat Von-Datum, Bis-Datum, Startzeit und Endzeit.
- Weisen Sie in der Schleife die Werte einer Datensatzvariable zu und fügen Sie diese einer Sammlung hinzu. Erstellen Sie die Datensätze einmal, nach der Schleife.
Erstes und letztes Datum auf den übergeordneten Datensatz hochrechnen
Soll der übergeordnete Datensatz das früheste und späteste Datum der untergeordneten zeigen? Wählen Sie den No-Code-Weg, der zu Ihren Daten passt.
| Ihre Einrichtung | So geht es |
|---|---|
| Master-Detail-Beziehung | Legen Sie am übergeordneten Objekt zwei Rollup-Summenfelder an: MIN des Datumsfelds und MAX des Datumsfelds. Fertig. |
| Nachschlagebeziehung | Ein datensatzausgelöster Flow am untergeordneten Objekt (nach dem Speichern). Datensätze abrufen für das untergeordnete Objekt mit demselben übergeordneten Datensatz, aufsteigend nach Datum sortiert, nur der erste Datensatz. Dasselbe absteigend sortiert. Aktualisieren Sie Start- und Enddatum des übergeordneten Datensatzes mit den beiden Daten. |
Weitere Flow-Muster: Leitfaden Bildschirm-Flow.
14. Objekt- & Feldzuordnung
Jede Komponentenseite enthält ein vollständiges Diagramm der Objekt- und Feldzuordnung:
Die Komponenten funktionieren mit jedem Objekt. Die Beispielobjekte im Paket (Schedule, Event, Resource, Sub Block) sind nur Vorgaben. Richten Sie die Einstellungen auf Ihre eigenen benutzerdefinierten oder Standardobjekte mit den passenden Feldern.
15. Referenz aller Eigenschaften
Jede Einstellung der drei Komponenten, mit der Bezeichnung, die Sie im Lightning App Builder, Experience Builder und Flow Builder sehen. Der API-Name steht unter jeder Bezeichnung.
Alle Eigenschaften Über 100 Eigenschaften Zum Aufklappen klicken: durchsuchbar
| Eigenschaft | Date | Date Time | Booking | Typ | Standard | Beschreibung |
|---|---|---|---|---|---|---|
| Einrichtung | ||||||
Config NameconfigName | ✓ | ✓ | ✓ | String | leer | Optional: DeveloperName eines Config__mdt-Datensatzes, der im Einrichtungsassistenten erstellt wurde. Wenn gesetzt, werden alle Feld- und Objekteinstellungen dieser Konfiguration als Standardwerte übernommen. Text- und Zahleneigenschaften, die Sie hier setzen, überschreiben die Konfiguration. Kontrollkästchen kommen immer aus der Konfiguration: Ein nicht angekreuztes Kästchen ist von einem nie gesetzten nicht zu unterscheiden. |
| Ansichten | ||||||
Ansichtview | ✓ | ✓ | ✓ | String | calendar | Welche Darstellung verwendet wird. calendar ist das Monatsraster (Standard). timeline zeigt Ressourcen als Zeilen und Tage als Spalten. week ist ein Raster aus Tagen und Stunden. utilization ist eine Kapazitäts-Heatmap, schreibgeschützt. agenda ist eine chronologische Liste, schreibgeschützt. |
Verfügbare AnsichtenavailableViews | ✓ | ✓ | ✓ | String | leer | Kommagetrennte Liste der Ansichten, die der Umschalter anbietet, z. B. calendar,timeline,agenda. Leer lassen, um alle fünf anzubieten. Die oben gewählte Standardansicht (View) ist immer enthalten. |
Timeline Window (Days) / Zeitachsenfenster (Tage)timelineWindowDays | ✓ | ✓ | ✓ | Integer | 14 | Wie viele Tage die Zeitachse auf einmal zeigt. Bei einem ganzen Monat ist jede Buchung nur etwa zwanzig Pixel breit und jede Beschriftung wird abgeschnitten, deshalb ist 14 der Standard. 0 zeigt stattdessen den ganzen Monat. |
Timeline ZoomtimelineZoom | ✓ | ✓ | ✓ | String | week | Anfangszoom der Zeitachse: day (Stunden eines Tages), week (der Timeline Window) oder month. Benutzer können den Zoom beim Ansehen wechseln. |
Timeline Group By FieldtimelineGroupByField | ✓ | ✓ | ✓ | String | leer | API-Name eines Felds am Ressourcenobjekt (zum Beispiel Building__c), um die Zeilen der Zeitachse unter Überschriften mit Kapazitätsleiste zu gruppieren. Leer lassen für eine flache Liste. |
Max View Resources (Max. Ressourcenzeilen)maxViewResources | ✓ | ✓ | ✓ | Integer | 0 | Höchstzahl an Ressourcenzeilen, die Zeitachse und Auslastung zeichnen, die ausgelastetsten zuerst. Verhindert, dass eine große Ressourcenliste eine der beiden Ansichten in eine unlesbare Wand verwandelt. |
Agenda Fields (Agenda-Felder)agendaFields | ✓ | ✓ | ✓ | String | leer | Kommagetrennte Felder, die in jeder Zeile der Agenda nach dem Datensatznamen erscheinen. Leer lassen, um die Hover-Felder zu übernehmen. Datum, Uhrzeit und Datensatzname werden automatisch übersprungen, weil die Zeile sie bereits zeigt. |
Resource Rows (Ressourcenzeilen)resourceViewFilter | ✓ | ✓ | ✓ | String | all | Welche Ressourcen in Zeitachse und Auslastung eine Zeile bekommen. all zeichnet jede Ressource; booked nur die mit einer Buchung im aktuellen Zeitraum. Das ist der bessere Weg, eine lange Ressourcenliste zu kürzen, denn eine leere Zeile auszublenden kostet nichts. |
| Anzeige und Layout | ||||||
Button Labellabel | ✓ | ✓ | ✓ | String | Date: Datumsauswahl (Select Dates); Date Time: Datum & Uhrzeit auswählen (Select Dates & Times); Booking: Ressource buchen (Book Resource) | Text auf der Schaltfläche, die die Datumsauswahl öffnet. Beispiel: 'Termine wählen' oder 'Termine hinzufügen' |
Calendar TitlemodalTitle | ✓ | ✓ | ✓ | String | Date: Datumsauswahl (Select Dates); Date Time: Datum & Uhrzeit auswählen (Select Dates & Times); Booking: Ressource buchen (Book Resource) | Titel oben im Kalender-Modal. |
Show Inline (Always Visible)Auch angezeigt als Show Inline (No Button)showInline | ✓ | ✓ | ✓ | Boolean | true | Wenn AN, ist der Kalender immer sichtbar, ohne dass eine Schaltfläche geklickt werden muss. Wenn AUS, öffnet eine Schaltfläche den Kalender in einem Popup. |
Two-Month ViewtwoMonthView | ✓ | ✓ | ✓ | Boolean | false | Wenn AN, werden zwei Monate nebeneinander angezeigt, um Zeiträume leichter auszuwählen. Wenn AUS, wird jeweils ein Monat angezeigt. |
Calendar SizecalendarSize | ✓ | ✓ | ✓ | String | medium | Steuert die Gesamtgröße des Kalenders. Gültige Werte: tiny, xsmall (Very Small), small, medium, large. Standard ist medium. Verwenden Sie tiny oder xsmall für Hilfsprogrammleisten, Seitenleisten und Dashboard-Kacheln, small für enge Bereiche, medium für die meisten Layouts und large für touchfreundliche Oberflächen. |
Day Header FormatdayHeaderFormat | ✓ | ✓ | ✓ | String | 3 | Länge der Wochentagsüberschriften. Gültige Werte: 3, 2, 1. Standard ist 3. 3 = SO MO DI, 2 = SO MO DI (zweistellig), 1 = S M D. |
Week Starts on MondayweekStartsOnMonday | ✓ | ✓ | ✓ | Boolean | false | Wenn AN, beginnt die Kalenderwoche am Montag (ISO-Standard). Wenn AUS, beginnt sie am Sonntag (US-Standard). |
Show Recurring Pattern ButtonshowRecurringPattern | ✓ | ✓ | ✓ | Boolean | true | Wenn AN, erscheint eine Schaltfläche, mit der Benutzer schnell alle Wochentage, Wochenenden oder bestimmte Wochentage bis zu einem Enddatum auswählen. |
Show Selection SummaryshowSelectedSummary | ✓ | ✓ | ✓ | Boolean | true | Wenn AN, erscheint eine Zusammenfassung, wie viele und welche Termine ausgewählt sind. |
Show Done Button in Inline ModeshowDoneButtonInline | ✓ | ✓ | ✓ | Boolean | false | Wenn AN und Show Inline aktiv ist, erscheint eine Schaltfläche Fertig, die den Kalender zu einer Zusammenfassung einklappt. |
Show In-Component ToastshowSuccessToast | ✓ | ✓ | ✓ | Boolean | false | Zeigt eine Erfolgs- oder Fehlermeldung innerhalb der Komponente (nötig auf Experience Cloud-Sites, wo die Standardmeldung nicht erscheint). Funktioniert auch auf Datensatzseiten. |
Show Add to Calendar After SavingshowAddToCalendar | ✓ | ✓ | ✓ | Boolean | false | Nach erfolgreichem Speichern lädt eine Schaltfläche Zum Kalender hinzufügen eine Kalenderdatei (.ics) mit einem Ereignis für jeden gerade gespeicherten Datensatz herunter. Sie öffnet sich in Outlook, Google Kalender und Apple Kalender und funktioniert auch für Experience Cloud-Gäste. Datensätze nur mit Datum werden zu ganztägigen Ereignissen; Datensätze mit Uhrzeit behalten ihre Zeiten. |
Calendar File Location FieldcalendarLocationField | ✓ | String | leer | API-Name eines Felds am Ressourcenobjekt, dessen Wert zum Ort jedes Ereignisses in der Datei Zum Kalender hinzufügen wird, etwa die Adresse eines Raums oder Name für den Raum selbst. Leer lassen, wenn Ressourcen Personen sind, etwa Berater oder Techniker: Sie stehen bereits im Titel des Ereignisses, und eine Person ist kein Ort. Erfordert Show Add to Calendar After Saving. | ||
Success Toast Message (optional)successToastMessage | ✓ | ✓ | ✓ | String | leer | Optionale eigene Meldung bei erfolgreichem Speichern. Leer verwendet den Standard. |
| Auswahlregeln | ||||||
Requiredrequired | ✓ | ✓ | ✓ | Boolean | false | Wenn AN, muss der Benutzer mindestens ein Datum auswählen, bevor der Flow zum nächsten Bildschirm weitergehen kann. |
Max Dates AllowedAuch angezeigt als Max Dates Per BookingmaxSelections | ✓ | ✓ | ✓ | Integer | 0 | Maximale Anzahl an Terminen, die ein Benutzer auswählen kann. 0 = unbegrenzt. |
Max Time SlotsmaxTimeSlotSelection | ✓ | ✓ | Integer | 0 | Maximale Anzahl an Zeitfenstern, die ein Benutzer insgesamt (über alle Termine) auswählen kann. 0 = unbegrenzt. | |
Allow Past DatesallowPastDates | ✓ | ✓ | ✓ | Boolean | Date: true; Date Time: true; Booking: false | Wenn AN, können Benutzer jedes vergangene Datum wählen. Wenn AUS, sind nur heute und künftige Tage auswählbar. |
Earliest Selectable DateAuch angezeigt als Earliest Bookable DateminDate | ✓ | ✓ | ✓ | Date | leer | Das früheste Datum, das Benutzer wählen können. Frühere Tage sind ausgegraut. Um Buchungen am selben Tag zu verhindern, nutzen Sie stattdessen Minimum Notice: Es wandert mit der Uhr mit. |
Latest Selectable DateAuch angezeigt als Latest Bookable DatemaxDate | ✓ | ✓ | ✓ | Date | leer | Das späteste Datum, das Benutzer wählen können. Spätere Tage sind ausgegraut. |
Book Up To (Days Ahead)maxDaysAhead | ✓ | ✓ | ✓ | Integer | 0 | Ein rollierender Buchungszeitraum: Das späteste auswählbare Datum ist heute plus diese Anzahl Tage und rückt jeden Tag weiter. 0 bedeutet kein Limit. Ist zusätzlich Latest Selectable Date gesetzt, gilt das frühere der beiden. |
Minimum Notice (Hours)minNoticeHours | ✓ | ✓ | ✓ | Integer | 0 | Nichts, was früher als jetzt plus diese Anzahl Stunden beginnt, kann gewählt oder gespeichert werden. Frühere Tage sind ausgegraut, und am Stichtag schließen die früheren Zeitfenster. Beim Speichern wird erneut geprüft, sodass eine über Nacht offene Seite nicht innerhalb der Vorlaufzeit buchen kann. 0 bedeutet kein Mindestvorlauf. |
Pre-Selected DatesdefaultDates | ✓ | ✓ | ✓ | String[] | leer | Termine, die beim Öffnen des Kalenders bereits ausgewählt sind. Im ISO-Format angeben (YYYY-MM-DD). |
Blocked DatesdisabledDates | ✓ | ✓ | ✓ | String[] | leer | Bestimmte Termine, die nicht ausgewählt werden können (ausgegraut angezeigt). Für Feiertage oder Sperrtage. Im ISO-Format angeben (YYYY-MM-DD). |
Only These Dates Are SelectableavailableDates | ✓ | ✓ | ✓ | String[] | leer | Wenn gesetzt, sind NUR diese Termine auswählbar: alle anderen sind ausgegraut. Im ISO-Format angeben (YYYY-MM-DD). Nützlich, wenn gültige Termine aus einer anderen Quelle in Ihrem Flow kommen. |
Auto-Jump to First Available DateautoJumpToFirstAvailable | ✓ | ✓ | ✓ | Boolean | false | Wenn AN und 'Only These Dates Are Selectable' gesetzt ist, öffnet der Kalender automatisch den Monat des ersten verfügbaren Datums. |
Allow Whole-Day (No Times)allowWholeDayNoTimes | ✓ | ✓ | Boolean | false | Wenn aktiv, speichert die Auswahl eines Datums ohne Zeitfenster einen ganztägigen Datensatz (sperrt oder bucht den ganzen Tag). Termine mit Zeitfenstern werden als Datensätze mit Uhrzeit gespeichert. | |
| Datensätze und Speichern | ||||||
Parent Record IdrecordId | ✓ | ✓ | ✓ | String | leer | Wenn gesetzt, läuft die Komponente im Modus Speichern per Klick und schreibt untergeordnete Datensätze, die mit diesem übergeordneten Datensatz verknüpft sind. Übergeben Sie eine Datensatz-Id aus Datensätze abrufen oder einer recordCreate-Ausgabe (z. B. {!recordVar.Id}). Leer lassen, um das Standardmuster aus Parser, Schleife und Erstellen zu nutzen. |
Static Parent Record IdstaticRecordId | ✓ | ✓ | ✓ | String | leer | Sonderfall: eine Datensatz-Id fest eintragen, um diesen Kalender an einen einzelnen übergeordneten Datensatz zu binden. Funktioniert auf Datensatzseite, App-Seite (statische Id erforderlich), Startseite (statische Id erforderlich) und Experience Cloud-Site (statische Id erforderlich). Auf einer Datensatzseite leer lassen: Der Datensatz der Seite wird automatisch eingesetzt. |
Parent Record Id FieldparentRecordIdField | ✓ | ✓ | ✓ | String | leer | Nur nötig, wenn diese Komponente auf der Datensatzseite eines ANDEREN Objekts als des übergeordneten liegt. Geben Sie den API-Namen des Lookup-Felds ein, das auf den eigentlichen übergeordneten Datensatz zeigt. Leer lassen, wenn die Komponente auf der Seite des übergeordneten Objekts liegt. |
Child Object API NameAuch angezeigt als Related Booking Object API Name; Child Object API Name (for preload)relatedObjectApiName | ✓ | ✓ | ✓ | String | leer | API-Name des Objekts, in dem jedes ausgewählte Datum als Datensatz gespeichert wird. Beispiel: Appointment__c, Schedule_Entry__c. Erforderlich für Speichern per Klick. |
Date Field API NameAuch angezeigt als Date Field API Name (for preload)dateFieldApiName | ✓ | ✓ | ✓ | String | leer | API-Name des Datumsfelds am untergeordneten Objekt, das das ausgewählte Datum speichert. Beispiel: Event_Date__c, Start_Date__c |
End Date Field API NameAuch angezeigt als End Date FieldendDateField | ✓ | ✓ | ✓ | String | leer | API-Name eines Enddatumsfelds am untergeordneten Objekt. Wenn gesetzt, werden aufeinanderfolgende ausgewählte Tage zu einem Datensatz mit Start- und Enddatum zusammengefasst statt zu einem Datensatz pro Datum. Beispiel: End_Date__c |
Relationship Field API NameAuch angezeigt als Parent Record Relationship FieldrelationshipFieldApiName | ✓ | ✓ | ✓ | String | leer | API-Name des Lookup-Felds am untergeordneten Objekt, das auf den übergeordneten Datensatz zurückverweist. Beispiel: Account__c, Contact__c, Order__c |
Load Existing DatesAuch angezeigt als Load Existing BookingspreloadExistingDates | ✓ | ✓ | ✓ | Boolean | true | Wenn AN, werden vorhandene untergeordnete Datensätze abgefragt und ihre Termine beim Laden im Kalender angezeigt. Erfordert Child Object, Date Field und Relationship Field. |
Existing Dates ModeAuch angezeigt als Existing Bookings ModepreloadMode | ✓ | ✓ | ✓ | String | editable | Steuert, wie geladene Termine erscheinen. Gilt nur, wenn Load Existing Dates AN ist. Gültige Werte: editable, readonly. Standard: editable. editable = Termine sind ausgewählt und können geändert werden. readonly = Termine erscheinen ausgegraut und können nicht entfernt werden. Im Flow erscheint das als Freitextfeld, geben Sie also genau einen dieser Werte ein. |
Save Button LabelsaveButtonLabel | ✓ | ✓ | ✓ | String | Speichern | Text auf der Schaltfläche Speichern im Modus Speichern per Klick. Beispiel: 'Termine speichern', 'Auswahl bestätigen' |
Record Name FieldrecordNameField | ✓ | ✓ | ✓ | String | leer | API-Name eines Textfelds am untergeordneten Objekt, in dem eine Datensatzbezeichnung gespeichert wird. Wenn gesetzt, erscheint ein Texteingabefeld, in das Benutzer eine Bezeichnung eingeben. |
Default Record NamedefaultRecordName | ✓ | ✓ | ✓ | String | leer | Füllt das Eingabefeld für den Datensatznamen vor. Benutzer können ihn zur Laufzeit ändern. Beispiel: 'Urlaubstag', 'Teambesprechung'. |
Append Date/Time to Record NameAuch angezeigt als Append Date to Record NameappendDateTimeToName | ✓ | ✓ | ✓ | Boolean | true | Wenn AN, wird das Datum an den Datensatznamen angehängt. |
| Status und Bearbeitung | ||||||
Status FieldstatusField | ✓ | ✓ | ✓ | String | leer | API-Name eines Auswahllisten- bzw. Statusfelds am untergeordneten Objekt. Wenn konfiguriert, erscheint neben dem Eingabefeld für den Datensatznamen ein Status-Dropdown, damit Benutzer bei der Datumsauswahl einen Status vergeben können. Erforderlich für Status Colors, Ignored Statuses, Status Field Label und Enable Edit Mode. Beispiel: Status__c |
Status ColorsstatusColors | ✓ | ✓ | ✓ | String | leer | Kommagetrennte Zuordnung von Statuswerten zu Hex-Farben. Format: Value:#hex. Statusfarben erscheinen in den Datumszellen des Kalenders. Erfordert Status Field. Beispiel: Confirmed:#22C55E, Tentative:#fbbf24, Pending:#60a5fa, Cancelled:#a1a8b5 |
Status Color DisplaystatusColorDisplay | ✓ | ✓ | ✓ | String | Date: calendar; Date Time: both; Booking: both | Wo Statusfarben dargestellt werden. Für die Komponente Dates ist nur 'calendar' verfügbar: Die Datumszellen im Kalender werden nach ihrem Status gefärbt. |
Ignored StatusesAuch angezeigt als Ignored StatuseshideBookingsWithStatus | ✓ | ✓ | ✓ | String | leer | Kommagetrennte Liste von Statuswerten, deren Datensätze im Kalender ausgeblendet werden. Ausgeblendete Datensätze werden nicht dargestellt. Die Datensätze bleiben in Salesforce. Erfordert Status Field. Beispiel: Cancelled, Rejected |
Selectable Statuses (Status Picker)selectableStatuses | ✓ | ✓ | ✓ | String | leer | Kommagetrennte Statuswerte, die die Statusauswahl für Buchungen setzen darf. Leer lassen, um alle zuzulassen (Backoffice). Z. B. 'Scheduled' für eine Kunden-Site. Ist genau ein Status auswählbar, wird er automatisch gewählt und die Auswahl ausgeblendet. Erfordert Status Field. |
Second Picklist FieldsecondStatusField | ✓ | ✓ | ✓ | String | leer | Optionaler API-Name eines zweiten Auswahllistenfelds, das der Benutzer beim Speichern wählt (z. B. Reason__c). Nicht farbcodiert: Die Kalenderfarben kommen aus statusField. Fügen Sie es den Hover Popover Fields hinzu, um es anzuzeigen. Funktioniert in Flow, App Builder und Communities. |
Second Picklist LabelsecondStatusFieldLabel | ✓ | ✓ | ✓ | String | leer | Optionale Anzeigebezeichnung für das Dropdown der zweiten Auswahlliste. Wenn leer, macht die Komponente den API-Namen des Felds lesbar. |
Selectable Second-Picklist ValuesselectableSecondStatuses | ✓ | ✓ | ✓ | String | leer | Optionale kommagetrennte Positivliste der Werte, die der Benutzer in der zweiten Auswahlliste wählen darf. Leer lassen, um alle zuzulassen. Steht genau einer in der Liste, wird er automatisch gewählt und die Auswahl ausgeblendet. |
Status Field LabelstatusFieldLabel | ✓ | ✓ | ✓ | String | leer | Optionale Anzeigebezeichnung für das Status-Dropdown, das Endbenutzer sehen. Geben Sie hier KEINEN API-Namen eines Felds ein: Das ist nur eine Anzeigebezeichnung. Wenn leer, macht die Komponente den API-Namen des Status Field automatisch lesbar. |
Hover Popover FieldshoverFields | ✓ | ✓ | ✓ | String | leer | Kommagetrennte Liste von Feld-API-Namen, die beim Hover über ein Kalenderdatum mit vorhandenen Datensätzen angezeigt werden. Die Felder werden aus dem Child Object abgefragt. Unterstützt Beziehungsfelder. Zeigt nur Daten, wenn vorhandene Datensätze geladen sind (über Load Existing Dates). Beispiel: Name, Status__c, Notes__c. Leer lassen, um Hover-Popovers abzuschalten. |
Enable Edit ModeenableEditMode | ✓ | ✓ | ✓ | Boolean | true | Wenn AN, können Benutzer vorhandene Termine anklicken, um Datum oder Status zu bearbeiten oder den Datensatz zu löschen. Erfordert, dass Status Field UND Status Colors konfiguriert sind. |
Edit Button LabeleditButtonLabel | ✓ | ✓ | ✓ | String | leer | Eigene Beschriftung für die Umschaltfläche des Bearbeitungsmodus. Standard ist „Daten bearbeiten“ (Edit Dates), wenn leer. |
Edit Record DisplayeditRecordDisplay | ✓ | ✓ | ✓ | String | leer | Kommagetrennte Schlüsselwörter, die steuern, welche Felder in der Datensatzliste des Bearbeitungsmodus erscheinen und in welcher Reihenfolge. Schlüsselwörter: name, status, time, date, resource. Standard, wenn leer: name, status, time. Beispiel: name, date, status |
| Zeitfenster | ||||||
Time Display ModetimeDisplayMode | ✓ | String | grid | Wie Uhrzeiten dargestellt werden. Gültige Werte: grid, dropdown. Standard: grid. grid ist ein Raster aus Zeitfenstern, in dem Benutzer Zeitblöcke per Klick oder Ziehen wählen. dropdown zeigt lightning-input-Zeitauswahlen. Ob sich im Dropdown-Modus alle Termine eine Auswahl teilen oder jeder eine eigene bekommt, steuern Sie mit Allow Different Times Per Date. Im Flow ist das ein Freitextfeld: Geben Sie genau einen dieser Werte ein. | ||
Time Interval (Minutes)Auch angezeigt als Time Slot Interval (Minutes)timeInterval | ✓ | ✓ | Integer | 30 | Abstand der Zeitfenster in Minuten. Jede ganze Zahl funktioniert; üblich sind 15, 30 oder 60. Bei 30 erscheinen etwa 9:00, 9:30, 10:00. | |
Earliest TimeminTime | ✓ | String | 09:00 | Früheste Uhrzeit in der Zeitauswahl, im 24-Stunden-Format (HH:mm), etwa 08:00 oder 13:00. Leer lassen, dann beginnt die Auswahl um 0:00 Uhr. | ||
Latest TimemaxTime | ✓ | String | 18:00 | Späteste Uhrzeit in der Zeitauswahl, im 24-Stunden-Format (HH:mm), etwa 17:00 oder 20:00. Leer lassen, dann endet die Auswahl um 23:30 Uhr. | ||
Start Time FieldAuch angezeigt als Start Time Field API NamestartTimeField | ✓ | String | leer | API-Name eines Zeitfelds am untergeordneten Objekt für den Beginn des Zeitfensters. Beispiel: Start_Time__c | ||
End Time FieldAuch angezeigt als End Time Field API NameendTimeField | ✓ | String | leer | API-Name eines Zeitfelds am untergeordneten Objekt für das Ende des Zeitfensters. Beispiel: End_Time__c | ||
Allow Different Times Per DateallowDifferentTimes | ✓ | ✓ | Boolean | false | Ist die Option AN und Time Display Mode auf 'dropdown', bekommt jeder Termin eine eigene Zeitauswahl (nach Wochen gruppiert). Ist sie AUS, teilen sich alle Termine eine Uhrzeit. Bei Time Display Mode 'grid' hat sie keine Wirkung. | |
Enable End TimeenableEndTime | ✓ | Boolean | true | Wenn AN, erscheint neben der Startzeit ein eigenes Dropdown für die Endzeit, und die JSON-Ausgabe enthält startTime und endTime. Gilt nur im Dropdown-Modus (Time Display Mode = 'dropdown'), im Rastermodus wirkt es nicht. | ||
Group Time Slots by PeriodgroupTimeSlotsByPeriod | ✓ | ✓ | Boolean | false | Wenn AN, werden die Zeitfenster in Vormittag, Nachmittag und Abend gegliedert. Wenn AUS (Standard), erscheint ein einfaches Raster. Gilt nur bei Time Display Mode 'grid'. | |
Time Grid OnlytimeGridOnly | ✓ | ✓ | Boolean | false | Wenn AN, verschwindet der Kalender ganz, und es erscheint NUR das Zeitraster für ein vorgegebenes Datum. Der Benutzer wählt Zeitfenster, und die Datensätze werden per Speichern per Klick am Host-Datensatz gespeichert, ganz ohne Datumsauswahl. Das Datum kommt aus Time Grid Date, sonst aus Time Grid Date Field, sonst ist es heute. | |
Time Grid DatetimeGridDate | ✓ | ✓ | String | leer | Optionales festes ISO-Datum (YYYY-MM-DD) für das vorgegebene Datum, wenn Time Grid Only AN ist. Hat Vorrang vor allem anderen. Leer lassen, dann gilt Time Grid Date Field oder ersatzweise heute. | |
Time Grid Date FieldtimeGridDateField | ✓ | ✓ | String | leer | Optionaler API-Name eines Datumsfelds am Host-Datensatz, aus dem das vorgegebene Datum gelesen wird, wenn Time Grid Only AN ist (auf einer Datensatzseite). Greift nur, wenn Time Grid Date leer ist. Beispiel: Appointment_Date__c | |
Disable Time Slot Grid (Full-Day Mode)disableTimeSlotGrid | ✓ | Boolean | false | Wenn AN, wird das Zeitraster ausgeblendet, für ganztägige Buchungen, bei denen nur das Datum zählt. Wenn AUS (Standard), erscheint das Zeitraster für minutengenaue Buchungen. | ||
| Ressourcen und Kapazität | ||||||
Resource Object API NameresourceObjectApiName | ✓ | String | leer | API-Name des Objekts mit Ihren buchbaren Ressourcen. Jeder Datensatz ist eine Ressource im Dropdown. Beispiel: Room__c, Equipment__c, Vehicle__c, Staff__c | ||
Resource Name FieldresourceNameField | ✓ | String | Name | API-Name des Felds mit dem Anzeigenamen der Ressource. Meist 'Name'. | ||
Resource Filter Field (optional)resourceFilterField | ✓ | String | leer | API-Name eines Felds am Ressourcenobjekt, das einschränkt, welche Ressourcen in der Auswahl erscheinen. Zusammen mit Resource Filter Value verwenden. Mehrere Felder (UND) verbinden Sie mit ';'. Beispiele: 'Active__c' (ein Kontrollkästchenfeld), 'Type__c' (eine Auswahlliste), 'Type__c;Building__c' (ZWEI Felder, mit UND verknüpft). Leer lassen, um jede Ressource zu zeigen. | ||
Resource Filter Value (optional)resourceFilterValue | ✓ | String | leer | Wert(e), denen das Filterfeld entsprechen muss. ',' zwischen Werten innerhalb EINES Felds bedeutet ODER (IN-Klausel). ';' trennt die Werte mehrerer Felder, die mit UND verknüpft werden (die Anzahl muss zu Resource Filter Field passen). Beispiele: 'true': Active=true. 'Conference Room': Type=Conference Room. 'North,South': Building ist North oder South. 'Conference Room;North': Type=Conference Room UND Building=North. 'Conference Room;North,South': Type=Conference Room UND Building ist North oder South. | ||
Business Hours Start FieldbusinessHoursStartField | ✓ | String | leer | API-Name des Zeitfelds am Ressourcenobjekt, ab dem die Ressource täglich verfügbar ist. Beispiel: Business_Hours_Start__c (08:00:00.000Z für 8:00 Uhr). Leer lassen, um Zeitfenster über das ganze konfigurierte Intervall anzubieten. | ||
Business Hours End FieldbusinessHoursEndField | ✓ | String | leer | API-Name des Zeitfelds am Ressourcenobjekt mit der letzten verfügbaren Uhrzeit des Tages. Beispiel: Business_Hours_End__c (18:00:00.000Z für 18:00 Uhr). | ||
Allow Multiple ResourcesAuch angezeigt als Allow Booking Multiple ResourcesallowMultipleResources | ✓ | Boolean | false | Wenn AN, wählen Benutzer mehrere Ressourcen per Kontrollkästchen und buchen alle gleichzeitig. Das Zeitraster zeigt nur Zeitfenster, die bei ALLEN gewählten Ressourcen frei sind. Beispiel: einen Raum UND einen Beamer zur selben Zeit buchen. | ||
Allow No ResourceAuch angezeigt als Allow Save Without Picking a ResourceallowNoResource | ✓ | Boolean | false | Wenn AN, können Benutzer speichern, ohne eine Ressource zu wählen: Das Ressourcen-Lookup-Feld des Datensatzes bleibt leer. Gedacht für Formulare, die Schließungen oder Sperrtage anlegen, bei denen eine leere Ressource „gilt für alle“ bedeutet. Kalender, die Schließungen mit einem Filter pro Ressource lesen (blockedDatesResourceField), behandeln eine leere Ressource als regionsweit. Zusammen mit allowNoResource ergibt das eine optionale Zuordnung zu einzelnen Beratern. Für normale Buchungen, bei denen immer eine Ressource gewählt werden muss, AUS lassen (Standard). | ||
Booking Object API NameresourceBookingObject | ✓ | String | leer | API-Name des Objekts, in dem Buchungsdatensätze angelegt werden, ein Datensatz pro Datum und Ressource. Beispiel: Room_Booking__c, Equipment_Reservation__c | ||
Booking Date FieldbookingDateField | ✓ | String | leer | API-Name des Datumsfelds am Buchungsobjekt. Muss vom Typ Datum sein (nicht Datum/Uhrzeit). Beispiel: Booking_Date__c | ||
Booking Resource FieldbookingResourceField | ✓ | String | leer | API-Name des Lookup-Felds am Buchungsobjekt, das auf die Ressource zeigt. Beispiel: Room__c (Lookup-Feld von Room_Booking__c auf Room__c) | ||
Booking Start Time FieldbookingStartTimeField | ✓ | String | leer | API-Name des Zeitfelds am Buchungsobjekt für die Startzeit. Beispiel: Start_Time__c. Für tageweise Buchungen ohne Zeitfenster leer lassen. | ||
Booking End Time FieldbookingEndTimeField | ✓ | String | leer | API-Name des Zeitfelds am Buchungsobjekt für die Endzeit. Beispiel: End_Time__c. Die Endzeit ergibt sich aus den gewählten Zeitfenstern. | ||
Book Button LabelresourceBookButtonLabel | ✓ | String | Buchen | Text auf der Schaltfläche, die die Buchung bestätigt. Beispiel: 'Jetzt buchen', 'Reservieren', 'Buchung bestätigen' | ||
Capacity Field (Kapazitätsfeld)capacityField | ✓ | String | leer | API-Name eines Zahlenfelds am Ressourcenobjekt mit der Höchstzahl gleichzeitiger Buchungen pro Zeitfenster. Wenn gesetzt, zeigen Zeitfenster eine X/Y-Anzeige und bleiben buchbar, bis sie voll sind. Ideal für Schulungsräume, Shared Desks oder Kursanmeldungen. Leer lassen für eine Buchung pro Zeitfenster. Beispiel: Capacity__c | ||
Capacity Aggregation (multi-resource)capacityAggregation | ✓ | String | Combined | NUR IM KAPAZITÄTSMODUS (erfordert Capacity Field). Legt fest, wie X/Y berechnet wird, wenn mehrere Ressourcen gewählt sind. COMBINED (Standard) summiert Buchungen UND Kapazitäten: am besten, wenn jede Ressource ein eigener Bestand ist (z. B. 4 Datensätze in 4 Räumen mit je Kapazität 5 = 4/20). DISTINCT zählt eindeutige Ereignisse (Datensätze mit gleichem Datum, gleicher Start- und Endzeit über mehrere Ressourcen zählen als EINES) und nimmt die größte Einzelkapazität: am besten, wenn ein Ereignis mehrere Ressourcen zugleich belegt (4 Datensätze in 4 Räumen = 1/5). | ||
Show Availability CountshowAvailabilityCount | ✓ | Boolean | true | Wenn AN, zeigt das Ressourcen-Panel Angaben zur Verfügbarkeit (z. B. '3/5 Tage verfügbar'). So finden Benutzer vor dem Buchen die passende Ressource. Erfordert Resource Object API Name. | ||
| Konflikte | ||||||
Conflict BehaviorconflictBehavior | ✓ | ✓ | String | block | Legt fest, was passiert, wenn gewählte Termine zeitlich mit vorhandenen Datensätzen kollidieren. 'block' (Standard): Das Speichern wird verhindert, und die Konflikttermine werden hervorgehoben. 'skip': Es wird gespeichert, Konflikttermine werden übersprungen. 'allow': keine Konfliktprüfung. Gilt nur im gemeinsamen Rastermodus (Time Display Mode='grid' und Allow Different Times Per Date=AUS). | |
Buffer Between Bookings (Minutes)bufferMinutes | ✓ | ✓ | Integer | 0 | Minuten, die nach jeder vorhandenen Buchung für Aufräumen oder Übergabe frei bleiben, bei Booking pro Ressource. Eine Uhrzeit, die im Puffer beginnen würde, gilt überall als belegt, wo Verfügbarkeit angezeigt wird (Zeitraster, Kapazitätszählung, Ziehen in der Woche), und auch beim Speichern; was dann passiert, entscheidet Conflict Behavior. Beispiel: 15 lässt eine Viertelstunde zwischen zwei Besprechungen im selben Raum. | |
Conflict Look-Ahead DaysconflictLookAheadDays | ✓ | ✓ | Integer | 360 | Wie viele Tage im Voraus auf Konflikte geprüft und Verfügbarkeit geladen wird. Standard: 360. Bei Objekten mit vielen Datensätzen verringern, um die Leistung zu verbessern. | |
| Unterblöcke | ||||||
Consolidate Time SpanconsolidateTimeSpan | ✓ | ✓ | Boolean | false | Wenn AN, werden die gewählten Zeitfenster als eine Spanne ausgegeben, vom Beginn des ersten bis zum Ende des letzten. Lücken dazwischen werden automatisch orange und als Unterblöcke erfasst. Gedacht für Planungen, bei denen Sie eine ganze Schicht (z. B. 9 bis 17 Uhr) brauchen und Pausen getrennt erfassen. Gilt nur im Rastermodus. | |
Sub-Block Button LabelsubBlockModeButtonLabel | ✓ | ✓ | String | leer | Wenn gesetzt, erscheint eine Umschaltfläche, mit der Benutzer Zeitfenster selbst als Unterblock (orange) markieren. Praktisch für Unterblöcke am Rand der Arbeitsspanne. Leer lassen, um nur die automatische Orange-Markierung zu nutzen. Beispiel: 'Als Pause markieren', 'Als Mittagspause markieren'. Erfordert, dass Consolidate Time Span AN ist. | |
Show Sub-Block Toggle ButtonshowSubBlockButton | ✓ | ✓ | Boolean | false | Wenn AN, erscheint die Unterblock-Umschaltfläche im Kopf des Zeitrasters. Erfordert, dass Consolidate Time Span AN und Sub-Block Button Label gesetzt ist. | |
Sub-Block Object API NamesubBlockObjectApiName | ✓ | ✓ | String | leer | API-Name des untergeordneten Objekts für Unterblock-Datensätze. Beispiel: Work_Break__c. Erfordert Consolidate Time Span AN und den Modus Speichern per Klick (Parent Record Id gesetzt). | |
Sub-Block Parent Lookup FieldsubBlockParentLookupField | ✓ | ✓ | String | leer | Lookup-Feld am Unterblock-Objekt, das auf den übergeordneten Datensatz zeigt. Beispiel: Shift__c. Erforderlich, wenn Sub-Block Object gesetzt ist. | |
Sub-Block Date FieldsubBlockDateField | ✓ | ✓ | String | leer | Datumsfeld am Unterblock-Objekt. Beispiel: Break_Date__c. Erforderlich, wenn Sub-Block Object gesetzt ist. | |
Sub-Block Start Time FieldsubBlockStartTimeField | ✓ | ✓ | String | leer | Startzeitfeld am Unterblock-Objekt. Beispiel: Break_Start__c. Erforderlich, wenn Sub-Block Object gesetzt ist. | |
Sub-Block End Time FieldsubBlockEndTimeField | ✓ | ✓ | String | leer | Endzeitfeld am Unterblock-Objekt. Beispiel: Break_End__c. Erforderlich, wenn Sub-Block Object gesetzt ist. | |
Sub-Block Name FieldsubBlockNameField | ✓ | ✓ | String | leer | Textfeld am Unterblock-Objekt für eine Bezeichnung. Beispiel: Break_Name__c. Erforderlich, wenn Sub-Block Object gesetzt ist. | |
| Gesperrte Termine | ||||||
Blocked Dates ObjectblockedDatesSourceObject | ✓ | ✓ | ✓ | String | leer | API-Name eines Objekts, aus dem die Termine gelesen werden, die nicht auswählbar sein sollen. Beispiel: Public_Holiday__c |
Blocked Dates Date FieldblockedDatesDateField | ✓ | ✓ | ✓ | String | leer | API-Name des Datumsfelds am Objekt für gesperrte Termine. Erfordert Blocked Dates Object. |
Blocked Dates Start Time FieldblockedDatesStartTimeField | ✓ | ✓ | ✓ | String | leer | Optional: Zeitfeld am Sperrobjekt, das den BEGINN einer Schließung über einen Teil des Tages markiert. Sind Start- und Endzeitfeld gesetzt und hat ein Sperrdatensatz beide Werte, wird an diesem Tag nur dieser Zeitraum geschlossen (der Rest bleibt buchbar). Für ganztägige Sperren leer lassen. |
Blocked Dates End Time FieldblockedDatesEndTimeField | ✓ | ✓ | ✓ | String | leer | Optional: Zeitfeld am Sperrobjekt, das das ENDE einer Schließung über einen Teil des Tages markiert. Gehört zu Blocked Dates Start Time Field. |
Blocked Dates Resource FieldblockedDatesResourceField | ✓ | ✓ | ✓ | String | leer | Optional: beschränkt eine Schließung auf eine Ressource. Geben Sie den API-Namen eines Lookup- bzw. Ressourcenfelds am Sperrobjekt an; stimmt die Ressource eines Sperrdatensatzes mit der im Kalender gewählten überein, wird nur diese Ressource für den Zeitraum geschlossen. Leer gelassen gilt jede Schließung für ALLE Ressourcen (regionsweit). Eingeschaltet wird das Sperren durch Blocked Dates Source Object, nicht durch dieses Feld. Nur bei Ressourcenbuchung sinnvoll. |
Blocked Dates Filter FieldblockedDatesFilterField | ✓ | ✓ | ✓ | String | leer | Optional: Filterfeld am Sperrobjekt, mit zwei Modi. (a) Wertmodus: Ist Blocked Dates Filter Value gesetzt, werden Sperrdatensätze auf <field> = <value> eingeschränkt (z. B. Status__c = Cancelled). (b) Modus übergeordneter Datensatz: Ist Filter Value leer, gilt das Feld als Lookup-Feld auf den aktuellen Datensatz, und es wird auf <field> = recordId eingeschränkt. Leer lassen, um global zu sperren. |
Blocked Dates Filter ValueblockedDatesFilterValue | ✓ | ✓ | ✓ | String | leer | Optional: Wert, auf den Blocked Dates Filter Field gefiltert wird. Wenn gesetzt, müssen Sperrdatensätze <filterField> = <filterValue> erfüllen (z. B. Status__c = Cancelled). So können mehrere Arten von Sperren in derselben Tabelle liegen, und jeder Kalender wählt die Art, die für ihn gilt. |
| Flow-Ausgaben | ||||||
Output Date Ranges as JSONoutputAsJson | ✓ | ✓ | Boolean | false | Wenn AN, füllt die Ausgabe Date Ranges JSON aufeinanderfolgende Tage zu Zeiträumen gruppiert. Nötig, wenn Sie die Zeiträume mit der Aktion MultiDatePickParser in einer Schleife durchlaufen wollen. | |
Selected Dates (Output)selectedDates | ✓ | ✓ | String[] | leer | AUSGABE: Array aller ausgewählten Termine im ISO-Format (YYYY-MM-DD). Nutzen Sie es im Flow, um Datensätze anzulegen oder es an den nächsten Bildschirm zu übergeben. | |
Date Ranges JSON (Output)selectedDateRangesJson | ✓ | ✓ | String | leer | AUSGABE: JSON mit aufeinanderfolgenden Tagen, zu Zeiträumen gruppiert. Nur gefüllt, wenn 'Output Date Ranges as JSON' AN ist. An MultiDatePickParser übergeben, um es im Flow in einer Schleife zu durchlaufen. | |
Dates With Times JSON (Output)selectedDatesWithTimesJson | ✓ | String | leer | AUSGABE: JSON-String mit jedem Datum und seiner gewählten Uhrzeit. An MultiDatePickParser übergeben, um es im Flow in einer Schleife zu durchlaufen. | ||
Sub-Blocks JSON (Output)subBlocksJson | ✓ | String | leer | AUSGABE: JSON mit den Unterblock-Fenstern (Lücken und Pausen) pro Datum. Nur gefüllt, wenn Consolidate Time Span AN ist. In einer Flow-Schleife nutzen, um untergeordnete Datensätze anzulegen. | ||
Successful Bookings Count (Output)bookingSuccessCount | ✓ | Integer | leer | AUSGABE: Anzahl der erfolgreich angelegten Buchungsdatensätze. Im Flow nutzen, um eine Bestätigung anzuzeigen. | ||
Conflict Dates (Output)bookingConflictDates | ✓ | String[] | leer | AUSGABE: Liste der Termine, für die wegen Konflikten mit vorhandenen Reservierungen keine Buchung angelegt werden konnte. | ||
Keine Eigenschaft passt zu Ihrem Filter oder Ihrer Suche.
16. Sicherheit & Barrierefreiheit
- Salesforce AppExchange Security Review bestanden.
- 100 % nativ. Ihre Daten bleiben in Ihrer Salesforce-Org. Keine externen Server, keine Callouts. Mehr unter Vertrauen & Sicherheit.
- Immer Ihre Berechtigungen. Jedes Lesen und Speichern läuft mit den Rechten des Benutzers, Objektberechtigungen, Sicherheit auf Feldebene und Freigaben gelten also für jeden Datensatz.
- Barrierefrei. WCAG 2.1 AA, getestet mit axe-core. Vollständiger VPAT 2.5.
- 9 Sprachen: Englisch, Spanisch, Französisch, Deutsch, Japanisch, Hindi, brasilianisches Portugiesisch, Italienisch, vereinfachtes Chinesisch.
17. Fragen oder Fehler?
Fehlt etwas in diesem Handbuch, oder funktioniert etwas nicht? Schreiben Sie an support@multidatepick.com.
Bereit, es in Ihrer Org zu sehen?
$20 pro Benutzer und Monat, alle Funktionen inklusive, 30 Tage kostenlos testen. Demnächst auf der Salesforce AppExchange.