Events & series¶
The event store is a private, optimistic model of what is going on — explicitly not your real calendar. Rows are short, one line each, which is what keeps a week readable inside a token budget.
Kinds¶
The store holds the whole week as known, not just commitments:
| Kind | Meaning | Example |
|---|---|---|
commitment |
Something you are doing | Poker at Jordan's, Fri ~8pm |
availability |
Someone else's state | Alex free Monday night |
opportunity |
Something happening you might want | Volunteer member day, never replied to |
observed |
Something that already happened | For the backward window |
Availability is what makes introductions work: a brother visiting this week plus Alex free Monday becomes "you should introduce them."
Status and window¶
mentioned / tentative / confirmed / declined / happened. Optimistic
capture means most rows start at mentioned and never go further, and that is
fine. The brief shows 7 days forward and 3 back; everything else stays in the
database behind memcal_list_month and search.
The backward window is the reconciliation surface: Tuesday's optimistic dinner row sits there Wednesday, the agent asks, you answer, the row resolves.
Matching¶
A new mention matches an existing row deterministically first: same series, date within ±10 days, overlapping participants. "The game moved to Sat" updates the Friday row rather than creating a Saturday one. Only genuinely ambiguous near-horizon cases get a model call — and only where being wrong actually costs something.
Cancelling one booking and making another keeps the old row declined and the new row confirmed; they never collapse into one. An older notice cannot undo a newer confirmation.
Series¶
Recurring things get a rule; occurrences stay ordinary rows linked to it. Two poker games are two rows, both linked to the poker-night series, which holds the durable stuff — whose house, the address, roughly monthly.
memcal series poker-night --every fortnightly --on friday --at 20:00
Moving or skipping one week without touching the rule is memcal_move_once
(agent tool).
"Where was poker last time" is a page read, not an archive search: series live alongside the wiki.
Invitations with RSVPs¶
Partiful invitations arrive through calendar data. Memcal keeps their RSVP links and distinguishes an unanswered invitation (opportunity, mentioned) from a confirmed plan — disclosing the location confirms, withholding it does not.