MultiDatePick-Benutzerhandbuch

Jede Komponente, jede Einstellung und jeder Stolperstein, in der Reihenfolge, in der ein Admin ihnen begegnet. Kein Apex erforderlich.

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.

Komponente Date →

Date Time

In den Buildern: MultiDatePick - Dates & Times

Termine plus Zeitfenster. Ideal für Kurse, Termine, Schulungsblöcke und Schichten.

Komponente Date Time →

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.

Komponente Booking →

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.

Entscheidung 1
Uhrzeit

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.

Entscheidung 2
Ressource

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.

Entscheidung 3
Zeitraum

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.

MultiDatePick-Einrichtungsassistent in Salesforce: die Fragen von Schritt für Schritt führen zu Uhrzeit, Ressource und Zeitraum, mit einem kleinen Diagramm der Datensatzform auf jeder Antwortkarte
Schritt für Schritt führen stellt dieselben 3 Fragen in Ihrer Org und wählt die Form für Sie.

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. 1 Name & Typ
  2. 2 Objekt & Felder
  3. 3 Zeitfelder
  4. 4 Status & Anzeige
  5. 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.

MultiDatePick-Einrichtungsassistent in Salesforce: der Startbildschirm mit den Wegen Schritt für Schritt führen und Alle Eigenschaften konfigurieren
Schritt für Schritt führen stellt die 3 Fragen. Alle Eigenschaften konfigurieren springt direkt zu Schritt 1.

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.

MultiDatePick-Einrichtungsassistent in Salesforce, Schritt Name & Typ: Auswahl des Komponententyps Date, Date Time oder Booking, mit Eingaben für Konfigurationsname und Bezeichnung
Schritt 1: Komponente wählen, Konfiguration benennen.
Ansichtsoptionen im MultiDatePick-Einrichtungsassistenten für Salesforce: Kalender, Zeitachse und Agenda für den Ansichtsumschalter gewählt, Zeitachse gruppieren nach auf die Auswahlliste Advisor Specialty gesetzt und Client Name, Meeting Type und Status als Agenda-Felder gewählt
Ansichtsoptionen: Ansichten des Umschalters wählen, Zeilen der Zeitachse nach beliebiger Auswahlliste oder Lookup-Feld gruppieren, Agenda-Spalten aus einer Liste wählen.

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.

MultiDatePick-Einrichtungsassistent in Salesforce, Schritt Objekt & Felder: Auswahl für verknüpftes Objekt, Datumsfeld, Beziehungsfeld und Enddatumsfeld sowie die Auswahl des Einsatzorts
Schritt 2: Der Assistent liest das Schema Ihrer Org und bietet für jedes Feld ein Dropdown an.
MultiDatePick-Einrichtungsassistent für Salesforce, Schritt Objekt & Felder: jedes Feld ist ein auf das gewählte Objekt gefiltertes Dropdown, hier Advisor Appointment und Advisor, die Liste Kapazitätsfeld geöffnet mit nur den Zahlenfeldern von Advisor
Keine API-Namen nachschlagen. Jede Liste zeigt nur Felder des passenden Typs, Kapazitätsfeld listet also Zahlenfelder.
Abschnitt Gesperrte Daten im MultiDatePick-Einrichtungsassistenten für Salesforce: das Objekt Advisor Closure als Quelle, seine Felder Closure Date, Start Time und End Time gewählt und die Liste des Ressourcenfelds mit seinen Lookup-Feldern geöffnet
Gesperrte Termine kommen aus einem beliebigen Objekt. Wählen Sie es, und die Listen für Datum, Uhrzeit und Ressource füllen sich.

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.

MultiDatePick-Einrichtungsassistent in Salesforce, Schritt Zeitfelder: Start- und Endzeitfeld, ein Zeitintervall von 30 Minuten, Anzeigemodus Raster, 08:00 bis 18:00, Konfliktverhalten Blockieren und 90 Tage Konflikt-Vorausschau, darunter die Live-Vorschau
Schritt 3: Zeitfelder, Intervall und Konfliktregeln, darunter die Live-Vorschau.

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).

