'This method should be called as the user to sync.'

def synchronize_events(self, lastSync=True):

    user_to_sync = ((self.ids and self.ids[0]) or self.env.uid)
    current_user = self.env['res.users'].sudo().browse(user_to_sync)
    recs = self.sudo(user_to_sync)
    (status, current_google, ask_time) = recs.get_calendar_primary_id()
    if current_user.google_calendar_cal_id:
        if (current_google != current_user.google_calendar_cal_id):
            return {'status': 'need_reset', 'info': {'old_name': current_user.google_calendar_cal_id, 'new_name': current_google}, 'url': ''}
        if (lastSync and recs.get_last_sync_date() and (not recs.get_disable_since_synchro())):
            lastSync = recs.get_last_sync_date()
            _logger.info('[%s]    Calendar    Synchro    -    MODE    SINCE_MODIFIED    :    %s    !', user_to_sync, fields.Datetime.to_string(lastSync))
        else:
            lastSync = False
            _logger.info('[%s]    Calendar    Synchro    -    MODE    FULL    SYNCHRO    FORCED', user_to_sync)
    else:
        current_user.write({'google_calendar_cal_id': current_google})
        lastSync = False
        _logger.info('[%s]    Calendar    Synchro    -    MODE    FULL    SYNCHRO    -    NEW    CAL    ID', user_to_sync)
    new_ids = []
    new_ids += recs.create_new_events()
    new_ids += recs.bind_recurring_events_to_google()
    res = recs.update_events(lastSync)
    current_user.write({'google_calendar_last_sync_date': ask_time})
    return {'status': ((res and 'need_refresh') or 'no_new_event_from_google'), 'url': ''}
