- Extract CalendarCard to separate component (467 lines) - Create calendarService for API and caching (156 lines) - Add useCalendarEvents hook (96 lines) - Create CalendarSidebar wrapper component (29 lines) - Reduce AppShell.tsx from 1277 to 634 lines (-50%) - Implement proper separation of concerns - Move global cache to service layer - Improve code maintainability and testability