private async Task FetchCalendarAsync() { var days = 7; var startDate = StartOfWeek(DateTime.Today, DayOfWeek.Monday); var endDate = startDate.AddDays(days); ThisWeek = (from day in await traktService.GetCalendarAsync(startDate.ToUniversalTime().AddDays(-1), days + 1, extended: TraktExtendEnum.IMAGES) from item in day.Value let airDate = DateTime.Parse(item.Airs_At, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal) where airDate >= startDate && airDate <= endDate group item.Episode by airDate.DayOfWeek into groupItem orderby groupItem.Key select new GroupedEpisodes <DayOfWeek> { Key = groupItem.Key, Episodes = groupItem.ToList() }).ToList(); }