# Task: User ICS export feed

## Goal

Let each user subscribe to a private `.ics` feed containing their Socialize `my work` dates.

## Feature Spec

- `docs/FEATURES/calendar-integrations.md`

## Scope

- Add backend support for user export feed tokens.
- Generate private unguessable feed URLs that do not require login.
- Let users enable, revoke, and regenerate their export URL.
- Emit valid `.ics` containing only the user's `my work` dates.
- Include assigned content, approval work, owned/created content where available, approval due dates, planned publish dates, and accessible campaign dates.
- Exclude imported holiday and observance events by default.
- Avoid sensitive comments or approval discussion details in exported entries.
- Add a user settings UI for copying, revoking, and regenerating the feed URL.
- Add backend tests for feed authorization boundary, token regeneration, and event contents.

## Relevant Files

- `backend/src/Socialize.Api/Modules/CalendarIntegrations/`
- `backend/src/Socialize.Api/Modules/ContentItems/`
- `backend/src/Socialize.Api/Modules/Approvals/`
- `frontend/src/features/user-profile-settings/`
- `frontend/src/config.js`
- `backend/tests/Socialize.Tests/`

## Validation

```bash
dotnet build backend/Socialize.slnx
dotnet test backend/Socialize.slnx
cd frontend
npm run build
./scripts/update-openapi.sh
```
