docs: def tag_event(self, calendar_id, event_id, extendedProperties):
          '''Add extendedProperties to a meeting. Warning: extendedProperties must contain only shared and private dicts and
             their contents will overwrite anything in the event's extendedProperties i.e. we do *not* deep-merge the dicts.
          '''
          event_body = self.service.events().get(calendarId = self.configured_calendar_ids[calendar_id], eventId=event_id).execute()
          event_body['extendedProperties'] = event_body.get('extendedProperties', {})
          event_body['extendedProperties']['shared'] = event_body['extendedProperties'].get('shared', {})
          event_body['extendedProperties']['private'] = event_body['extendedProperties'].get('private', {})
          assert(sorted(set(extendedProperties.keys()).union(set(['shared', 'private']))) == ['private', 'shared'])
          for k, v in extendedProperties['shared'].iteritems():
              event_body['extendedProperties']['shared'][k] = v
          for k, v in extendedProperties['private'].iteritems():
              event_body['extendedProperties']['private'][k] = v
          raise Exception('not tested yet')
          updated_event = self.service.events().update(calendarId = self.configured_calendar_ids[calendar_id], eventId = event_id, body = event_body).execute()