We can't wait to share a meal with your family.
This form adds a "Dinner RSVPs" worksheet (tab) to your existing VBS Google Sheet via a small Apps Script β the same pattern as the check-in writeback. One-time setup:
/exec URL and paste it below. The "Dinner RSVPs" tab is created automatically on the first submission.// Writes RSVPs to a "Dinner RSVPs" tab in the active spreadsheet (creates it if missing).
var DINNER_TAB = "Dinner RSVPs";
function doPost(e){
try{
var data = JSON.parse(e.postData.contents);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(DINNER_TAB);
if(!sheet){ sheet = ss.insertSheet(DINNER_TAB); }
var lastCol = sheet.getLastColumn();
var headers;
if(lastCol === 0){
headers = Object.keys(data);
sheet.getRange(1,1,1,headers.length).setValues([headers]).setFontWeight("bold");
} else {
headers = sheet.getRange(1,1,1,lastCol).getValues()[0].map(function(h){return (h||"").toString().trim();});
Object.keys(data).forEach(function(k){
if(headers.indexOf(k) === -1){
sheet.getRange(1, sheet.getLastColumn()+1).setValue(k);
headers.push(k);
}
});
}
var row = headers.map(function(h){ return data[h] != null ? data[h] : ""; });
sheet.appendRow(row);
return ContentService.createTextOutput(JSON.stringify({ok:true, tab:DINNER_TAB})).setMimeType(ContentService.MimeType.JSON);
}catch(err){
return ContentService.createTextOutput(JSON.stringify({ok:false,error:err.toString()})).setMimeType(ContentService.MimeType.JSON);
}
}
function doGet(){ return ContentService.createTextOutput("VBS Dinner RSVP endpoint is live."); }
Saved to this browser. For a shared public link, also paste it into the SCRIPT_URL line near the top of this file's code so every visitor uses it.