mterwill / office-hours-help-queue

A queue to help manage office hours for large courses
GNU General Public License v3.0
84 stars 21 forks source link

Google calendar integration #59

Open mterwill opened 7 years ago

mterwill commented 7 years ago

The way I'd like to implement this is that you can invite course_queue_id@eecs.help to your event, the system will parse incoming mail for ics files, then open the queue at that time.

We can make sure the sender address is whitelisted as a course instructor (and maybe originates from Google Calendar if we are really concerned?).

mterwill commented 7 years ago

This gem looks like a great fit. It has support for recurring events. And as long as you click "Update Guests" when cancelling events Google will send another email with another ics cancelling the event.

mterwill commented 7 years ago

It would actually be better if we could just let Google Calendar handle state for us, but unfortunately invites to a Google Account with + appended to the email (e.g. eecshelp+1@gmail.com) do not get added to the calendar. Will need to figure out a way to specify which queue should get opened. I really like including that artifact in the email – seems elegant, but if it makes it trivial, it could just be put into a note.

I also like the idea of not coupling to Google Calendar, though that does seem to be the de facto standard.

Google has an api client in alpha that seems to get the job done. Easy enough to just get the (e.g.) next 10 events. Then it'd be as simple as scheduling a job to query upcoming events and open/close the queue for those.

mterwill commented 7 years ago

Might be able to use their CalDAV API to validate + upload the events received via email, then the Google Calendar API to pull them down.