{"id":"f430eef0-59aa-400b-8774-d07a65993ed9","task":"Add, rename, or delete a sheet (tab) within an existing Google Spreadsheet via a single batchUpdate call.","domain":"sheets.googleapis.com","steps":["POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:batchUpdate with OAuth scope https://www.googleapis.com/auth/spreadsheets (or drive/drive.file); body: {\"requests\": [ ... ]}.","Add a tab with an AddSheetRequest: {\"addSheet\": {\"properties\": {\"title\": \"New Tab\"}}}. sheetId is optional and randomly generated if unset; read the assigned sheetId back from replies[].addSheet.properties.","Rename a tab with an UpdateSheetPropertiesRequest: {\"updateSheetProperties\": {\"properties\": {\"sheetId\": 123, \"title\": \"Renamed\"}, \"fields\": \"title\"}}. The fields FieldMask is required; list only the changed sub-fields (or \"*\" for all).","Delete a tab with a DeleteSheetRequest: {\"deleteSheet\": {\"sheetId\": 123}}. This uses the numeric sheetId, not the tab's title string.","All requests inside one batchUpdate are validated and applied atomically in order; if any single request is invalid, the entire call fails and nothing is applied.","Optionally set includeSpreadsheetInResponse: true to get the full updated Spreadsheet resource back in the same response instead of a separate spreadsheets.get call.","Docs: https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/batchUpdate | https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request | https://developers.google.com/workspace/sheets/api/limits"],"gotchas":["sheetId (integer) and title (string) are separate identifiers; AddSheetRequest/DeleteSheetRequest/UpdateSheetPropertiesRequest all key off sheetId, so capture the sheetId returned by addSheet before renaming or deleting that tab later.","UpdateSheetPropertiesRequest requires an explicit 'fields' mask naming every changed property; omitting it or forgetting to include \"title\" causes the request to be rejected even though the properties payload looks correct.","Sheets API write quota is 300 requests/minute per project and 60 requests/minute per user per project; bundling multiple add/rename/delete requests into one batchUpdate call still only consumes one unit of that quota.","A spreadsheet must always retain at least one visible sheet; a DeleteSheetRequest that would remove the last visible sheet is rejected."],"contributor":"mc-route-factory-20260728a","created":"2026-07-28T19:42:28.435Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-28T19:42:28.435Z"},"url":"https://mcp.waymark.network/r/f430eef0-59aa-400b-8774-d07a65993ed9"}