MultiDatePick-Einrichtungsassistent in Salesforce, Schritt Status & Anzeige: Statusfeld, Zuordnung der Statusfarben mit Farbfeldern und Buchungen mit Status ausblenden
Statusfarben liest die Auswahllistenwerte aus Ihrem Statusfeld. Jeder Wert bekommt ein Farbfeld.
MultiDatePick-Einrichtungsassistent in Salesforce, Schritt Status & Anzeige: Datensatzbenennung, Hover-Felder, Kalendergröße, Format der Tagesüberschrift und die Funktionsumschalter
Anzeigeoptionen und Funktionsumschalter, darunter die Live-Vorschau.

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.

MultiDatePick-Einrichtungsassistent in Salesforce, Schritt Überprüfen & Speichern: eine Zusammenfassung aller gewählten Einstellungen und eine funktionierende Vorschau des konfigurierten Kalenders, mit der Schaltfläche Konfiguration speichern
Schritt 5: alle Einstellungen in einer Liste und eine funktionierende Vorschau. Gespeichert wird erst, wenn Sie auf Konfiguration speichern klicken.

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.

MultiDatePick-Einrichtungsassistent in Salesforce: die Registerkarte Importieren mit einem Feld zum Einfügen einer JSON-Konfiguration und der Karte Beschreibung speichern nach dem Import
Importieren: eine JSON-Konfiguration einfügen, um dieselbe Einrichtung überall bereitzustellen.
MultiDatePick-Einrichtungsassistent in Salesforce: die Registerkarte Vorhandene Konfigurationen mit den gespeicherten Konfigurationen samt Komponententyp, Bezeichnung und Beschreibung
Vorhandene Konfigurationen: jede gespeicherte Konfiguration, bereit zum Bearbeiten oder Exportieren.
In einem Bildschirm-Flow (Screen Flow) setzen Sie Config Name und hören dort auf. Jedes Kontrollkästchen kommt aus der Konfiguration, Sie brauchen also nie eine $GlobalConstant. Binden Sie den übergeordneten Datensatz an Parent Record Id.

4. Berechtigungssätze & Zugriff

Das Paket liefert vier Berechtigungssätze. Weisen Sie sie im Setup unter Berechtigungssätze zu.

BerechtigungssatzWer ihn bekommtEinrichtungsassistentKalender nutzen
MultiDatePick - SetupDie Admins, die Konfigurationen erstellen✓ JaNein
MultiDatePick - UserAlle, die die Kalender nutzenNein✓ Ja
MultiDatePick - All AccessAdmins, die sie erstellen und nutzen✓ Ja✓ Ja
MultiDatePick - GuestDer Gastbenutzer einer öffentlichen Experience Cloud-SiteNein✓ 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.
Auch Admins brauchen Feldzugriff. Ein brandneues benutzerdefiniertes Feld ist für alle unsichtbar, auch für Systemadministratoren, bis ein Berechtigungssatz es freigibt. Scheint ein Feld beim Speichern zu fehlen, prüfen Sie zuerst die Sicherheit auf Feldebene.

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.

EinstellungInhaltAPI-Name
Child Object API Name (Verwandtes Objekt)Das Objekt, in dem die Datensätze gespeichert werdenrelatedObjectApiName
Date Field API Name (Datumsfeld)Das Datumsfeld an diesem ObjektdateFieldApiName
Relationship Field API Name (Beziehungsfeld)Das Lookup-Feld zurück zum übergeordneten DatensatzrelationshipFieldApiName
Parent Record Id oder Static Parent Record IdDer ü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
Zwei Schaltflächen in einem Flow-Bildschirm. Mit aktivem Speichern per Klick schreibt Speichern der Komponente die Datensätze, und Weiter im Flow geht nur weiter. Benutzer klicken zuerst Speichern, dann Weiter.

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:

