CK Videos Checklist

0 items  Β·  β˜… 0 shot  Β·  β˜…β˜…β˜… 0 ready  Β· 

Notes
βœ“ Saved Synced
Synced
πŸ• Version Historyexpand
No versions yet.
πŸ”— Google Sheets Syncexpand
Not connected.
πŸ“‹ How to connect Google Sheetsexpand

Step 1. Create a new Google Sheet named "CK Videos Checklist".

Step 2. Extensions β†’ Apps Script β†’ replace all code with:

function doGet(e) {
  const p = e && e.parameter;
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('Data') || ss.insertSheet('Data');
  if (p && p.action === 'load') {
    const notes = sheet.getRange('C1').getValue();
    return ContentService.createTextOutput(
      JSON.stringify({ data: sheet.getRange('A1').getValue(), teamNotes: notes }))
      .setMimeType(ContentService.MimeType.JSON);
  }
  return ContentService.createTextOutput(JSON.stringify({ status:'ok' }))
    .setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
  const body = JSON.parse(e.postData.contents);
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('Data') || ss.insertSheet('Data');
  if (body.action === 'save') {
    const ex = sheet.getRange('A1').getValue();
    const exTs = sheet.getRange('B1').getValue();
    if (ex) {
      const lr = sheet.getLastRow();
      sheet.getRange('A'+(lr+1)).setValue(ex);
      sheet.getRange('B'+(lr+1)).setValue(exTs);
    }
    sheet.getRange('A1').setValue(body.data);
    sheet.getRange('B1').setValue(new Date().toISOString());
    if (body.teamNotes !== undefined) sheet.getRange('C1').setValue(body.teamNotes);
    // Write human-readable summary to "Videos" tab
    if (body.humanRows && body.humanRows.length) {
      let vs = ss.getSheetByName('Videos');
      if (!vs) vs = ss.insertSheet('Videos');
      vs.clearContents();
      vs.getRange(1,1,body.humanRows.length,body.humanRows[0].length)
        .setValues(body.humanRows);
      vs.getRange(1,1,1,body.humanRows[0].length)
        .setFontWeight('bold');
      vs.setFrozenRows(1);
    }
  }
  if (body.action === 'calendar') {
    const cal = CalendarApp.getDefaultCalendar();
    const start = new Date(body.start);
    const end = new Date(start.getTime() + 60*60*1000);
    cal.createEvent(body.title, start, end, { description: body.desc||'' });
  }
  return ContentService.createTextOutput(JSON.stringify({ status:'ok' }))
    .setMimeType(ContentService.MimeType.JSON);
}

Step 3. Deploy β†’ New Deployment β†’ Web App β†’ Anyone β†’ Copy URL.

Step 4. Paste URL above. Auto-loads on open.

Status Legend

πŸ’‘
Idea
β€”
Misc / Hold Off
β˜…
Shot / Google Photos
β˜…β˜…
Prepped / Needs small edit
β˜…β˜…β˜…
Ready to Post
Posted
πŸ“…
Scheduled

Schedule Video

β€”
6:00 AM
8:00 AM
9:00 AM
10:00 AM
12:00 PM
2:00 PM
4:00 PM
6:00 PM
Excel Spine Dashboards