diff --git a/models/calendar_event.py b/models/calendar_event.py
index 341181ce7669cc113881b02fe964158ff35c142b..23ef9884b7c166d3543246db8a2ba17abfdd500b 100644
--- a/models/calendar_event.py
+++ b/models/calendar_event.py
@@ -187,7 +187,7 @@ class CalendarEvent(models.Model):
         bm_event.main.status = ICalendarElementStatus("Confirmed")
         bm_event.main.organizer = ICalendarElementOrganizer()
         bm_event.main.organizer.commonName = event.user_id.partner_id.name
-        bm_event.main.organizer.mailto = event.user_id.partner_id.mail
+        bm_event.main.organizer.mailto = event.user_id.partner_id.email
         if event.user_id.bluemind_user_id:
             bm_event.main.organizer.dir = (
                 "bm://"
@@ -240,7 +240,7 @@ class CalendarEvent(models.Model):
         bm_event.main.alarm = []
         for alarm in self.alarm_ids:
             al = ICalendarElementVAlarm()
-            if alarm.alarm_type = "notification":
+            if alarm.alarm_type == "notification":
                 al.action = ICalendarElementVAlarmAction("Display")
             else:
                 al.action = ICalendarElementVAlarmAction("Email")
@@ -275,7 +275,7 @@ class CalendarEvent(models.Model):
         if event.recurrency:
             bm_event.main.rrule = ICalendarElementRRule()
             bm_event.main.rrule.frequency = ICalendarElementRRuleFrequency(
-                event.frequency.toupper()
+                event.rrule_type.upper()
             )
             bm_event.main.rrule.interval = event.interval
             if event.end_type == "count":
@@ -287,12 +287,12 @@ class CalendarEvent(models.Model):
                 bm_event.main.rrule.until.timezone = event.event_tz
 
             if (
-                event.frequency == "monthly" and event.month_by == "day"
-            ) or event.frequency == "weekly":
+                event.rrule_type == "monthly" and event.month_by == "day"
+            ) or event.rrule_type == "weekly":
                 bm_event.main.rrule.byDay = [ICalendarElementRRuleWeekDay()]
                 bm_event.main.rrule.byDay[0].day = str(event.weekday)
                 bm_event.main.rrule.byDay[0].offset = int(event.byday)
-            elif event.frequency == "monthly" and event.month_by == "date":
+            elif event.rrule_type == "monthly" and event.month_by == "date":
                 bm_event.main.rrule.byMonthDay = [event.day]
 
         return bm_event
diff --git a/models/res_users.py b/models/res_users.py
index e0860b1fd6d741a2e735502a74ee9c1e0ec9788f..aebe0ed3d4183499956641f9d43a0ba73107b97b 100644
--- a/models/res_users.py
+++ b/models/res_users.py
@@ -157,48 +157,52 @@ class ResUser(models.Model):
 
         # Calendar entries created on Bluemind side, not already in Odoo
         # The events already in Odoo are ignored (probably already synced previously
-        events_to_create = []
-        bm_events_to_create_uids = [
-            e for e in bm_created_uids if e not in odoo_events_bm_uids
-        ]
-        # Retrieve remaining full events from Bluemind
-        bm_events_to_create = bm_calendar.multipleGet(bm_events_to_create_uids)
-        # Create corresponding events in Odoo
-        for bm_event in bm_events_to_create:
-            # Only if Organizer is the same as Odoo user or if is not linked to
-            # any active Odoo internal user
-            if (
-                bm_event.value.main.organizer.mailto == self.partner_id.email
-                or bm_event.value.main.organizer.mailto not in odoo_users_emails
-            ):
-                events_to_create.append(Calendar._bm_to_odoo_values(bm_event))
-        if events_to_create:
-            Calendar.create(events_to_create)
+        if bm_created_uids:
+            events_to_create = []
+            bm_events_to_create_uids = [
+                e for e in bm_created_uids if e not in odoo_events_bm_uids
+            ]
+            # Retrieve remaining full events from Bluemind
+            bm_events_to_create = bm_calendar.multipleGet(bm_events_to_create_uids)
+            # Create corresponding events in Odoo
+            for bm_event in bm_events_to_create:
+                # Only if Organizer is the same as Odoo user or if is not linked to
+                # any active Odoo internal user
+                if (
+                    bm_event.value.main.organizer.mailto == self.partner_id.email
+                    or bm_event.value.main.organizer.mailto not in odoo_users_emails
+                ):
+                    events_to_create.append(Calendar._bm_to_odoo_values(bm_event))
+            if events_to_create:
+                Calendar.create(events_to_create)
 
         # Calendar entries that have been updated on Bluemind
         # Retrieve full events from Bluemind
-        bm_events_to_update = bm_calendar.multipleGet(bm_updated_uids)
-        # Update corresponding events
-        for bm_event in bm_events_to_update:
-            odoo_event = odoo_events_bm_linked.filtered(
-                [("bluemind_id", "=", bm_event.uid)]
-            )
-            # If related event exists in Odoo and belongs to the user, update it
-            if odoo_event:
-                if odoo_event.user_id == self:
-                    odoo_event.update_odoo_event_from_bm(bm_event)
-            # If event does not exist in Odoo log an info
-            else:
-                _logger.info(
-                    "Event %s updated in Bluemind does not exist in Odoo", bm_event.uid
+        if bm_updated_uids:
+            bm_events_to_update = bm_calendar.multipleGet(bm_updated_uids)
+            # Update corresponding events
+            for bm_event in bm_events_to_update:
+                odoo_event = odoo_events_bm_linked.filtered(
+                    [("bluemind_id", "=", bm_event.uid)]
                 )
+                # If related event exists in Odoo and belongs to the user, update it
+                if odoo_event:
+                    if odoo_event.user_id == self:
+                        odoo_event.update_odoo_event_from_bm(bm_event)
+                # If event does not exist in Odoo log an info
+                else:
+                    _logger.info(
+                        "Event %s updated in Bluemind does not exist in Odoo", bm_event.uid
+                    )
 
         # Calendar entries that have been deleted on Bluemind to be deleted on Odoo
         # (only if belongs to user)
-        odoo_events_to_delete = odoo_events_bm_linked.filtered(
-            [("bluemind_id", "in", bm_deleted_uids), ("user_id", "=", self.id)]
-        )
-        odoo_events_to_delete.unlink(from_bluemind=True)
+        if bm_deleted_uids:
+            odoo_events_to_delete = odoo_events_bm_linked.filtered(
+                [("bluemind_id", "in", bm_deleted_uids), ("user_id", "=", self.id)]
+            )
+            if odoo_events_to_delete:
+                odoo_events_to_delete.unlink(from_bluemind=True)
 
         # Update user last_sync_version with the latest one retrieved from Bluemind
         self.last_sync_version = bm_last_version