AusgabeEnthältKomponenten
Selected Dates (Output)Eine Textsammlung von Datumsangaben (YYYY-MM-DD)Date, Date Time
Date Ranges JSON (Output)Aufeinanderfolgende Tage, zu Zeiträumen gruppiertDate, Date Time
Dates With Times JSON (Output)Jedes Datum mit seinen UhrzeitenDate Time
Successful Bookings Count / Conflict DatesErgebnisse nach dem eigenen Speichern von BookingBooking

Ü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.

EinstellungFunktionAPI-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
Zwei Seiten, ein Objekt. Eine Kundenseite kann ohne Farben auskommen, nur Requested als auswählbaren Status anbieten und No-Show und Cancelled ausblenden. Eine Backoffice-Seite mit denselben Datensätzen schaltet Farben ein und bietet jeden Status an.

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
Animierte Demo des MultiDatePick-Bearbeitungsmodus in einem Salesforce-Kalender: zwei Tage mit Requested-Terminen werden ausgewählt, Alle auswählen markiert beide Buchungen, der Status wird auf Confirmed geändert, und nach Änderungen anwenden wechseln beide Tage von Blau zu Grün
Status gesammelt ändern: Tage auswählen, Alle auswählen, Status wählen, Anwenden.
Animierte Demo des MultiDatePick-Bearbeitungsmodus in einem Salesforce-Kalender: der Kundentermin eines Tages wird ausgewählt, der Folgetag unter Auf Datum verschieben eingetragen, und nach Änderungen anwenden verlässt die Buchung den 30. Oktober und erscheint am 31. Oktober, dem einzigen noch ausgewählten Tag
Buchungen verschieben: Tag wählen, neues Datum wählen, Anwenden. Im selben Panel ändern Sie Ressource oder Uhrzeiten.
Salesforce-Buchungskalender mit Statusfarben an jedem Tag und geöffnetem Bearbeitungsmodus: der ausgewählte Tag listet jede Buchung mit Status, Uhrzeit und Raum, bereit für eine Massenänderung von Status, Datum oder Ressource
Statusfarben färben jeden Tag. Der Bearbeitungsmodus listet die Datensätze des Tages, bereit zum Ändern.

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 FrageLayoutBeschreibbar?
KalenderWas ist am 14. los?Jeweils ein Monat, Statusfarben pro Tag.Ja. Die Standardansicht.
ZeitachseWelche Ressource ist frei, und wann?Ressourcen untereinander, Tage nebeneinander. Mehrtägige Datensätze erscheinen als ein Balken.Ja
WocheWer hat Donnerstag um 14 Uhr Zeit?Sieben Tage nebeneinander, Geschäftszeiten untereinander. Über Tage und Stunden gleichzeitig ziehen.Ja
AuslastungWer ist über der Kapazität?Heatmap der genutzten Kapazität pro Ressource und Tag.Nein, schreibgeschützt
AgendaWas steht als Nächstes an?Eine Liste der nächsten 60 Tage in zeitlicher Reihenfolge.Nein, schreibgeschützt
Stellen Sie eine Buchungsseite nicht standardmäßig auf Auslastung oder Agenda. Beide sind schreibgeschützt, die Seite verlöre also ihre Hauptaufgabe. Bieten Sie sie unter Available Views (Verfügbare Ansichten) an und öffnen Sie eine beschreibbare Ansicht.

Einstellungen

EinstellungStandardFunktion
AnsichtviewKalenderDas Layout, mit dem die Komponente öffnet.
Verfügbare AnsichtenavailableViewsleerAnsichten, 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)timelineWindowDays14Wie 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)resourceViewFilterallbooked 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)maxViewResources0 (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)agendaFieldsleerZusä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)capacityFieldleerKeine 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.

