**Impacted versions:**
V11 community edition
**Steps to reproduce:**
Setup sync with google calendar and click on sync button.
**Current behavior:**

**Error**
> May 23 17:22:16 Serveur odoo-bin[1022]: 2018-05-23 17:22:16,412 1022 ERROR DB odoo.http: Exception during JSON request handling.
2018-05-23 17:22:08,371 1022 INFO DB odoo.models.unlink: User #1 deleted bus.bus records with IDs: [171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 1
May 23 17:22:16 Serveur odoo-bin[1022]: 2018-05-23 17:22:16,412 1022 ERROR DB odoo.http: Exception during JSON request handling.
May 23 17:22:16 Serveur odoo-bin[1022]: Traceback (most recent call last):
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/http.py", line 647, in _handle_exception
May 23 17:22:16 Serveur odoo-bin[1022]:     return super(JsonRequest, self)._handle_exception(exception)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/http.py", line 307, in _handle_exception
May 23 17:22:16 Serveur odoo-bin[1022]:     raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/tools/pycompat.py", line 87, in reraise
May 23 17:22:16 Serveur odoo-bin[1022]:     raise value
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/http.py", line 689, in dispatch
May 23 17:22:16 Serveur odoo-bin[1022]:     result = self._call_function(**self.params)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/http.py", line 339, in _call_function
May 23 17:22:16 Serveur odoo-bin[1022]:     return checked_call(self.db, *args, **kwargs)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/service/model.py", line 97, in wrapper
May 23 17:22:16 Serveur odoo-bin[1022]:     return f(dbname, *args, **kwargs)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/http.py", line 332, in checked_call
May 23 17:22:16 Serveur odoo-bin[1022]:     result = self.endpoint(*a, **kw)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/http.py", line 933, in __call__
May 23 17:22:16 Serveur odoo-bin[1022]:     return self.method(*args, **kw)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/http.py", line 512, in response_wrap
May 23 17:22:16 Serveur odoo-bin[1022]:     response = f(*args, **kw)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/google_calendar/controllers/main.py", line 43, in sync_data
May 23 17:22:16 Serveur odoo-bin[1022]:     return GoogleCal.with_context(context).synchronize_events()
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/google_calendar/models/google_calendar.py", line 589, in synchronize_events
May 23 17:22:16 Serveur odoo-bin[1022]:     res = recs.update_events(lastSync)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/google_calendar/models/google_calendar.py", line 805, in update_events
May 23 17:22:16 Serveur odoo-bin[1022]:     self.create_from_google(event, my_partner_id)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/google_calendar/models/google_calendar.py", line 406, in create_from_google
May 23 17:22:16 Serveur odoo-bin[1022]:     res = self.with_context(context_tmp).update_from_google(False, event.GG.event, "create")
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/google_calendar/models/google_calendar.py", line 518, in update_from_google
May 23 17:22:16 Serveur odoo-bin[1022]:     res = CalendarEvent.create(result).id
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/crm/models/calendar.py", line 38, in create
May 23 17:22:16 Serveur odoo-bin[1022]:     event = super(CalendarEvent, self).create(vals)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/calendar/models/calendar.py", line 1525, in create
May 23 17:22:16 Serveur odoo-bin[1022]:     meeting = super(Meeting, self).create(values)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/mail/models/mail_thread.py", line 231, in create
May 23 17:22:16 Serveur odoo-bin[1022]:     thread = super(MailThread, self).create(values)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/models.py", line 3315, in create
May 23 17:22:16 Serveur odoo-bin[1022]:     self._fields[key].determine_inverse(record)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/fields.py", line 1070, in determine_inverse
May 23 17:22:16 Serveur odoo-bin[1022]:     getattr(records, self.inverse)()
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/calendar/models/calendar.py", line 907, in _inverse_rrule
May 23 17:22:16 Serveur odoo-bin[1022]:     meeting.update(data)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/models.py", line 4493, in update
May 23 17:22:16 Serveur odoo-bin[1022]:     record[name] = value
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/models.py", line 4697, in __setitem__
May 23 17:22:16 Serveur odoo-bin[1022]:     return self._fields[key].__set__(self, value)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/odoo/fields.py", line 979, in __set__
May 23 17:22:16 Serveur odoo-bin[1022]:     record.write({self.name: write_value})
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/google_calendar/models/calendar.py", line 25, in write
May 23 17:22:16 Serveur odoo-bin[1022]:     return super(Meeting, self).write(values)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/calendar/models/calendar.py", line 1482, in write
May 23 17:22:16 Serveur odoo-bin[1022]:     self.env['calendar.alarm_manager'].notify_next_alarm(partners_to_notify)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/calendar/models/calendar.py", line 463, in notify_next_alarm
May 23 17:22:16 Serveur odoo-bin[1022]:     notif = self.sudo(user.id).get_next_notif()
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/calendar/models/calendar.py", line 413, in get_next_notif
May 23 17:22:16 Serveur odoo-bin[1022]:     for one_date in meeting._get_recurrent_date_by_event():
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/calendar/models/calendar.py", line 622, in _get_recurrent_date_by_event
May 23 17:22:16 Serveur odoo-bin[1022]:     return [d.astimezone(pytz.UTC) if d.tzinfo else d for d in rset1]
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/opt/odoo/odoo/addons/calendar/models/calendar.py", line 622, in <listcomp>
May 23 17:22:16 Serveur odoo-bin[1022]:     return [d.astimezone(pytz.UTC) if d.tzinfo else d for d in rset1]
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/usr/local/lib/python3.5/dist-packages/dateutil/rrule.py", line 1385, in _iter
May 23 17:22:16 Serveur odoo-bin[1022]:     advance_iterator(ritem)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/usr/local/lib/python3.5/dist-packages/dateutil/rrule.py", line 1302, in __next__
May 23 17:22:16 Serveur odoo-bin[1022]:     self.dt = advance_iterator(self.gen)
May 23 17:22:16 Serveur odoo-bin[1022]:   File "/usr/local/lib/python3.5/dist-packages/dateutil/rrule.py", line 859, in _iter
May 23 17:22:16 Serveur odoo-bin[1022]:     date = datetime.date.fromordinal(ii.yearordinal + i)
May 23 17:22:16 Serveur odoo-bin[1022]: ValueError: year is out of range

