svsticky / constipated-koala

Management system for our study association
https://koala.svsticky.nl/
GNU General Public License v3.0
16 stars 4 forks source link

Generate and maintain user-specific calendars containing the corresponding users' activities #1037

Open SilasPeters opened 1 year ago

SilasPeters commented 1 year ago

Currently, constipated-koala allows you to view your activities in two ways: by subscribing to a calendar containing all activities of Sticky, or by using the soon-to-be button which generates an .ics file for a specific activity. The latter functions as an alternative to the global calendar, because it clutters the users calendar. However, to use this alternative you have to manually download every activity you sign up for. Combining the best of both worlds, this issue suggests that - using the google API - we create and manage personal calendars containing all activities for which a user signed up for. This way, you have the automatisation of the original global calendar, but the personal experience of the .ics files. The user does not have to interact with his calendar, yet all his personal activities show up in his calendar (given that he subscribed to his personal sticky calendar).

My suggestion is that, next to the button allowing you to subscribe to the global calendar, a new button is added which allows you to subscribe to your personal activities calendar. Potentially, the calendar isn't generated (and maintained) until you first click that button to reduce overhead.

Siem2l commented 1 year ago

Probably a decent solution, a few caveats that should be considered when implementing this. I'd reconsider using the google API as a starting point. Preferably we'd make this system usable by most calendar applications and not limit ourselves to a single instance. A possibility to consider would be to use a public URLs that can be used by any application to fetch the members personally generated ics. An issue with this is that the URL would be publicly available and anybody could link their calendar if they had this link. To prevent this the URL should be long and random so it's not feasible to bruteforce.

Another possible solution would be using a *.ics (usually invite.ics) as a mail attachment. This would create an embed in most mail systems where you can accept or deny the event to your linked calendar. Here is a small example rip my privacy image I think this solution wouldn't be worth it considering. We'd have to send a mail for each enrollment which is quite expensive and quite spammy.