User scenario
I receive three Partiful invitations for the same Saturday. Before answering, I want the CLI to show which events overlap with commitments I have already marked Going, Maybe, or am hosting, so I can make an informed RSVP.
Problem
events list gives separate summaries and events rsvp writes one response, but neither compares time windows across the caller's Partiful schedule. I currently have to copy dates into my calendar or calculate overlaps manually.
Proposed experience
partiful events conflicts <eventId>
partiful events conflicts --upcoming
partiful events conflicts <eventId> --include-maybe --format json
Human output lists overlapping Partiful events with their RSVP/host state and a clearly labeled overlap window. JSON output returns the queried event or scan range, comparison policy, conflict records, and explicit unknown-duration cases. The default policy should be conservative and documented rather than silently treating missing end times as all-night events.
Scope boundaries
Only compare the authenticated user's permitted Partiful events. Do not read external calendars, change RSVPs, infer travel time, or expose other guests' schedules. This is decision support, not a recommendation to decline an invitation.
Discovery needed
Verified repo facts: events list returns start dates, optional end dates, myRsvp, and isHost; RSVP status values are documented in README and #68. Unknown: whether all invited events and their end times are available through list/detail reads, and the correct policy for absent end times. Establish the policy as a CLI contract and disclose unknowns instead of inventing availability.
Acceptance criteria
- A specific-event query compares it against eligible Partiful commitments without mutating anything.
- Default and opt-in RSVP-state policies are explicit in human and JSON output.
- JSON provides stable conflict entries, overlap bounds when calculable, and unknown-duration reasons.
- No conflicts and no eligible events are successful empty states.
- Missing/malformed times, inaccessible events, and invalid event IDs return structured errors or explicit unknown states without false conflicts.
- Tests cover full overlap, boundary-touching events, nested overlaps, timezone offsets, null end times, status filters, empty states, and JSON shape.
Related work
#19 is calendar synchronization and #18 is aggregate analytics. This issue is a real-time guest RSVP decision based only on the user's own Partiful commitments, not calendar integration or hosting statistics.
User scenario
I receive three Partiful invitations for the same Saturday. Before answering, I want the CLI to show which events overlap with commitments I have already marked Going, Maybe, or am hosting, so I can make an informed RSVP.
Problem
events listgives separate summaries andevents rsvpwrites one response, but neither compares time windows across the caller's Partiful schedule. I currently have to copy dates into my calendar or calculate overlaps manually.Proposed experience
Human output lists overlapping Partiful events with their RSVP/host state and a clearly labeled overlap window. JSON output returns the queried event or scan range, comparison policy, conflict records, and explicit unknown-duration cases. The default policy should be conservative and documented rather than silently treating missing end times as all-night events.
Scope boundaries
Only compare the authenticated user's permitted Partiful events. Do not read external calendars, change RSVPs, infer travel time, or expose other guests' schedules. This is decision support, not a recommendation to decline an invitation.
Discovery needed
Verified repo facts:
events listreturns start dates, optional end dates,myRsvp, andisHost; RSVP status values are documented in README and #68. Unknown: whether all invited events and their end times are available through list/detail reads, and the correct policy for absent end times. Establish the policy as a CLI contract and disclose unknowns instead of inventing availability.Acceptance criteria
Related work
#19 is calendar synchronization and #18 is aggregate analytics. This issue is a real-time guest RSVP decision based only on the user's own Partiful commitments, not calendar integration or hosting statistics.