zurück

„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):

 
 
_bCalendarRek_("startDate:2026-02-26;endDate:2026-12-31")
... Termin-Ausgabe ...
_eCalendarRek_
 

Typischer Standard (Zukunft, nicht erledigt, nicht storniert):

 
 
_bCalendarRek_("startDate:2026-02-26;endDate:2027-12-31;isCancelled:false;isDone:false")
...
_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:value ist identisch zu key:=:value

  • Bei like nutzt du Wildcards: %TERMIN-SLOT%


3) MECE: Welche Filter gibt es?

A) Pflichtparameter (genau diese zwei)

  1. startDate:YYYY-MM-DD

  2. endDate:YYYY-MM-DD

Tipp: „Nur Zukunft“ = startDate auf „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:

 
 
subject:like:%TERMIN-SLOT%
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:

 
 
status.value:active
 

confirmationStatus

Erlaubte Werte:

  • canceled

  • confirmed

  • confirmed and canceled

  • not-set

  • sent

Beispiel:

 
 
confirmationStatus:sent
 

Booleans

Erlaubt: true oder false (empfohlen: exakt so schreiben)


5) Praxisbeispiele (Copy/Paste)

5.1 Zukunftstermine einer Immobilie, nur Slots

 
 
_bCalendarRek_("startDate:2026-02-26;endDate:2027-12-31;estate.id:_Id;subject:like:%TERMIN-SLOT%;isCancelled:false;isDone:false")
_TerminDatumUhrzeit – _TerminBetreff
_eCalendarRek_
 

5.2 Zukunftstermine einer festen Immobilie

 
 
_bCalendarRek_("startDate:2026-02-26;endDate:2027-12-31;estate.id:12345;isCancelled:false;isDone:false")
...
_eCalendarRek_
 

5.3 Nur Termine eines Users / einer Gruppe

 
 
_bCalendarRek_("startDate:2026-02-26;endDate:2026-12-31;userIds:31;isCancelled:false;isDone:false")
...
_eCalendarRek_
 
 
 
_bCalendarRek_("startDate:2026-02-26;endDate:2026-12-31;groupIds:219;isCancelled:false;isDone:false")
...
_eCalendarRek_
 

5.4 Betreff muss mehrere Begriffe erlauben (ODER)

 
 
_bCalendarRek_("startDate:2026-02-26;endDate:2026-12-31;subject:like:%TERMIN-SLOT%,%BESICHTIGUNG%;isCancelled:false;isDone:false")
...
_eCalendarRek_
 

5.5 Serientermine vs. Einzeltermine

 
 
_bCalendarRek_("startDate:2026-02-26;endDate:2026-12-31;isRecurrent:true")
...
_eCalendarRek_
 

6) Copy/Paste Prompt für KI (damit Nutzer saubere Filter bekommen)

Prompt-Vorlage (einfach kopieren und ausfüllen):

 
 
Baue mir einen propform Calendar-Loop Filter für _bCalendarRek_(...), mit dieser Grammatik:
- 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/endDate sind Pflicht, sonst gibt’s (je nach Implementierung) Default-Zeiträume oder keine Treffer.

  • Wenn du Makros wie _Id im Filter nutzt, müssen die Loop-Args vorab aufgelöst sein (propform macht das automatisch, wenn du die Pre-Resolve-Logik aktiviert hast).

  • conflicts als data Feld kann je nach Setup zu leeren Antworten führen → bei Bedarf weglassen.