Rule layers
Rules cascade from the org down to each calendar owner. The owner always wins on any field they explicitly set.
Layer model
Org defaults
↓
Owner overrides
↓
Effective rules (what Openavail enforces)
Two layers. No team layer in v1 (planned for v1.5). Every calendar owner inherits the org defaults and can override any field for themselves.
Org defaults
Set in Dashboard → Rules → Org defaults. These apply to every calendar owner who hasn't overridden a given field.
| Setting | Description | Default |
|---|---|---|
working_hours | Days and hours available for booking | Mon–Fri 09:00–17:00 UTC |
buffer_minutes | Minimum gap between consecutive meetings | 15 |
max_meetings_per_day | Hard cap on bookings per day | 8 |
sacred_meeting_age_hours | How old a committed booking must be before it's immune to preemption | 24 |
Owner overrides
Calendar owners set their own rules in Dashboard → Calendars → [owner] → Rules. Any field left blank inherits from the org default.
Example:
Org: working_hours start=09:00, buffer=15 min
CEO: working_hours start=10:00 (explicit)
CEO effective: start=10:00, buffer=15 min ← inherits buffer
Merge semantics
- If an owner has set a field → their value is used
- If an owner has NOT set a field → the org default is used
- Neither layer can leave a required field undefined — the org default must cover all fields
Sacred meeting age
sacred_meeting_age_hours defines when a committed booking becomes sacred — immune to displacement regardless of priority. Once a meeting is sacred:
- No agent can preempt it, even at max priority
- The audit log records any attempt as
action: rejected, reason: sacred
The default is 24 hours. Raise it for enterprise orgs with long planning cycles; lower it for fast-moving teams where same-day schedule changes are normal.