Smart Events · Feature state machine

Planning Ahead

A single Day Summary entry as it moves between invitation, response, the live event window, and history - plus the loop that turns an empty day into a suggestion.

State diagram

stateDiagram-v2
    [*] --> NoPlan
    NoPlan --> Invited : organiser invites user
    Invited --> Accepted : user taps "Join"
    Invited --> Rejected : user declines invitation
    Accepted --> Ongoing : event day arrives, event underway
    Ongoing --> Past : event ends
    Rejected --> Accepted : user taps "Join" again
    Accepted --> Rejected : "Cancel RSVP" (confirmed)

    NoPlan --> Skipped : "Skip this day"
    Skipped --> [*]

    NoPlan --> OpenToSuggestions : sets available-from time (2pm/5pm/8pm)
    OpenToSuggestions --> Invited : matching plan found nearby

    Past --> [*]
    

States

StateMeaning
NoPlanThe day is empty - suggestions are offered.
InvitedShown in grey - awaiting the user's response.
AcceptedShown in black - user joined or accepted.
RejectedShown in grey with strikethrough.
OngoingToday's event, highlighted blue with a live countdown.
PastEvent has ended; available from group History.
SkippedEmpty day dismissed from the list - not an RSVP action.
OpenToSuggestionsUser declared availability via the /maps/availability call.

Reading the diagram