Composite DSL
The composite DSL lets you write rules that combine multiple conditions to modify meeting class priorities at runtime.
What is the composite DSL
By default, meeting class priority is a static number you set in the dashboard. The composite DSL lets you write conditional priority rules that adjust that number based on context:
- "Add +20 priority to recruiting interviews in May"
- "Cap external_customer_call at priority 60 during code freeze"
- "Block all bookings outside working hours regardless of priority"
Rules are evaluated in order of their priority field (lower number = evaluated first).
Syntax
composite/<rule-name>
when: <condition>
then: <modifier>
Example:
- name: may_recruiting_boost
when:
class: recruiting_interview
month: [5]
then:
priority_add: 20
- name: freeze_cap
when:
class: external_customer_call
tag: code_freeze
then:
priority_max: 60
Priority modifiers
| Modifier | Effect |
|---|---|
priority_add: N | Add N to the class's base priority |
priority_set: N | Override the priority to exactly N |
priority_max: N | Cap the priority at N (can only lower, never raise) |
reject: true | Unconditionally reject any request matching the condition |
Modifiers are applied in order. If multiple rules match, their effects stack (except reject which short-circuits).
Example rules
Protect focus time during deep work hours:
- name: protect_focus_blocks
when:
class: focus_block
hour_range: [9, 12]
then:
priority_add: 30
Block all bookings on a specific date:
- name: company_holiday
when:
date: '2026-07-04'
then:
reject: true
reason: 'Company holiday — no bookings'
Evaluation order
- Hard constraints (working hours, sacred meetings) — evaluated first, cannot be overridden
- Composite DSL rules — evaluated in ascending
priorityorder - Base class priority — used if no composite rule modifies it
If a composite rule produces reject: true, processing stops immediately and the audit row records rule_fired: <rule-name>.