zinc-collective / convene

An Operating System for the Solidarity Economy
https://convene.zinc.coop
Other
57 stars 19 forks source link

Furniture: Event Schedula #38

Open user512 opened 4 years ago

user512 commented 4 years ago

This Issue May Be Closed When...

Feature Definition

Scenario: Member schedules an event in an unavailable room
Scenario: Member schedules an open event in an available room
Scenario: Member schedules an internal event in an available room
Scenario: Member schedules a locked event in an available room
Scenario: Member schedules a listed event in an available room
Scenario: Member schedules an unlisted event in an available room
Scenario: Member sees all listed events
Scenario: Guest sees details for listed events that are open or locked

Product Considerations

We want this to be as light as possible from a "buildout" perspective, ideally to the point where we don't even need a Convene UI for most of these features.

For example, for room availability to be discernable in non-Convene spaces, we may want to allow users to add a Room's (or Space?)'s events as a calendar in other calendaring apps. We may want rooms to be bookable by adding a room email address to an existing calendar invite.

That said, we may want to build affordances into the Convene UI for these actions as well.

Engineering Considerations

For booking via email, we could give every room their own calendar and their own $(space)-($room) email address (i.e. zinc-convene@convene.zinc.coop) and use ActionMailbox to process inbound emails attachments for ics files and respond as appropriate. See the icalendar gem for details.

For exposing a Space or Room's events, we could look into the Internet Calendar format and the h-event format.

zspencer commented 4 years ago

I'm moving scheduling out of 1.0; I think it makes sense as it's own release (maybe 1.1?) but I really want us to get 1.0 out the door with baseline functionality before starting on the broader feature set.

Thoughts @colombene / @maximegalon5 / @user512?