# Task: Curated catalog and ICS import sync ## Goal Add searchable curated calendar catalog metadata and background `.ics` import sync. ## Feature Spec - `docs/FEATURES/calendar-integrations.md` ## Scope - Add curated calendar catalog storage or seed data for trusted external calendar sources. - Add catalog search/filter APIs by country, region, language, category, culture/religion, and provider. - Add `.ics` fetch, parse, recurrence expansion, and normalized event storage. - Support manual refresh for manageable sources. - Track last attempted sync, last successful sync, and last sync error. - Preserve all-day events without timezone date shifting. - Respect timezone-bearing timed events and floating timed events according to the feature spec. - Add backend tests for parsing, recurrence expansion, timezone behavior, and sync error handling. ## Relevant Files - `backend/src/Socialize.Api/Modules/CalendarIntegrations/` - `backend/src/Socialize.Api/Data/AppDbContext.cs` - `backend/tests/Socialize.Tests/` - `docs/FEATURES/calendar-integrations.md` - `shared/openapi/openapi.json` - `frontend/src/api/schema.d.ts` ## Validation ```bash dotnet build backend/Socialize.slnx dotnet test backend/Socialize.slnx ./scripts/update-openapi.sh ```