doc1 = [850, 950, 1100] // для удобства счета 800 = 8:00 850 = 8:30 итд
doc2 = [1100, 1200]
doc3 = [1000]
docs = [doc1, doc2, doc3]
STEP = 50 // 0.5 часа
for (let i = 800; i < 1400; i += STEP){
console.log(i)
const found = docs.filter(d => !d.some(time => [i - STEP, i, i + STEP].includes(time)))
console.log(found) // выводит доступных врачей на время i, или пустой массив, если никого нет
}