dainvo

Roadmap

Local calendar behavior should be solid before provider sync is added.

Phase 1: Desktop Scaffold

Create the Electron, React, TypeScript, Vite, linting, formatting, and test foundation.

Phase 2: Local Calendars and Local Event CRUD

Add SQLite migrations, repositories, local calendar defaults, and local event create/read/update/delete behavior.

Phase 3: FullCalendar UI

Render local calendars and events with FullCalendar while keeping persistence in the local application service.

Phase 4: Drag/Drop/Edit Persistence

Persist event edits, drag/drop, resizing, and calendar visibility through the typed service API.

Phase 5: Reminders

Store event reminders and add a main-process desktop notification foundation.

Phase 6: Basic Recurrence

Support limited local recurrence storage and visible-range expansion.

Phase 7: ICS Import/Export

Import and export local calendars through iCalendar .ics files.

Phase 8: Sync Architecture

Introduce provider-neutral adapters, sync state, outbox operations, and conflict policy using mock providers first.

Phase 9: Google OAuth and Sync

Connect Google accounts securely, sync calendars/events, then add writable event operations.

Phase 10: Microsoft OAuth and Sync

Connect Outlook/Microsoft 365 accounts through Microsoft identity platform and sync through Microsoft Graph.

Phase 11: CalDAV

Add generic CalDAV account setup, discovery, and conservative event sync.

Phase 12: Meeting Scheduling

Add attendees, invite controls, free/busy, suggested times, and conference-link support where providers allow it.

Phase 13: Project Documents and Time Blocks

Create documents/tasks with due dates and schedule linked calendar time blocks.

Phase 14: Packaging and Hardening

Add Windows/macOS packaging, signing/notarization notes, error handling, security review, QA checklists, and MVP reliability polish.