Можно использовать библиотеку Momentjs
вот ссылка
momentJS
и также moment-range
moment-range
там есть хороший метод substract.
ты можешь взять 3 остальных range и взять из них dateStart и dateEnd. начерти себе на листочке, чтобы понять как работает это. когда у тебя есть один большой range - это весь день. и его дети - это его субстракты. проходишь циклом по оставшимся промежуткам и у тебя вернуться все промежуточные dateStart и dateEnd.