5K SUB-22
17 semanas · início 28 abr 2026
0/51
Zonas de Ritmo
Z1 Muito Leve
07:52 – 06:13
Z2 Leve
06:13 – 05:26
Z3 Moderado
05:26 – 04:38
Z4 Intenso ★
04:38 – 04:06
Z5 Máximo
< 04:06
Zonas de FC
Z1 Muito Leve
92 – 139 bpm
Z2 Leve
140 – 157 bpm
Z3 Moderado
158 – 165 bpm
Z4 Intenso ★
166 – 173 bpm
Z5 Máximo
174 – 189 bpm
☁ Sincronização
Configure uma vez e o progresso sincroniza automaticamente.
Funciona em qualquer PC com o mesmo ficheiro HTML.
⚠ Se mudou o código do script use sempre Nova Implementação — nunca edite a existente.
Como configurar (fazer uma vez)
  1. Abra o Google Sheets e crie uma folha nova
  2. No menu, vá a Extensões → Apps Script
  3. Apague o código existente e cole o código abaixo
  4. Clique em Implementar → Nova implementação
  5. Tipo: App Web · Executar como: Eu · Acesso: Qualquer pessoa (incluindo anónimos)
  6. Clique Implementar, autorize e copie o URL gerado
  7. 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) { // JSONP response 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); }