I can see some events on the log that doesn't appear on Odoo. For example, I just created a example event from google calendar. When I sync on Odoo, the event is on the log (with a bunch of other events that still doesn't sync), ready to be added to Odoo. but then, this error appear and nothing is written on the Odoo calendar.

I tried to change the "calendar.debug_print" parameter with value 1 to see more informations in the log. With or without it, the log is the same. But, I do see some sync events similar to this one : 

> ---- A SYNC EVENT ---
May 23 17:22:07 Serveur odoo-bin[1022]:     ID          OE: False
May 23 17:22:07 Serveur odoo-bin[1022]:     ID          GG: uahlj168dp03c6ln4s7gup7hfc
May 23 17:22:07 Serveur odoo-bin[1022]:     Name        OE: False
May 23 17:22:07 Serveur odoo-bin[1022]:     Name        GG: b'tsdfgdgf'
May 23 17:22:07 Serveur odoo-bin[1022]:     Found       OE:False vs GG:  True
May 23 17:22:07 Serveur odoo-bin[1022]:     Recurrence  OE:False vs GG: False
May 23 17:22:07 Serveur odoo-bin[1022]:     Instance    OE:False vs GG: False
May 23 17:22:07 Serveur odoo-bin[1022]:     Synchro     OE:      False
May 23 17:22:07 Serveur odoo-bin[1022]:     Update      OE:      False
May 23 17:22:07 Serveur odoo-bin[1022]:     Update      GG: 2018-04-22 21:12:23.395
May 23 17:22:07 Serveur odoo-bin[1022]:     Status      OE:False vs GG:  True
May 23 17:22:07 Serveur odoo-bin[1022]:     Action      Create
May 23 17:22:07 Serveur odoo-bin[1022]:     Source      GG
May 23 17:22:07 Serveur odoo-bin[1022]:     comment     New EVENT CREATE from GMAIL}
May 23 17:22:08 Serveur odoo-bin[1022]: 2018-05-23 17:22:08,371 1022 INFO DB odoo.models.unlink: User #1 deleted bus.bus records with IDs: [171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 247, 300, 353, 380, 394, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 974, 975]

**Expected behavior:**
Sync both from google and from odoo without error
if isinstance(ids, (pycompat.string_types, pycompat.integer_types)):
        return calendar_id2real_id(ids)
    if isinstance(ids, (list, tuple)):
        return [calendar_id2real_id(_id) for _id in ids]
def real_id2calendar_id(record_id, date):
    return '%s-%s' % (record_id, date.strftime(VIRTUALID_DATETIME_FORMAT))
def any_id2key(record_id):
    """ Creates a (real_id: int, thing: str) pair which allows ordering mixed
    collections of real and virtual events.
    The first item of the pair is the event's real id, the second one is
    either an empty string (for real events) or the datestring (for virtual
    ones)
    :param record_id:
    :type record_id: int | str
    :rtype: (int, str)
    """
    if isinstance(record_id, pycompat.integer_types):
        return record_id, u''
    (real_id, virtual_id) = record_id.split('-')
    return int(real_id), virtual_id
def is_calendar_id(record_id):