Schedules
A schedule defines the final set of bookable slots by combining one base sequence with zero or more filter sequences.
Sequences generate repeating time intervals.
A schedule uses these generated intervals to determine which slots remain valid for booking.
The schedule itself does not define repetition patterns. Those are defined by sequences.
Structure of a schedule
A schedule consists of:
- One base sequence
- Zero or more filter sequences
The base sequence generates the initial candidate slots.
Each filter sequence then removes slots that do not satisfy the configured temporal relations.
Conceptually:
Filters are evaluated sequentially, but since filters only remove slots, the order normally does not affect the final result.
Base sequence
A schedule always begins with exactly one base sequence.
The base sequence generates the candidate slots used as the starting point for evaluation.
Example:
Generated slots:
These slots represent the initial availability before any filtering is applied.
Filter sequences
Each additional sequence in the schedule acts as a filter.
A filter sequence generates its own set of intervals, which are then used to evaluate the base slots.
Filters never create new slots.
They only remove slots generated by the base sequence.
Slot comparison
For each slot generated by the base sequence, the system compares it against all slots generated by the filter sequence.
Conceptually:
Temporal relations define how the base slot must relate to a filter slot.
Relations always evaluate in the following direction:
Users may select any combination of supported temporal relations.
Filter rules
Each filter sequence contains two rule groups:
- Any
- None
These rule groups determine how base slots are accepted or rejected.
Any
A base slot must match at least one temporal relation against at least one slot generated by the filter sequence.
If no such match exists, the slot is removed.
None
If a base slot matches any temporal relation in the None group against any filter slot, the slot is removed.
Combined evaluation
A slot survives the filter only if:
Even if a slot satisfies the Any rule, it will still be removed if it also matches a None rule.
Empty filter rules
If a filter sequence exists but no Any relations are configured, then no base slot can satisfy the filter condition.
In this situation:
Multiple filters
Schedules may contain multiple filters.
Each filter receives the remaining slots from the previous stage.
Conceptually:
slots = generate(baseSequence)
slots = applyFilter1(slots)
slots = applyFilter2(slots)
slots = applyFilter3(slots)
Because filters only remove slots, the final result is the subset of base slots that satisfy all filter conditions.
Preview
The schedule editor provides a preview that shows the slots generated by the current configuration.
The preview uses the same slot generation and filtering logic as the scheduling engine and therefore represents the actual resulting slots.
The preview is calculated starting from a selected date.
Summary
A schedule generates bookable slots through a three-step process:
- The base sequence generates candidate slots.
- Filter sequences generate their own intervals.
- Base slots are removed unless they satisfy the configured temporal relations.
The remaining slots represent the final availability defined by the schedule.
Related resources
Understand the concept