async function findAvailableSlots(cal1, cal2, {durationMinutes:dm, searchRange, workHours}) { const {DateTime:DT, Interval, Duration} = await import('https://cdn.skypack.dev/luxon'); const dur=Duration.fromObject({minutes:dm}); const srS=DT.fromISO(searchRange.start).toUTC(); const srE=DT.fromISO(searchRange.end).toUTC(); const srI=Interval.fromDateTimes(srS,srE); let busies=[...cal1,...cal2].map(s=>{ const a=DT.fromISO(s.start).toUTC(),b=DT.fromISO(s.end).toUTC(); return aa.start.toMillis()-b.start.toMillis()); const merged=[]; for(let iv of busies){ if(!iv?.isValid||iv.isEmpty)continue; if(merged.length===0||merged.at(-1).endlast.end?iv.end:last.end); } } const frees=[]; let prev=srS; for(let b of merged){ if(prevprev?b.end:prev; } if(prev