School cover planning

Weekly Cover Sheet

Choose an absent teacher, add whole-day or period absences, then publish a simple Mon–Fri cover overview.

Defaults to the current ISO week.

Input

Add an absence

Output

Weekly cover overview

Publish

Google Sheet live update

Recommended: use a Google Sheet as the live document staff check. Paste a Google Apps Script web app URL here, then press update when the weekly overview is ready.

Google Sheet setup script

Create a Google Sheet, open Extensions → Apps Script, paste this script, deploy as a Web App, then paste the Web App URL above.

function doPost(e) {
  const payload = JSON.parse(e.postData.contents);
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheetName = 'Week ' + payload.week;
  let sheet = ss.getSheetByName(sheetName) || ss.insertSheet(sheetName);
  sheet.clear();
  const rows = [['Day','Period','Time','Absent teacher','Lesson','Cover','Cover note']];
  payload.rows.forEach(r => rows.push([r.day, r.period, r.time, r.absentTeacher, r.lesson, r.coverName, r.coverNote]));
  sheet.getRange(1, 1, rows.length, rows[0].length).setValues(rows);
  sheet.getRange(1, 1, 1, rows[0].length).setFontWeight('bold');
  sheet.autoResizeColumns(1, rows[0].length);
  return ContentService.createTextOutput(JSON.stringify({ ok: true })).setMimeType(ContentService.MimeType.JSON);
}