EinsatzortAnsicht (View)Verfügbare Ansichten (Available Views)
Interviewseite des RecruitersWochecalendar,agenda
Raumbuchungsseite des Facility ManagementsKalendertimeline,utilization
Dienstplan des SchichtleitersZeitachseweek,agenda
Wandanzeige im BetriebAgendautilization,timeline
Öffentliche Experience Cloud-SeiteKalenderleer, 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.

Salesforce-Zeitachse mit überlappenden mehrtägigen Buchungen, die unter jeder Ressource in Spuren gestapelt sind, einem Aufklapppfeil an jeder mehrspurigen Zeile und einer kombinierten Kapazitätsleiste oben
Überlappende Buchungen stapeln sich in Spuren. Der Streifen oben zeigt, wie voll jeder Tag ist.

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.

Animierte Demo zum Umplanen auf der MultiDatePick-Zeitachse in Salesforce: Den rechten Rand eines Mandats ziehen verlängert es um zwei Tage, ein anderes Mandat wird um zwei Tage verschoben; beim Loslassen wird gespeichert und das neue Datum erscheint am Balken
Eine Buchung am Rand verlängern, eine andere auf spätere Tage schieben. Jede speichert beim Loslassen.

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.

MultiDatePick zeigt Salesforce-Buchungen in allen fünf Ansichten: Ressourcen-Zeitachse, Monatskalender, Auslastungs-Heatmap, Wochenraster und Agenda-Liste
Dieselben Buchungen in allen fünf Ansichten.

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.

Salesforce-Buchungskalender im Mehrfach-Ressourcen-Modus mit zwei angekreuzten Ressourcen und einem kombinierten Kapazitätsraster mit X/Y-Anzeigen an jedem Zeitfenster
Zwei Ressourcen angekreuzt. Jede Anzeige zeigt Buchungen im Verhältnis zur Kapazität über beide.

Kapazität

Lassen Sie mehrere Buchungen ein Zeitfenster teilen, mit Live-Anzeigen wie 3/5. Ein volles Zeitfenster nimmt keine Buchungen mehr an.

EinstellungFunktionAPI-Name
KapazitätsfeldEin 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
Kapazität braucht beide Zeitfelder der Buchung. Ohne Booking Start Time Field und Booking End Time Field gibt es keine Zeitfenster zum Zählen, und die Komponente zeigt statt des Kalenders ein gelbes Banner.

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).

WertWas passiertIdeal für
Blockieren (Standard)Ein belegtes Zeitfenster kann nicht gewählt werden, und das Speichern stoppt mit hervorgehobenen Konflikten.Die meisten Buchungsseiten
ÜberspringenSpeichert 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
ZulassenKeine 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.

EinstellungFunktionAPI-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 DatumGraut Termine außerhalb fester Daten aus.minDate / maxDate
Buchbar bis / MindestvorlaufEin 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ügenEine .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
Max Dates Allowed begrenzt Termine, nicht Zeitfenster. Mit einem Limit von 1 kann ein Benutzer an diesem einen Datum trotzdem mehrere Zeitfenster wählen. Ergänzen Sie Max. Zeitfenster, um die Zahl der Buchungen zu begrenzen.

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 steuertWelche Tage, Zeiten und Ressourcen buchbar sindWelche gespeicherten Datensätze erscheinen
EinstellungBlocked Dates Object (Objekt für gesperrte Daten) und seine Datums-, Zeit- und RessourcenfelderIgnored Statuses (Ignorierte Status)
Gesteuert durchEine Liste von Schließ- oder Feiertagen: ein eigenes Objekt oder Ihr gefiltertes BuchungsobjektEinen Statuswert an den Datensätzen selbst
Was Benutzer sehenDas Zeitfenster ist da, aber durchgestrichen, ausgegraut und nicht anklickbarDer Datensatz verschwindet aus dem Kalender
Wirkung auf die KapazitätEntfernt VerfügbarkeitGibt Verfügbarkeit frei: Der ausgeblendete Datensatz zählt nicht mehr
Die DatenEs gibt keine Buchung; Sie markieren den Zeitraum als gesperrtDie Datensätze existieren weiterhin in Salesforce
Einsatz fürFeiertage, Wartungsfenster, ein geschlossener Raum oder eine geschlossene RegionStornierte oder abgelehnte Buchungen, die das Raster nicht überladen oder auf die Kapazität angerechnet werden sollen
Ein Status kann beides bewirken, je nachdem, mit welcher Funktion Sie ihn verbinden. Nehmen Sie eine Buchung mit Status Cancelled:
  • 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.
