Goal
Surface calendar invites in the dashboard with Accept / Decline / Open actions, alongside email triage items. The agent already has list_calendar_events / accept_invite / decline_invite / create_event_from_email tools — this sub-issue gives them a dashboard surface so calendar decisions are part of the same daily-driver flow as inbox decisions.
Why now
Fifth sub-issue under #1007. Builds on the state machine and reuses the existing calendar tools shipped in PR #965. Lands after Drafted (#1011) because the calendar surface is conceptually similar (cards with confirm-gated actions) and reusing the Drafted column's patterns is cheaper.
Scope
- A new dashboard column / strip dedicated to calendar items (placement in the existing 3-column layout is a UX call — could be a fourth column on wide viewports, or stacked below the Surfaced column on narrow ones).
- Pull events via the existing
list_calendar_events tool. Same Refresh button as the inbox surface; no separate refresh.
- Each calendar card displays: organizer, title, time window, response status (accepted / declined / pending), conflict warning if it overlaps another event in the fetched window.
- Three actions: Accept, Decline, Open (opens in Google Calendar in a new tab). Accept and Decline gate through the existing
TOOLS_REQUIRING_CONFIRMATION confirmation flow.
missing_organizer flag from the existing tool surfaces visibly (suspicious-invite indicator).
- Invites that came in with email messages (existing
create_event_from_email flow) link back to the originating email card on hover/click.
Acceptance
Out of scope
- Creating events from email content (existing
create_event_from_email is invoked through chat for now; standalone dashboard CTA can land later).
- Multi-calendar support beyond the user's primary Google calendar.
- Outlook calendar — covered separately under provider track #963.
Depends on
- #1010 (state machine + store)
Refs
- Parent: #1007
- Existing calendar tools: PR #965
Goal
Surface calendar invites in the dashboard with Accept / Decline / Open actions, alongside email triage items. The agent already has
list_calendar_events/accept_invite/decline_invite/create_event_from_emailtools — this sub-issue gives them a dashboard surface so calendar decisions are part of the same daily-driver flow as inbox decisions.Why now
Fifth sub-issue under #1007. Builds on the state machine and reuses the existing calendar tools shipped in PR #965. Lands after Drafted (#1011) because the calendar surface is conceptually similar (cards with confirm-gated actions) and reusing the Drafted column's patterns is cheaper.
Scope
list_calendar_eventstool. Same Refresh button as the inbox surface; no separate refresh.TOOLS_REQUIRING_CONFIRMATIONconfirmation flow.missing_organizerflag from the existing tool surfaces visibly (suspicious-invite indicator).create_event_from_emailflow) link back to the originating email card on hover/click.Acceptance
list_calendar_eventson Refresh.missing_organizeritems render with a visible warning (suspicious-invite UX from PR #965).Out of scope
create_event_from_emailis invoked through chat for now; standalone dashboard CTA can land later).Depends on
Refs