Skip to main content

Screen: Calendar

web/availability.html — nav label "Availability", on-screen title "Calendar". Combines team free/busy with an internal Google Calendar event cache, so SABLE can show both open working time and meeting context, deliberately at different levels of detail for different viewers.

Team rail

Filter people, switch day/week, and check sync health before relying on any open window.

Calendar intelligence

Admins, leads, and consultants can see upcoming internal event details, project-linked meetings, and unmatched meetings that may need routing. Admins and leads can correct a meeting's project match from this panel — see Calendar for how those manual overrides persist through future syncs instead of being wiped out.

Open windows

Shared openings are calculated from readable calendars only; a stale or errored calendar is never treated as free just because it stopped reporting.

Timeline: busy blocks only

The scheduling timeline uses opaque busy blocks — it shows when someone is unavailable, never what they're doing. This is the same privacy split documented on the Availability and Calendar API page: the timeline query selects only busy/free state, full stop.

Approval path for writes

Creating, updating, or cancelling a Google Calendar event is proposed through approvals and only executes when the calendar-write switch (CALENDAR_ACT_WRITES_ENABLED) is armed.

Where the code lives

  • sable-agents-demo/web/availability.html
  • sable-agents-demo/web/api/availability.js, _availability.js
  • sable-agents-demo/web/api/calendar.js, _calendar.js