Ausblenden, um das Zeitfenster freizugeben. Sperren, um es gesperrt zu halten.

Die Einstellungen für gesperrte Termine

EinstellungFunktionAPI-Name
Objekt für gesperrte DatenDas 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 DatenOptionale 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 DatenOptionaler Geltungsbereich, etwa Region = North oder Status = Cancelled. So bedient eine Schließungstabelle viele Kalender.blockedDatesFilterField / blockedDatesFilterValue

Drei Ebenen des Sperrens

  1. 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.
  2. 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.
  3. 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Site aktivieren. Veröffentlichen und Aktivieren sind getrennte Schritte.
Leerer Kalender für Gäste? Wenn Objekte, Felder und Klassenzugriff stimmen, liegt es fast immer an der Neuberechnung der Freigaben in Schritt 3. Die Schritte 4 und 5 werden am zweithäufigsten vergessen.
  • 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:#hex ohne 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 Cancelled oder eine Liste wie Cancelled,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, Wert true. Mehrere Werte (ODER): North,South. Mehrere Felder (UND): Feld Type__c;Active__c, Wert Conference Room;true.
Date Time zeigt immer eine gemeinsame Zeitauswahl
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

  1. Fügen Sie einen Bildschirm mit der Komponente Date Time hinzu. Lassen Sie die Einstellungen für Speichern per Klick leer.
  2. Fügen Sie nach dem Bildschirm die Aktion Parse Date Entries from JSON hinzu. Übergeben Sie ihr Dates With Times JSON (Output).
  3. Durchlaufen Sie die Liste der Aktion in einer Schleife. Jeder Eintrag hat Von-Datum, Bis-Datum, Startzeit und Endzeit.
  4. 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 EinrichtungSo geht es
