diff --git a/resource_multi_week_calendar/models/resource_calendar.py b/resource_multi_week_calendar/models/resource_calendar.py
index 20c1c177226..3bb93daa30c 100644
--- a/resource_multi_week_calendar/models/resource_calendar.py
+++ b/resource_multi_week_calendar/models/resource_calendar.py
@@ -144,6 +144,15 @@ def _get_week_number(self, day=None):
         )
         return (weeks_since_epoch % family_size) + 1
 
+    def _get_calendar(self, day=None):
+        self.ensure_one()
+        if not self.is_multi_week:
+            return self
+        week_number = self._get_week_number(day=day)
+        return self.family_calendar_ids.filtered(
+            lambda item: item.week_number == week_number
+        )
+
     @api.depends(
         "multi_week_epoch_date",
         "week_number",
@@ -153,9 +162,7 @@ def _compute_current_week(self):
         for calendar in self:
             current_week_number = calendar._get_week_number()
             calendar.current_week_number = current_week_number
-            calendar.current_calendar_id = calendar.family_calendar_ids.filtered(
-                lambda item: item.week_number == current_week_number
-            )
+            calendar.current_calendar_id = calendar._get_calendar()
 
     @api.constrains("parent_calendar_id", "child_calendar_ids")
     def _check_child_is_not_parent(self):
@@ -215,7 +222,6 @@ def _split_into_weeks(self, start_dt, end_dt):
             # Move to the next week (start of next Monday)
             current_start = current_end
 
-
     def _attendance_intervals(self, start_dt, end_dt, resource=None):
         self.ensure_one()
         if not self.is_multi_week: