Meeting Scheduler

Meeting Scheduler

Configure your availability, then select a date and time to book a new meeting.

Sun
Mon
Tue
Wed
Thu
Fri
Sat

Select a date to see available time slots.

Scheduled Meetings

Working Hours

Meeting Settings

Available Days

${m.time}

Name: ${m.name}

Email: ${m.email}

`; }); html += '
'; getElem('pdf-output').innerHTML = html; const { jsPDF } = window.jspdf; html2canvas(getElem('pdf-output'), { scale: 2 }).then(canvas => { const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'p', unit: 'px', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfHeight = (canvas.height * pdfWidth) / canvas.width; pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight); pdf.save(`Schedule_${dateStr}.pdf`); }); }; // --- Event Listeners & Initial Load --- tabBtns.forEach((btn, i) => btn.addEventListener('click', () => changeTab(i + 1))); getElem('prev-month-btn').addEventListener('click', () => { currentDate.setMonth(currentDate.getMonth() - 1); renderCalendar(); }); getElem('next-month-btn').addEventListener('click', () => { currentDate.setMonth(currentDate.getMonth() + 1); renderCalendar(); }); getElem('save-config-btn').addEventListener('click', saveConfig); getElem('cancel-btn').addEventListener('click', closeBookingModal); getElem('download-btn').addEventListener('click', downloadPDF); const daysOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; getElem('available-days').innerHTML = daysOfWeek.map((day, i) => ` `).join(''); saveConfig(); renderCalendar(); changeTab(1); });
Scroll to Top