Skip to content

Show only accepted calendar events in the sidebar timeline - #7959

Merged
ComputelessComputer merged 2 commits into
mainfrom
devin/1790906586-sidebar-accepted-events
Oct 2, 2026
Merged

ComputelessComputer merged 2 commits into
mainfrom
devin/1790906586-sidebar-accepted-events

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Intent: The sidebar timeline listed invitations the user never responded to (e.g. spam "Invitation To Submit Proposal" all-day series). Sync already drops declined events, but pending/tentative ones still showed. The sidebar should only show events the user accepted or organizes.

  • useTimelineEventsTable now selects json_extract(attendance_json, '$.self_status') AS self_status (column added in Require calendar attendance before automatic recording #7926).
  • deriveTimelineWindowData skips rows with self_status in pending | tentative | declined. They are also excluded from hasMoreFutureItems, and "Show Deleted Events" doesn't bring them back.
  • Events with no attendance data, or unknown, organizer, or accepted, are still shown. Personal events with no attendees (gym, etc.) are unaffected.
  • This applies to the sidebar timeline and its upcoming-meeting chip, both of which go through deriveTimelineWindowData. The calendar view and tray read the same table but don't use that path, so they don't change.
  • Events synced before Require calendar attendance before automatic recording #7926 have attendance_json = NULL and stay visible until the next sync fills it in.

Demo

N/A: this is a filtering change in the sidebar data path and is covered by a unit test. It hasn't been recorded on a calendar with real invites.

Verification

  • pnpm -F desktop exec vitest run src/sidebar/timeline src/calendar (new test: deriveTimelineWindowData hides events the user has not accepted)
  • pnpm -F desktop typecheck
  • pnpm exec dprint fmt, pnpm exec oxlint --quiet on the touched dirs

Link to Devin session: https://app.devin.ai/sessions/117bddedb2ca476ab1f6e116525e6097
Open in Devin Desktop: https://app.devin.ai/desktop/session/117bddedb2ca476ab1f6e116525e6097?variant=devin
Requested by: @ComputelessComputer


Summary by cubic

Stops the sidebar timeline from listing calendar invitations the user never responded to (pending or tentative invites), so it only shows events the user accepted or organizes.

  • Filters out events whose attendance_json self_status is pending, tentative, or declined in deriveTimelineWindowData; they're also excluded from hasMoreFutureItems and not brought back by "Show Deleted Events."
  • Events with no attendance data, invalid attendance_json (now treated as missing), or unknown, organizer, or accepted status still show, so personal events without attendees are unaffected.
  • Applies to the sidebar timeline and its upcoming-meeting chip; the calendar view and tray read the same table but don't use this path and are unchanged.
  • Events synced before attendance_json existed stay visible until the next sync fills the field in; malformed attendance_json is handled the same way and also remains visible.

Written for commit fd99c63. Summary will update on new commits.

Review in cubic

Co-Authored-By: John <john@fastrepl.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access that start with 'Devin'.

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin resolved the finding on fd99c63

Fixed by Devin (1)

  • Malformed attendance empties the event timeline

View all findings in Devin Review

Devin Review

@ComputelessComputer
ComputelessComputer merged commit 1304e0d into main Oct 2, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant