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