diff --git a/server/reflector/services/ics_sync.py b/server/reflector/services/ics_sync.py index 2a4855cb..1d49d24a 100644 --- a/server/reflector/services/ics_sync.py +++ b/server/reflector/services/ics_sync.py @@ -319,21 +319,6 @@ class ICSSyncService: calendar = self.fetch_service.parse_ics(ics_content) content_hash = hashlib.md5(ics_content.encode()).hexdigest() - if room.ics_last_etag == content_hash: - logger.info("No changes in ICS for room", room_id=room.id) - room_url = f"{settings.UI_BASE_URL}/{room.name}" - events, total_events = self.fetch_service.extract_room_events( - calendar, room.name, room_url - ) - return { - "status": SyncStatus.UNCHANGED, - "hash": content_hash, - "events_found": len(events), - "total_events": total_events, - "events_created": 0, - "events_updated": 0, - "events_deleted": 0, - } # Extract matching events room_url = f"{settings.UI_BASE_URL}/{room.name}" diff --git a/server/tests/test_ics_sync.py b/server/tests/test_ics_sync.py index e448dd7d..6ead3868 100644 --- a/server/tests/test_ics_sync.py +++ b/server/tests/test_ics_sync.py @@ -189,14 +189,17 @@ async def test_ics_sync_service_sync_room_calendar(): assert events[0].ics_uid == "sync-event-1" assert events[0].title == "Sync Test Meeting" - # Second sync with same content (should be unchanged) + # Second sync with same content (calendar unchanged, but sync always runs) # Refresh room to get updated etag and force sync by setting old sync time room = await rooms_controller.get_by_id(room.id) await rooms_controller.update( room, {"ics_last_sync": datetime.now(timezone.utc) - timedelta(minutes=10)} ) result = await sync_service.sync_room_calendar(room) - assert result["status"] == "unchanged" + assert result["status"] == "success" + assert result["events_created"] == 0 + assert result["events_updated"] == 0 + assert result["events_deleted"] == 0 # Third sync with updated event event["summary"] = "Updated Meeting Title"