Followup in case others try to use addevent on a resource calendar...
I reached out to Glen Pringle (the guy who made that awesome cheat sheet) asking if he had used "addevent". He verified that he was able to do the following successfully:
gam calendar user@domain addevent location "Room 123, 456 Centre Rd, Springfield" description "Description of the meeting, including agenda" summary "Title of the meeting" start 2015-07-28T09:00:00.000Z end 2015-07-28T09:30:00.000Z
I asked if he had used it with a resource calendar or user calendar and he said:
No problem. I've done it with a normal user calendar. I'm not sure it makes sense to do it from a resource calendar - the way resource calendars are normally used is that a user will create an event in their own calendar and then invite the resource. I think this would be accomplished with gam by creating an event in a user's calendar and then adding (inviting) the resource using the attendee argument. Actually, after writing the previous I just tested using a resource calendar and I got the error "invalid_grant: Not a valid email." so I guess that answers it! :-) Using the previous method (add event to user, invite the resource as attendee) does work too.
That is the exact error I was getting from GAM on a resource calendar (after I updated my service json file and got rid of the other issue I was having).
So, thank you very much Glen for answering and testing. Much appreciated. I now better understand how resource calendars should be used and will change our plan of action for school calendars.