Nice. I will probably steal this.
You may want to determine the email addresses from the calendar entries instead of hard-coding them.
I'm not that worried about it: I've put email addresses on my site for years without apparently getting spam from it, and embedded in JS is even less likely to be caught. Some of this is a result of other people setting up honeypots where they put out email addresses and ban anyone sending mail to them.
If you did want to avoid it, though, you could use hashing. It's using the list of emails to figure out which columns to put check marks in, and replacing email addresses with email address hashes (and then hashing the emails on events before comparing) would do the same thing.
Ah, nice. I noticed that mail spam got less but assumed that was due to better filtering. But I didn't know that honey pots are part of it. For others to read up: Project Honey Pot
For house dinner we need a way of coordinating who is going to cook what days and marking who will/won't be at dinner. For the past ~7y we've used a piece of paper on the fridge with a row for each day. This is not a bad system, and it's generally worked well, but it has a few downsides:
Some of our housemates live downstairs, and coming up to read or modify the sheet is a bit annoying.
One of our housemates will soon move to a nearby house, making this even harder.
Same issue if you are traveling or want to make a change while you're out.
Some housemates are "default present" while others are "default absent", and it's annoying remembering which.
We're adding a new housemate who will only be here some weeks.
So we're trying out a new system, a digital one. Like with any post you make right when you start a new system there's some risk that it isn't a good one and you don't know yet, but that beats never describing it at all.
We now have one Google Calendar event for each day of the week, each marked as recurring weekly. Each housemate is invited, and can RSVP to individual instances or the repeated event. This lets you communicate "I'll be gone this Friday", or "I'm not going to make Fridays", or "I'm not going to make Fridays, but I'll be here this Friday". To cook you edit the title to add "Name cooking" and if you're bringing a guest you can either invite them to the instance of the event or add their name to the title.
It's also helpful to see cooking and eating plans at a glance, so I made a web page that summarizes the current state. You log in with Google, give it read access to your calendar, and it summarizes events named "Dinner":
The page is here and you're welcome to look at the source, but it won't work for you unless you live here. If you want to tweak and use for your house, though, go ahead! There are comments in the HTML source saying how.
Overall this is almost the way I like it, except that login only lasts for an hour. The authentication token I get from Google is good for one hour, after which you need to OAuth again (though you don't need to reconsent to Calendar API access). I haven't figured out how to fix this, and I've asked on StackOverflow.