--- id: 3-3 title: 3-3 Availability Calendar Display status: Done date: 2026-09-27 parent: 3 --- ## Description As a client, I want to see a calendar with available time slots, So that I can choose a convenient time for my consultation. Context: Integrates with: working_hours, blocked_times, consultations tables; Technology: Livewire Volt, JavaScript calendar library; Follows pattern: Real-time availability checking. Full implementation history: docs/stories/story-3.3-availability-calendar-display.md ## Acceptance Criteria - [ ] Monthly calendar view showing available dates - [ ] Visual distinction for date states: - [ ] Navigate between months - [ ] Current month shown by default - [ ] Clicking a date shows available time slots - [ ] 1-hour slots (45min consultation + 15min buffer) - [ ] Clear indication of slot availability - [ ] Unavailable reasons (optional): - [ ] Availability checked on date selection - [ ] Prevent double-booking (race condition handling) - [ ] Refresh availability when navigating months - [ ] Prevent navigating to months before current month (all dates would be "past") - [ ] Optionally limit future navigation (e.g., max 3 months ahead) - configurable (deferred to future story) - [ ] Mobile-friendly calendar - [ ] Touch-friendly slot selection - [ ] Proper RTL support for Arabic - [ ] Fast loading (eager load data) - [ ] Language-appropriate date formatting - [ ] Accessible (keyboard navigation) - [ ] Tests for availability logic