Я просто на каждого дня ставил тег data-time равным его timestamp, создавал две переменных start и to. При клике на день, он определял, если start пустой, то он его заполнял и выделял выбранный блок. Если я еще выбирал блок, он смотрел, что start заполнен, значит нужно заполнить end и опять выделять выбранный блок (я создавал два css класса - start и end). После чего я писал что-то типа такого
jQuery('[date-time]').each(function() {
var cur_time = parseInt(jQuery(this).date('time'))
if(cur_time > start && cur_time < end) {
jQuery(this).addClass('selected')
} else {
jQuery(this).removeClass('selected')
}
});
Еще создал стиль для класса selected, который выделяет выбранные блоки.
Давно делал, не лучшее решение конечно, в этом цикле я удаляю на всех блоках класс selected, даже там, где он не установлен. Тут можно поработать с кешем в массивы. Но суть ясна я надеюсь.