„Calendar-Loop Filter Guide“ (inkl. Copy/Paste-Prompt) Kategorie: Sonstiges.
Calendar-Loop: Filter Guide (MECE) für _bCalendarRek_(...)
Mit dem Calendar-Loop kannst du Termine (onOffice Appointments) dynamisch ausgeben – z. B. alle zukünftigen Slot-Termine einer Immobilie. Damit du Filter schnell korrekt bauen kannst, ist hier die vollständige, sauber gegliederte Referenz.
1) Quickstart: Minimalbeispiel
Nur Zeitraum (Pflicht):
... Termin-Ausgabe ...
_eCalendarRek_
Typischer Standard (Zukunft, nicht erledigt, nicht storniert):
...
_eCalendarRek_
2) Filter-Syntax (Grammar)
_bCalendarRek_("key:value;key2:op:value2;key3:a,b,c")
-
;bedeutet UND (alle Bedingungen müssen matchen) -
,bedeutet ODER innerhalb eines Keys (mind. ein Wert reicht) -
key:valueist identisch zukey:=:value -
Bei
likenutzt du Wildcards:%TERMIN-SLOT%
3) MECE: Welche Filter gibt es?
A) Pflichtparameter (genau diese zwei)
-
startDate:YYYY-MM-DD -
endDate:YYYY-MM-DD
Tipp: „Nur Zukunft“ =
startDateauf „heute“ setzen.
B) API-Filter (serverseitig, performant)
B1) Boolean Flags (Werte sind MECE: {true,false})
-
isCancelled:true|false -
isDone:true|false -
isRecurrent:true|false
B2) Teilnehmer-Filter (Listen)
-
userIds:1,2,3 -
groupIds:10,11
B3) Text-/Typ-/Ersteller-Filter (SQL-Operatoren)
Diese Keys unterstützen Operatoren:
-
subject -
notes -
type -
createdBy
SQL-Operatoren (MECE-Liste):=, !=, <, <=, >, >=, between, like, not like, in, not in
Beispiele:
notes:not like:%intern%
type:=:Besichtigung
createdBy:=:max.mustermann
C) Propform/PHP-Filter (zusätzlich möglich, auf data-Feldern)
Alles, was in den data Feldern der AppointmentList enthalten ist, kann zusätzlich gefiltert werden – auch verschachtelt via Punktnotation.
Typische Beispiele:
-
estate.id:12345(Termine zu einer Immobilie) -
status.value:active -
confirmationStatus:sent -
private:false
Merksatz: API filtert, was die API kann. Alles andere filtert propform danach.
4) Erlaubte Werte (MECE) für typische Felder
status.value
Erlaubte Werte:
-
active -
completed -
canceled -
participantsAvailable
Beispiel:
confirmationStatus
Erlaubte Werte:
-
canceled -
confirmed -
confirmed and canceled -
not-set -
sent
Beispiel:
Booleans
Erlaubt: true oder false (empfohlen: exakt so schreiben)
5) Praxisbeispiele (Copy/Paste)
5.1 Zukunftstermine einer Immobilie, nur Slots
_TerminDatumUhrzeit – _TerminBetreff
_eCalendarRek_
5.2 Zukunftstermine einer festen Immobilie
...
_eCalendarRek_
5.3 Nur Termine eines Users / einer Gruppe
...
_eCalendarRek_
...
_eCalendarRek_
5.4 Betreff muss mehrere Begriffe erlauben (ODER)
...
_eCalendarRek_
5.5 Serientermine vs. Einzeltermine
...
_eCalendarRek_
6) Copy/Paste Prompt für KI (damit Nutzer saubere Filter bekommen)
Prompt-Vorlage (einfach kopieren und ausfüllen):
- Pflicht: startDate, endDate (YYYY-MM-DD)
- AND = ; OR innerhalb eines Keys = ,
- Operatoren: =, !=, <, <=, >, >=, between, like, not like, in, not in
- like mit %...%
- Zusätzlich sind PHP-Filter auf data-Feldern erlaubt (z.B. estate.id, status.value, confirmationStatus, private)
Ziel:
- Zeitraum: [START] bis [END]
- Immobilie: estate.id = [ESTATE_ID] (oder _Id)
- Betreff enthält: [STRING]
- Optional: isCancelled/isDone/isRecurrent, userIds, groupIds, confirmationStatus, status.value
Gib mir:
1) den Filter-String in Anführungszeichen
2) ein kurzes Beispiel-Snippet mit _bCalendarRek_ ... _eCalendarRek_
7) Typische Stolpersteine (kurz)
-
startDate/endDatesind Pflicht, sonst gibt’s (je nach Implementierung) Default-Zeiträume oder keine Treffer. -
Wenn du Makros wie
_Idim Filter nutzt, müssen die Loop-Args vorab aufgelöst sein (propform macht das automatisch, wenn du die Pre-Resolve-Logik aktiviert hast). -
conflictsalsdataFeld kann je nach Setup zu leeren Antworten führen → bei Bedarf weglassen.