Slate is an event coordination tool that compiles the calendars of participants to generate a table representing when the most participants can attend.
The initial version of Slate is the 2021-22 major project by Andrew Simonson.
In version 2.0 the project (now 2022-23 major project, also Andrew Simonson) gained a much improved UX, large performance improvements, Computer Science House service integration, and basic analytics. This iteration is the first I consider publishable (delivers on all base objectives and is user-friendly)
Although not initially inspired by the Where2Meet site, Slate is similar in many aspects and expands upon it via automated long-term data collection and more flexible use cases.
A hypothetical Slate 3.0 feature wishlist:
* Slate could be sped up by an order of magnitude by ditching icalendar dependencies in favor of {start-datetime, end-datetime} pairs for events. Unfortunately, icalendar (more specifically, the multiple types of recurring events) is also pretty scary.
Optional input, names the participant. Defaults to 'Unnamed ##'
URLS are references to ics (iCalendar files) online. Most digital calendars use (or can export) ics calendars.
Google Calendar: Open calendar settings. Under 'Integrate Calendar', copy 'Public address in iCal format'. Depending on preferences, your calendar might need to be made public.
iCloud Calendars (iOS): in 'Edit Calendar', turn on 'Public Calendar' and share link.
Scores determine the value of a participant's attendance. The higher the score, the worse it is when they cannot attend.
Scores of -1 indicate a mandatory attendance (aka the key speaker cannot make it or the room is not available) and such timeslots will be greyed out.
If you are logged in, you can select members of your organization. This leaves only the score to be set.
Participants without accounts can be added by their ics file urls.
Slate is spreadsheet friendly! If you have a list of URLS, names, or scores, paste them in divided by newlines and the URLs will automatically overflow into new participant inputs.