Master-Detail-BeziehungLegen Sie am übergeordneten Objekt zwei Rollup-Summenfelder an: MIN des Datumsfelds und MAX des Datumsfelds. Fertig.
NachschlagebeziehungEin 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✓✓✓StringleerOptional: 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✓✓✓StringcalendarWelche 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✓✓✓StringleerKommagetrennte 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✓✓✓Integer14Wie 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✓✓✓StringweekAnfangszoom der Zeitachse: day (Stunden eines Tages), week (der Timeline Window) oder month. Benutzer können den Zoom beim Ansehen wechseln.
Timeline Group By FieldtimelineGroupByField✓✓✓StringleerAPI-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✓✓✓Integer0Hö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✓✓✓StringleerKommagetrennte 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✓✓✓StringallWelche 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✓✓✓StringDate: 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✓✓✓StringDate: 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✓✓✓BooleantrueWenn 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✓✓✓BooleanfalseWenn AN, werden zwei Monate nebeneinander angezeigt, um Zeiträume leichter auszuwählen. Wenn AUS, wird jeweils ein Monat angezeigt.
Calendar SizecalendarSize✓✓✓StringmediumSteuert 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✓✓✓String3Lä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✓✓✓BooleanfalseWenn AN, beginnt die Kalenderwoche am Montag (ISO-Standard). Wenn AUS, beginnt sie am Sonntag (US-Standard).
Show Recurring Pattern ButtonshowRecurringPattern✓✓✓BooleantrueWenn AN, erscheint eine Schaltfläche, mit der Benutzer schnell alle Wochentage, Wochenenden oder bestimmte Wochentage bis zu einem Enddatum auswählen.
Show Selection SummaryshowSelectedSummary✓✓✓BooleantrueWenn AN, erscheint eine Zusammenfassung, wie viele und welche Termine ausgewählt sind.
Show Done Button in Inline ModeshowDoneButtonInline✓✓✓BooleanfalseWenn AN und Show Inline aktiv ist, erscheint eine Schaltfläche Fertig, die den Kalender zu einer Zusammenfassung einklappt.
Show In-Component ToastshowSuccessToast✓✓✓BooleanfalseZeigt 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✓✓✓BooleanfalseNach 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✓StringleerAPI-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✓✓✓StringleerOptionale eigene Meldung bei erfolgreichem Speichern. Leer verwendet den Standard.
Auswahlregeln
Requiredrequired✓✓✓BooleanfalseWenn 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✓✓✓Integer0Maximale Anzahl an Terminen, die ein Benutzer auswählen kann. 0 = unbegrenzt.
Max Time SlotsmaxTimeSlotSelection✓✓Integer0Maximale Anzahl an Zeitfenstern, die ein Benutzer insgesamt (über alle Termine) auswählen kann. 0 = unbegrenzt.
Allow Past DatesallowPastDates✓✓✓BooleanDate: true; Date Time: true; Booking: falseWenn 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✓✓✓DateleerDas 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✓✓✓DateleerDas späteste Datum, das Benutzer wählen können. Spätere Tage sind ausgegraut.
Book Up To (Days Ahead)maxDaysAhead✓✓✓Integer0Ein 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✓✓✓Integer0Nichts, 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[]leerTermine, die beim Öffnen des Kalenders bereits ausgewählt sind. Im ISO-Format angeben (YYYY-MM-DD).
Blocked DatesdisabledDates✓✓✓String[]leerBestimmte 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[]leerWenn 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✓✓✓BooleanfalseWenn 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✓✓BooleanfalseWenn 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✓✓✓StringleerWenn 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✓✓✓StringleerSonderfall: 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✓✓✓StringleerNur 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✓✓✓StringleerAPI-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✓✓✓StringleerAPI-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✓✓✓StringleerAPI-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✓✓✓StringleerAPI-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✓✓✓BooleantrueWenn 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✓✓✓StringeditableSteuert, 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✓✓✓StringSpeichernText auf der Schaltfläche Speichern im Modus Speichern per Klick. Beispiel: 'Termine speichern', 'Auswahl bestätigen'
Record Name FieldrecordNameField✓✓✓StringleerAPI-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✓✓✓StringleerFü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✓✓✓BooleantrueWenn AN, wird das Datum an den Datensatznamen angehängt.
Status und Bearbeitung
Status FieldstatusField✓✓✓StringleerAPI-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✓✓✓StringleerKommagetrennte 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✓✓✓StringDate: calendar; Date Time: both; Booking: bothWo 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✓✓✓StringleerKommagetrennte 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✓✓✓StringleerKommagetrennte 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✓✓✓StringleerOptionaler 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✓✓✓StringleerOptionale Anzeigebezeichnung für das Dropdown der zweiten Auswahlliste. Wenn leer, macht die Komponente den API-Namen des Felds lesbar.
Selectable Second-Picklist ValuesselectableSecondStatuses✓✓✓StringleerOptionale 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✓✓✓StringleerOptionale 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✓✓✓StringleerKommagetrennte 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✓✓✓BooleantrueWenn 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✓✓✓StringleerEigene Beschriftung für die Umschaltfläche des Bearbeitungsmodus. Standard ist „Daten bearbeiten“ (Edit Dates), wenn leer.
Edit Record DisplayeditRecordDisplay✓✓✓StringleerKommagetrennte 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✓StringgridWie 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✓✓Integer30Abstand 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✓String09:00Frü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✓String18:00Spä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✓StringleerAPI-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✓StringleerAPI-Name eines Zeitfelds am untergeordneten Objekt für das Ende des Zeitfensters. Beispiel: End_Time__c
Allow Different Times Per DateallowDifferentTimes✓✓BooleanfalseIst 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✓BooleantrueWenn 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✓✓BooleanfalseWenn 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✓✓BooleanfalseWenn 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✓✓StringleerOptionales 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✓✓StringleerOptionaler 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✓BooleanfalseWenn 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✓StringleerAPI-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✓StringNameAPI-Name des Felds mit dem Anzeigenamen der Ressource. Meist 'Name'.
Resource Filter Field (optional)resourceFilterField✓StringleerAPI-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✓StringleerWert(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✓StringleerAPI-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✓StringleerAPI-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✓BooleanfalseWenn 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✓BooleanfalseWenn 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✓StringleerAPI-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✓StringleerAPI-Name des Datumsfelds am Buchungsobjekt. Muss vom Typ Datum sein (nicht Datum/Uhrzeit). Beispiel: Booking_Date__c
Booking Resource FieldbookingResourceField✓StringleerAPI-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✓StringleerAPI-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✓StringleerAPI-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✓StringBuchenText auf der Schaltfläche, die die Buchung bestätigt. Beispiel: 'Jetzt buchen', 'Reservieren', 'Buchung bestätigen'
Capacity Field (Kapazitätsfeld)capacityField✓StringleerAPI-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✓StringCombinedNUR 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✓BooleantrueWenn 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✓✓StringblockLegt 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✓✓Integer0Minuten, 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✓✓Integer360Wie 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✓✓BooleanfalseWenn 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✓✓StringleerWenn 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✓✓BooleanfalseWenn 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✓✓StringleerAPI-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✓✓StringleerLookup-Feld am Unterblock-Objekt, das auf den übergeordneten Datensatz zeigt. Beispiel: Shift__c. Erforderlich, wenn Sub-Block Object gesetzt ist.
Sub-Block Date FieldsubBlockDateField✓✓StringleerDatumsfeld am Unterblock-Objekt. Beispiel: Break_Date__c. Erforderlich, wenn Sub-Block Object gesetzt ist.
Sub-Block Start Time FieldsubBlockStartTimeField✓✓StringleerStartzeitfeld am Unterblock-Objekt. Beispiel: Break_Start__c. Erforderlich, wenn Sub-Block Object gesetzt ist.
Sub-Block End Time FieldsubBlockEndTimeField✓✓StringleerEndzeitfeld am Unterblock-Objekt. Beispiel: Break_End__c. Erforderlich, wenn Sub-Block Object gesetzt ist.
Sub-Block Name FieldsubBlockNameField✓✓StringleerTextfeld am Unterblock-Objekt für eine Bezeichnung. Beispiel: Break_Name__c. Erforderlich, wenn Sub-Block Object gesetzt ist.
Gesperrte Termine
Blocked Dates ObjectblockedDatesSourceObject✓✓✓StringleerAPI-Name eines Objekts, aus dem die Termine gelesen werden, die nicht auswählbar sein sollen. Beispiel: Public_Holiday__c
Blocked Dates Date FieldblockedDatesDateField✓✓✓StringleerAPI-Name des Datumsfelds am Objekt für gesperrte Termine. Erfordert Blocked Dates Object.
Blocked Dates Start Time FieldblockedDatesStartTimeField✓✓✓StringleerOptional: 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✓✓✓StringleerOptional: 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✓✓✓StringleerOptional: 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✓✓✓StringleerOptional: 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✓✓✓StringleerOptional: 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✓✓BooleanfalseWenn 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[]leerAUSGABE: 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✓✓StringleerAUSGABE: 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✓StringleerAUSGABE: 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✓StringleerAUSGABE: 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✓IntegerleerAUSGABE: Anzahl der erfolgreich angelegten Buchungsdatensätze. Im Flow nutzen, um eine Bestätigung anzuzeigen.
Conflict Dates (Output)bookingConflictDates✓String[]leerAUSGABE: Liste der Termine, für die wegen Konflikten mit vorhandenen Reservierungen keine Buchung angelegt werden konnte.

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.