@page "/calendar" @attribute [Authorize] @using WebApp.Components.Shared.Components @using WebApp.Models @using WebApp.Services @using Heron.MudCalendar @inject IEventOccurrenceService EventOccurrenceService Import @if (_calendarItems == null) { Loading calendar events... } else { } @code { private List? _calendarItems; private DateTime _calendarDate = DateTime.Today; protected override async Task OnInitializedAsync() { await LoadCalendarEvents(); } private async Task LoadCalendarEvents() { var occurrences = await EventOccurrenceService.GetEventOccurrencesAsync(); _calendarItems = occurrences .Select(occ => new CalendarEventItem(occ)) .ToList(); // Find the next date with events _calendarDate = GetNextDateWithEvents(); } private DateTime GetNextDateWithEvents() { if (_calendarItems == null || !_calendarItems.Any()) { return DateTime.Today; } var today = DateTime.Today; var nextEvent = _calendarItems .Where(item => item.Start.Date >= today) .OrderBy(item => item.Start) .FirstOrDefault(); return nextEvent?.Start.Date ?? _calendarItems.OrderBy(item => item.Start).First().Start.Date; } }