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.

SettingDescriptionDefault
working_hoursDays and hours available for bookingMon–Fri 09:00–17:00 UTC
buffer_minutesMinimum gap between consecutive meetings15
max_meetings_per_dayHard cap on bookings per day8
sacred_meeting_age_hoursHow old a committed booking must be before it's immune to preemption24

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.