🟩 Min bokning🟨 Väntar godkännande🟧 Dubbeldag (dubbel debitering)🔴 Fullt
🛏
Boka boende
Välj datum i kalendern ovan eller klicka nedan för att skicka en bokningsförfrågan.
Mina Bokningar
Aktiva & väntande bokningar
Ekonomi & Utlägg
Betala med Swish
Byt PIN-kod
Registrera utlägg
Registrera utlägg som skall belasta Balstakonto.
Mina utlägg
Betalningshistorik
Meddela Boende
⏳ Väntande godkännande
📝 Bokningskommentarer
📬 Skicka meddelande till boende
📬 Skickade meddelanden
Placering
⏳ Väntar på godkännande
● Fullt placerad● Ej klar● Väntande✉️ Ej meddelad
🏡 Välj en dag i kalendern —
📋 Bokningshanterare
⏳ Väntar på godkännande
📋 Godkända bokningar — justera datum eller placera (⏳ oplacerade överst)
✅ Färdiga placerade bokningar — alla personer har stuga
● Fullt placerad● Ej klar● Väntande✉️ Ej meddelad
🏡 Välj en dag i kalendern —
🏡 Stugor, priser & kostnadsdagar
🏡 Boendeobjekt
Priser
📅 Dagar med dubbel kostnad
Lägg till dagar med dubbel debitering. Etiketten visas i kalendern (t.ex. MIDS, JUL, HFEST).
Ekonomisk Översikt
Skulder per person
Alla utlägg
Exportera till Excel
Exporterar skulder, bokningar och utlägg som CSV.
📅 Räkenskapsår
Stäng innevarande år och hantera oreglerade saldon innan nytt år börjar. Varje person kan antingen avregleras (nollställs) eller balanseras vidare.
✏️ Publicera
Inställningar
Användare & PIN-koder
📸 Fotoalbum-länk
🖼 Hero-bild (startsidan)
🏡
Ladda upp bild på stugan (JPG/PNG, visas överst på startsidan)
📌 Lägg till nyhet
📅 Kommande händelser
🎉 Event-kort
📍 Adress & vägbeskrivning
📶 WiFi-uppgifter
Swish-nummer
📧 E-postnotifikationer (EmailJS)
Kräver ett gratis konto på emailjs.com. Skickar automatiskt mail till admin när någon skickar in en bokningsförfrågan.
Skapa konto på emailjs.com →
📊 Google Sheets — automatisk synk
Kräver ett Google Apps Script som driftsätts på er Drive. Appen skickar data dit automatiskt vid bokningsändringar.
Visa Apps Script-kod att klistra in ▶
function doPost(e){
var data=JSON.parse(e.parameter.payload);
var ss=SpreadsheetApp.getActiveSpreadsheet();
var year=data.year||new Date().getFullYear().toString();
var s=ss.getSheetByName(year)||ss.insertSheet(year);
s.clearContents();
var row=1;
s.getRange(row,1).setValue('BOKNINGAR');row++;
if(data.bookings&&data.bookings.length){s.getRange(row,1,data.bookings.length,data.bookings[0].length).setValues(data.bookings);row+=data.bookings.length;}
row+=2;
s.getRange(row,1).setValue('SKULDER');row++;
if(data.skulder&&data.skulder.length){s.getRange(row,1,data.skulder.length,data.skulder[0].length).setValues(data.skulder);row+=data.skulder.length;}
row+=2;
s.getRange(row,1).setValue('UTLÄGG');row++;
if(data.utlagg&&data.utlagg.length){s.getRange(row,1,data.utlagg.length,data.utlagg[0].length).setValues(data.utlagg);}
return ContentService
.createTextOutput(JSON.stringify({status:'ok'}))
.setMimeType(ContentService.MimeType.JSON);
}
1. Öppna Google Sheets → Extensions → Apps Script 2. Klistra in koden → Spara (Ctrl+S) 3. Deploy → New deployment → Web app → Execute as: Me → Who has access: Anyone → Deploy 4. Kopiera URL och klistra in ovan
🧹 Engångsstädning — checkout-modell (v4.13)
Bokningar gjorda före v4.13 har en extra natt (utcheckningsdagen) som gör att den dagen felaktigt visas upptagen. Klicka en gång för att ta bort den extra natten från befintliga bokningar.
🔀 Migrera till delade bokningar (v4.16)
Befintliga bokningar med flera registrerade medlemmar delas upp så varje medlem äger och kan ändra sin egen del (B-XXXXX-1, -2 …). Externa/barn följer med bokaren. Klicka en gång.
⚠️ Farlig zon
🔐
Välj din PIN-kod
Välkommen! Välj en egen PIN-kod (4–6 siffror) för att fortsätta.