-
Calendar
-
- View and manage your scheduled tasks.
-
+
+
+
+
Calendar
+
+ View and manage your scheduled tasks. Drag to reschedule.
+
+
+
-
- Calendar view will be implemented in Phase 2 with FullCalendar integration.
+
+
+
+ setCurrentDate(dateInfo.start)}
+ />
diff --git a/packages/shared-types/src/index.ts b/packages/shared-types/src/index.ts
index 9ccae86..3ecc9f7 100644
--- a/packages/shared-types/src/index.ts
+++ b/packages/shared-types/src/index.ts
@@ -227,6 +227,71 @@ export interface ProjectResponseDto {
updatedAt: string;
}
+// DTOs - ConnectWise Connection
+export interface CreateConnectWiseConnectionDto {
+ companyId: string;
+ publicKey: string;
+ privateKey: string;
+ apiUrl: string;
+ memberId: string;
+}
+
+export interface ConnectWiseConnectionResponseDto {
+ id: string;
+ companyId: string;
+ apiUrl: string;
+ memberId: string;
+ lastSync?: string;
+ createdAt: string;
+ updatedAt: string;
+}
+
+// DTOs - Calendar Connection
+export enum CalendarProvider {
+ CALDAV = 'CALDAV',
+ MICROSOFT_GRAPH = 'MICROSOFT_GRAPH',
+ GOOGLE = 'GOOGLE',
+}
+
+export interface CreateCalendarConnectionDto {
+ provider: CalendarProvider;
+ calendarUrl?: string;
+ credentials?: {
+ username?: string;
+ password?: string;
+ accessToken?: string;
+ refreshToken?: string;
+ };
+}
+
+export interface CalendarConnectionResponseDto {
+ id: string;
+ provider: CalendarProvider;
+ calendarUrl?: string;
+ lastSync?: string;
+ createdAt: string;
+ updatedAt: string;
+}
+
+// DTOs - Calendar Events
+export interface CalendarEventResponseDto {
+ id: string;
+ externalId: string;
+ title: string;
+ startTime: string;
+ endTime: string;
+ isAllDay: boolean;
+ source: CalendarProvider;
+ createdAt: string;
+ updatedAt: string;
+}
+
+// DTOs - Schedule
+export interface ScheduleRegenerateResponseDto {
+ scheduledCount: number;
+ tasks: TaskResponseDto[];
+}
+
// Health check
export interface HealthCheckResponseDto {
status: 'ok' | 'error';
diff --git a/prd.json b/prd.json
index 452f4bd..e73821a 100644
--- a/prd.json
+++ b/prd.json
@@ -26,7 +26,7 @@
"name": "ConnectWise Manage Integration",
"description": "Read-only sync from ConnectWise Manage that imports service tickets, project tickets, and projects assigned to user. Projects with zero tickets surface as planning tasks. ConnectWise priority/SLA displayed for reference only; user assigns manual priority",
"priority": 3,
- "passes": false,
+ "passes": true,
"acceptance": "ConnectWise API integration syncs assigned service tickets as inbox items"
},
{
@@ -35,7 +35,7 @@
"name": "Intelligent Calendar Scheduling",
"description": "Automatic scheduling engine that pulls from CalDAV calendars (Nextcloud, Google Calendar, Outlook via Microsoft Graph) and places actionable tasks into available time slots, respecting working hours, context constraints, deadlines, and manual priority. Supports drag-drop manual override and task locking",
"priority": 4,
- "passes": false,
+ "passes": true,
"acceptance": "Engine reads existing events from CalDAV/Google/Outlook calendars"
},
{
@@ -44,7 +44,7 @@
"name": "Interactive Calendar Week View",
"description": "React SPA with interactive week-view calendar displaying scheduled tasks and calendar events. Supports drag-and-drop task rescheduling, manual time adjustments, and real-time updates when scheduling changes occur",
"priority": 5,
- "passes": false,
+ "passes": true,
"acceptance": "Week view renders all scheduled tasks and synced calendar events"
},
{
diff --git a/progress.txt b/progress.txt
index 416ca1f..ffdf4dc 100644
--- a/progress.txt
+++ b/progress.txt
@@ -19,3 +19,32 @@
- Inbox UI with quick-add form and GTD processing workflow modal
- All tests passing, build succeeds, lint passes (one warning)
+[2026-01-11T09:58:00.000Z] [2] [COMPLETE] - Phase 2 Core implemented
+ - ConnectWise Manage Integration:
+ - ConnectWiseModule with service, controller, entity
+ - API endpoints: POST/GET/DELETE /api/v1/connections/connectwise
+ - Sync endpoint: POST /api/v1/connections/connectwise/:id/sync
+ - Syncs service tickets, project tickets, and zero-ticket projects to inbox
+ - ConnectWise priority/SLA stored in task metadata
+ - Intelligent Calendar Scheduling:
+ - CalendarModule with calendar connection and event entities
+ - CalendarConnection entity supports CALDAV, MICROSOFT_GRAPH, GOOGLE providers
+ - CalendarEvent entity stores synced external calendar events
+ - CalendarService with CalDAV, Microsoft Graph, Google Calendar sync methods
+ - API endpoints: POST/GET/DELETE /api/v1/connections/calendar
+ - Sync endpoint: POST /api/v1/connections/calendar/:id/sync
+ - Events endpoint: GET /api/v1/calendar/events
+ - SchedulingModule with schedule regeneration engine
+ - ScheduleService finds available time slots respecting working hours
+ - Groups tasks by context for batching, respects priority and due dates
+ - Schedule endpoint: POST /api/v1/schedule/regenerate
+ - Interactive Calendar Week View:
+ - FullCalendar integration with timeGridWeek view
+ - Drag-and-drop task rescheduling with eventDrop/eventResize handlers
+ - Tasks auto-lock when manually moved
+ - Color-coded by context (@desk=blue, @phone=green, @errand=orange, @homelab=purple, @anywhere=gray)
+ - Calendar events displayed with distinct styling
+ - Regenerate Schedule button triggers scheduling engine
+ - ToastProvider for user feedback notifications
+ - All tests passing (17 tests), build succeeds, lint passes (2 warnings)
+