def to_api_data(self, restrict_keys=None):
        """ Returns a dict to communicate with the server

        :param restrict_keys: a set of keys to restrict the returned data to
        :rtype: dict
        """
        cc = self._cc  # alias
        data = {
            cc('subject'): self.__subject,
            cc('body'): {
                cc('contentType'): self.body_type,
                cc('content'): self.__body},
            cc('start'): self._build_date_time_time_zone(self.__start),
            cc('end'): self._build_date_time_time_zone(self.__end),
            cc('attendees'): self.__attendees.to_api_data(),
            cc('location'): {cc('displayName'): self.__location},
            cc('categories'): self.__categories,
            cc('isAllDay'): self.__is_all_day,
            cc('importance'): cc(self.__importance.value),
            cc('isReminderOn'): self.__is_reminder_on,
            cc('reminderMinutesBeforeStart'): self.__remind_before_minutes,
            cc('responseRequested'): self.__response_requested,
            cc('sensitivity'): cc(self.__sensitivity.value),
            cc('showAs'): cc(self.__show_as.value),
        }

        if self.__recurrence:
            data[cc('recurrence')] = self.__recurrence.to_api_data()

        if self.has_attachments:
            data[cc('attachments')] = self.__attachments.to_api_data()

        if restrict_keys:
            for key in list(data.keys()):
                if key not in restrict_keys:
                    del data[key]
        return data
def to_api_data ( self , restrict_keys = None ) : cc = self . _cc data = { cc ( 'subject' ) : self . __subject , cc ( 'body' ) : { cc ( 'contentType' ) : self . body_type , cc ( 'content' ) : self . __body } , cc ( 'start' ) : self . _build_date_time_time_zone ( self . __start ) , cc ( 'end' ) : self . _build_date_time_time_zone ( self . __end ) , cc ( 'attendees' ) : self . __attendees . to_api_data ( ) , cc ( 'location' ) : { cc ( 'displayName' ) : self . __location } , cc ( 'categories' ) : self . __categories , cc ( 'isAllDay' ) : self . __is_all_day , cc ( 'importance' ) : cc ( self . __importance . value ) , cc ( 'isReminderOn' ) : self . __is_reminder_on , cc ( 'reminderMinutesBeforeStart' ) : self . __remind_before_minutes , cc ( 'responseRequested' ) : self . __response_requested , cc ( 'sensitivity' ) : cc ( self . __sensitivity . value ) , cc ( 'showAs' ) : cc ( self . __show_as . value ) , } if self . __recurrence : data [ cc ( 'recurrence' ) ] = self . __recurrence . to_api_data ( ) if self . has_attachments : data [ cc ( 'attachments' ) ] = self . __attachments . to_api_data ( ) if restrict_keys : for key in list ( data . keys ( ) ) : if key not in restrict_keys : del data [ key ] return data
Returns a dict to communicate with the server

        :param restrict_keys: a set of keys to restrict the returned data to
        :rtype: dict