Juy-490

+-------------------+ +-------------------+ +-------------------+ | Front‑End (React) | <--->| API Gateway (Node) | <--->| Calendar Service | +-------------------+ +-------------------+ +-------------------+ | ^ | | | | v | v +-------------------+ | OAuth Provider | | (Google, MS, Apple) | +-------------------+

-- Table: user_calendar_events (TTL 30 days) CREATE TABLE user_calendar_events ( id UUID PRIMARY KEY, user_id UUID NOT NULL REFERENCES users(id), provider VARCHAR(20) NOT NULL, external_id VARCHAR(255) NOT NULL, start_ts TIMESTAMP NOT NULL, end_ts TIMESTAMP NOT NULL, title TEXT, location TEXT, description TEXT, raw_payload JSONB, -- for future debugging created_at TIMESTAMP DEFAULT now(), expires_at TIMESTAMP NOT NULL ) WITH (ttl = '30 days'); juy-490

| Item | Details | |------|---------| | | Smart Calendar Integration | | Ticket ID | JUY‑490 | | Product Area | Collaboration & Scheduling | | Stakeholders | • End‑users (individual & team) • Sales & Customer Success (need to demo scheduling) • Engineering (Backend, Frontend, Security) • Legal & Compliance (data privacy) | | Priority | P2 – Medium (high‑impact for user adoption) | | Target Release | Q4 2026 (v3.5) | | Dependencies | • OAuth2 provider libraries (Google, Microsoft) • Existing “User Settings” micro‑service • Notification service for event reminders • UI component library upgrade to v2.3 (for new picker) | | Assumptions | • Users have a personal or work calendar that supports OAuth2. • Juy already stores user IDs and has a “connected‑accounts” table. • The platform is GDPR‑compliant, so any calendar data must be stored with explicit consent and can be revoked at any time. | | API Gateway (Node) | &lt