Audit log

Every decision Openavail makes is an immutable row in the audit log.

What is logged

ActionWhen it's recorded
acceptA booking request was approved and the hold created
rejectA request was denied (rule, priority, or conflict)
preemptA higher-priority request displaced an existing hold or committed meeting
counterOpenavail returned alternative slots instead of the requested one
hold_expiredAn agent never confirmed a hold before its TTL
undoAn authorized dashboard user reversed a preemption via the undo link

Every row captures: decision_id, action, agent_id, api_key_id, calendar_owner, rule_fired, latency_ms, timestamp.

Test Flight receipts

Rows created by Agent Test Flight are normal audit rows with a structured Test Flight marker.

In the dashboard, those rows show a Test flight label. The receipt still records the normal actor, proposal, approval, booking, and side effects, including the Google Calendar write after approval.

Cleanup does not delete Test Flight receipts. It may revoke the internal Test Flight credential, disable the Test Agent, and cancel the test calendar event, but the audit history remains.

Reading the audit log

In the dashboard, go to Audit log. The log is paginated and sorted newest-first. Click any row to see the full decision record including the raw request payload and the rule evaluation trace.

Filtering

Use the filter bar to narrow by:

  • Agent — show decisions from a specific agent
  • Calendar owner — show decisions affecting a specific person's calendar
  • Action — show only preemptions, only rejects, etc.
  • Time range — any ISO 8601 range

Filters compose (AND). URL query parameters are preserved so filtered views can be bookmarked or shared.

Exporting

The dashboard exports the visible (filtered) set as JSONL. Each line is one decision record. The export is gzip-compressed for large sets.

For programmatic access, use GET /v1/audit-logs — see the API reference for filtering and pagination.