Hey all, thanks for the calendar lexicon
it’s already doing a lot of work for me at Sifa.
Quick context: building Sifa ID, professional identity on atproto and also currently exploring more the event/conference side of someones experience (and from that potentially building a speaker directory, talks directory, personal/org events calendars etc).
The speaker side is now mostly modelled already (a talk, and each delivery of it, currently referencing a community.lexicon.calendar.event).
But what’s I tun into missing on the event side is an event itself declaring/confirming who spoke (or even other types of users like hosts or volunteers etc).
My use-case is a cross-app speaker/talk directory: “who can speak about X, and where have they actually spoken.” and “I’m looking for topics for my conference, what are some well rated/reviewed ones”
For that to work, events need to be able to confirm “these people spoke here”, ideally in the shared lexicon so it isn’t re-invented per app.
So a few things I think are needed for this, and I’d love a sanity check ![]()
- Participant roles beyond RSVP. Attendance today is going/interested/etc. I would also want “person X was (or will be) a speaker / panelist / host / organizer / volunteer at this event” as a first-class role, distinct from a plain attendee. In scope for the community lexicon, or deliberately left to app-specific sidecars?
- Sessions vs the top-level event. A conference has many sessions, and a talk is one speaker in one of them. I saw @flo-bit.dev’s
parentEventidea in the kickoff thread. Is a session = a child event withparentEventthe intended model, or is something else planned? - To get to a confirmed speaker in the appview, one of 2 things need to happen:
- a user adds themself to an event as speaker, event organizer needs to confirm
- an event adds a user as speaker to an event, the user needs to confirm
- Where the data gets entered. I don’t really want to build yet another event-organizer interface, atmo.rsvp and others already do that well. The hope is organizers capture speakers in the tools they already use, and apps like Sifa consume it. Which only works if it lands in the shared lexicon, not a Sifa-only record….
Biggest assumption is #4: imho “events declare their speakers” belongs in community.lexicon.calendar rather than each consumer bolting on its own sidecar (as @ngerakines.me suggested in another thread) ? A sidecar on the Sifa side would allow me to move faster, but then only Sifa would populate it (and again: I don’t necessarily want to build another event interface).
IMHO this will also be super usefull for ATmosphereConf 2027, so would be neat to get this working ![]()
So… WDYT? Lexicon-worthy or just sidecars (and own event interface) all the way?