# 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
```
