Configure uma vez e o progresso sincroniza automaticamente. Funciona em qualquer dispositivo com o mesmo ficheiro.
⚠ Se mudou o código do script use sempre Nova Implementação — nunca edite a existente.
Como configurar (fazer uma vez)
Abra o Google Sheets e crie uma folha nova
No menu, vá a Extensões → Apps Script
Apague o código existente e cole o código abaixo
Clique em Implementar → Nova implementação
Tipo: App Web · Executar como: Eu · Acesso: Qualquer pessoa
Clique Implementar, autorize e copie o URL gerado
Cole o URL no campo acima e sincronize
const SHEET_NAME = 'Progresso';
function doGet(e) {
const ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName(SHEET_NAME);
if (!sheet) sheet = ss.insertSheet(SHEET_NAME);
const data = sheet.getRange('A1').getValue() || '{}';
const cb = e.parameter.callback;
if (cb) {
return ContentService
.createTextOutput(cb + '(' + data + ')')
.setMimeType(ContentService.MimeType.JAVASCRIPT);
}
return ContentService
.createTextOutput(data)
.setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
const ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName(SHEET_NAME);
if (!sheet) sheet = ss.insertSheet(SHEET_NAME);
const data = e.postData ? e.postData.contents : '{}';
sheet.getRange('A1').setValue(data);
return ContentService
.createTextOutput(JSON.stringify({status:'ok'}))
.setMimeType(ContentService.MimeType.JSON);
}
Reiniciar planilha
Isto desmarca todos os treinos, remove semanas adicionadas (repetições, off e provas) e re-ancora o calendário para a data de início escolhida — assim nada aparece como "Faltou".