Work Hours Calendar Sync Tool

Work Hours Calendar Sync Tool

Schedule Period

Default Weekly Recurring Hours

Specific Dates (Overrides / Additions / Days Off)

Add specific dates to override weekly schedule. To mark a day off, add the date and leave times empty or uncheck "Working?".

    Default Calendar Event Details (for recurring blocks)

    Generated Schedule Summary

    Define your schedule on the first tab and click "Preview & Proceed to Download".

    Schedule Period: ${document.getElementById('whcs-start-date').value} to ${document.getElementById('whcs-end-date').value}

    `; pdfHTML += `

    Default Weekly Hours

    `; WHCS_DAYS_OF_WEEK.forEach((dayName, index) => { const isChecked = document.getElementById(`whcs-day-check-${index}`).checked; const start = document.getElementById(`whcs-day-start-${index}`).value; const end = document.getElementById(`whcs-day-end-${index}`).value; pdfHTML += ``; }); pdfHTML += `
    DayWorking?Start TimeEnd Time
    ${dayName}${isChecked ? 'Yes' : 'No'}${isChecked ? start : 'N/A'}${isChecked ? end : 'N/A'}
    `; if(whcsSpecificDates.length > 0) { pdfHTML += `

    Specific Date Overrides/Additions (${whcsSpecificDates.length})

    `; whcsSpecificDates.forEach(entry => { let times = "Marked as Non-Working / Custom"; if(entry.startTime && entry.endTime) times = `${entry.startTime} - ${entry.endTime}`; pdfHTML += ``; }); pdfHTML += `
    DateTimesCustom Title
    ${entry.date}${times}${entry.title || 'N/A'}
    `; } else { pdfHTML += `

    Specific Date Overrides/Additions

    None defined.

    `; } pdfHTML += `

    Default Calendar Event Details

    `; pdfHTML += `

    Title: ${document.getElementById('whcs-event-title').value || "Work"}

    `; pdfHTML += `

    Description: ${document.getElementById('whcs-event-desc').value || "N/A"}

    `; pdfHTML += `

    Location: ${document.getElementById('whcs-event-location').value || "N/A"}

    `; const pdfContainer = document.getElementById('whcs-report-content-for-pdf'); pdfContainer.innerHTML = pdfHTML; const opt = { margin: [0.5, 0.5, 0.5, 0.5], filename: 'WorkHoursDefinition.pdf', image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2, useCORS: true, logging: false }, jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' } }; html2pdf().from(pdfContainer).set(opt).save().then(() => { pdfContainer.innerHTML = ''; }).catch(err => { console.error("Error generating PDF:", err); pdfContainer.innerHTML = ''; alert("An error occurred while generating the PDF summary. Check console for details."); }); }
    Scroll to Top