38 lines
1.2 KiB
Markdown
38 lines
1.2 KiB
Markdown
# 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
|
|
```
|