Предполагается, что вы используете WPF ...
Я бы порекомендовал вам создать простой ListBox и связать свойство ItemsSource со свойством SelectedDates календаря. Когда пользователь выбирает и отменяет выбор дней в Календаре, они будут добавлены или удалены из списка.
Кроме того, вы можете создать класс DateSpan и ValueConverter, чтобы сгруппировать даты в серии в ваш класс DateSpan. Затем вы можете применить конвертер к свойству SelectedDates, чтобы при использовании Shift-Select пользователь мог видеть диапазон дат, а не группу дат (при условии, что это плохо). Логика не будет слишком сложной.
Существует множество сторонних инструментов, но независимо от того, какой элемент управления вы используете, основная проблема останется: вы хотите, чтобы пользователь знал обо всех выбранных элементах, но не хотите показывать каждый месяц. который содержит выбранный день в то же время. Лучший ответ, который я могу придумать, - это список.