Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Telegram + Google Calendar-bokningar, loggat i Sheets

Rickard Andersson Partner, Nodenordic.se

Ditt ”bokningssystem” ska inte vara en rörig Telegram-tråd, en halvt uppdaterad kalender och en post-it som du lovar dig själv att du ska föra in i ett kalkylark senare. Men det är så dubbelbokningar uppstår, och det är också så avbokningar missas.

Det är här Telegram-bokningsautomation snabbt betalar sig. Solokonsulter märker det först, men receptionsteam och byråägare som jonglerar kundsamtal får samma huvudvärk: för mycket fram och tillbaka, för lite säkerhet. Du får bekräftade tider, färre krockar och en strukturerad logg i Sheets utan att behöva passa processen.

Det här flödet gör en Telegram-bot till en bokningsassistent som kontrollerar tillgänglighet i Google Kalender, skapar händelser, loggar varje bokning och låter folk avboka eller se kommande tider. Här är vad det gör, vad du behöver och hur du anpassar det till din verksamhet.

Så fungerar den här automationen

Hela n8n-flödet, från trigger till slutligt resultat:

n8n Workflow Template: Telegram + Google Calendar-bokningar, loggat i Sheets

Problemet: bokningsförfrågningar blir kalenderkaos

Att boka via chatt låter ”enkelt” tills du gör det hela veckan. Folk skriver vid slumpmässiga tider, de får inte med detaljerna du behöver och du slutar med att ställa två eller tre följdfrågor bara för att bekräfta en enda tid. Sedan hoppar du mellan appar, kollar kalendern, går tillbaka till Telegram och hoppas att ingen annan hann ta tiden medan du var borta. Avbokningar är värre. De kommer ofta som ett casual ”kan inte” och då glömmer du att ta bort händelsen, eller så tar du bort fel.

Inget av detta är svårt. Det är bara konstant. Och det stjäl fokus från arbete som faktiskt ger intäkter.

  • Varje bokning blir ett miniprojekt: bekräfta detaljer, kontrollera tillgänglighet, skapa händelse och meddela kunden.
  • Du förlitar dig på minnet (eller scrollande) för att veta vad som bokades, ändrades eller avbokades förra veckan.
  • En missad uppdatering skapar den klassiska mardrömmen: två kunder dyker upp samma tid.
  • Utan en strukturerad logg kan du inte enkelt svara på enkla frågor som ”Hur många möten hade vi den här månaden?”

Lösningen: en Telegram-bot som bekräftar, schemalägger och loggar

Det här n8n-flödet gör Telegram till en riktig ingång för bokning. En kund skickar ett meddelande i ett format som ”agendar 2026-02-10 14:00 Alex Johnson” och boten tar över. Den tolkar datum/tid och namn, kontrollerar din Google Kalender för den tiden och bekräftar bara bokningen om den faktiskt är ledig. När den är bekräftad skapar den Google Kalender-händelsen automatiskt och skriver sedan in bokningen i Google Sheets som en permanent logg. Om tiden är upptagen svarar boten direkt så att du slipper förhandla tider manuellt.

Den hanterar också den irriterande (men nödvändiga) livscykeln. Kunder kan avboka med ett meddelande, flödet hittar motsvarande kalenderhändelse, tar bort den, raderar den relaterade raden i Sheets och skickar en avbokningsbekräftelse. De kan också lista kommande tider, vilket är förvånansvärt användbart när någon glömmer vad de bokade.

Vad du får: automation vs resultat

Exempel: så här ser det ut

Säg att du hanterar 15 bokningar i veckan via Telegram. Manuellt kostar varje bokning oftast cirka 10 minuter: reda ut detaljer, kolla Google Kalender, skapa händelsen och sedan skriva ner det någonstans så att du hittar det senare. Det är ungefär 2,5 timmar i veckan, plus extra tid när avbokningar händer. Med det här flödet blir din ”människotid” en snabb granskning av meddelandet och ibland hantering av edge cases, kanske 1–2 minuter per bokning. Resten är automatiska kontroller, skapande av händelser och loggning i Sheets.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
  • Telegram för att ta emot bokningsmeddelanden i chatten
  • Google Kalender för att kontrollera tillgänglighet och skapa händelser
  • Google Sheets för en sökbar bokningsdatabas
  • Telegram-bottoken (hämta den från BotFather i Telegram)
  • Google OAuth-klient-ID/Secret (hämta det i Google Cloud Console under APIs & Services)

Svårighetsgrad: Medel. Du kopplar främst konton och väljer rätt kalender/ark, plus mindre justeringar av meddelandeformat.

Vill du inte sätta upp det själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Ett Telegram-meddelande triggar allt. Flödet startar när någon skickar ett kommando till din bot, som agendar, cancelar eller mis citas. n8n fångar upp det direkt via Telegram-triggern.

Meddelandet routas och tolkas. En switch routar förfrågan baserat på avsikt, och sedan plockar små ”transform”-steg ut datum, tid och kundnamn så att Google Kalender och Google Sheets får korrekt formaterade fält i stället för rörig text.

Tillgänglighet kontrolleras innan bekräftelse. Flödet tittar i din Google Kalender för att hämta lediga tider och bekräfta att den önskade tiden är ledig. Om den inte är tillgänglig svarar boten direkt och bokningen stoppas där.

Händelser och loggar hålls synkade. När en bokning är giltig skapar den kalenderhändelsen, skriver en rad i Google Sheets och skickar en bekräftelse tillbaka i Telegram. Vid avbokningar hittar den rätt händelse, tar bort den, raderar raden i Sheets och meddelar kunden.

Du kan enkelt ändra kommandoformatet och kolumnerna i arket så att det matchar hur dina kunder redan skriver. Se hela implementeringsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera Telegram-triggern

Konfigurera startpunkten som lyssnar efter inkommande Telegram-meddelanden och skickar dem vidare in i arbetsflödet.

  1. Lägg till noden Telegram Incoming Trigger och öppna dess inställningar.
  2. Ställ in Updatesmessage.
  3. Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter i Telegram Incoming Trigger.
  4. Bekräfta att Telegram Incoming Trigger är kopplad till Route by Condition i canvasen.

Steg 2: Konfigurera kommandoroutern

Routa meddelanden till rätt flöde för bokning, avbokning, listning eller fallback baserat på textinnehållet.

  1. Öppna Route by Condition och lägg till fyra regler som utvärderar {{$json.message.text}}.
  2. Regel 1: equals /start för att skicka användaren till Send Welcome Guide.
  3. Regel 2: startsWith agendar för att routa till Transform Schedule Data.
  4. Regel 3: startsWith cancelar för att routa till Prepare Cancel Request.
  5. Regel 4: startsWith citas för att routa till Parse Client Name.
  6. Aktivera Fallback Output så att meddelanden som inte matchar går till Fallback Bot Reply.

Steg 3: Sätt upp bokningsflödet (schemaläggningsväg)

Den här vägen tolkar bokningsförfrågan, kontrollerar tillgänglighet, skapar kalenderhändelsen och registrerar den i Sheets.

  1. I Transform Schedule Data behåller ni JavaScript-koden som tolkar agendar AAAA-MM-DD HH:MM Nombre och skapar startDateTime och endDateTime i ISO-format.
  2. Konfigurera Retrieve Calendar Slots med Operation getAll, Return All aktiverat, Time Min satt till {{$json.startDateTime}} och Time Max satt till {{$json.endDateTime}}. Inloggningsuppgifter krävs: Anslut era googleCalendarOAuth2Api-inloggningsuppgifter.
  3. I Check Slot Availability verifierar ni att villkoret använder {{$json.isEmpty()}} för att bara tillåta bokning när tiden är ledig.
  4. Konfigurera Generate Calendar Event med Start {{$('Transform Schedule Data').item.json.startDateTime}} och End {{$('Transform Schedule Data').item.json.endDateTime}}; sätt Summary till {{$('Transform Schedule Data').item.json.summary}}; sätt Use Default Reminders till false. Inloggningsuppgifter krävs: Anslut era googleCalendarOAuth2Api-inloggningsuppgifter.
  5. Konfigurera Record Booking in Sheets med Operation appendOrUpdate och mappa kolumner: id {{$json.id}}, Fecha ISO {{$json.start.dateTime}}, Fecha y hora {{DateTime.fromISO($('Transform Schedule Data').item.json.startDateTime).setLocale('es').toFormat("EEEE, dd 'de' MMMM 'de' yyyy 'a las' HH:mm")}}, Nombre Cliente {{$('Transform Schedule Data').item.json.name}}. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
  6. Säkerställ att exekveringsflödet följer: Transform Schedule DataRetrieve Calendar SlotsCheck Slot AvailabilityGenerate Calendar EventRecord Booking in Sheets.

⚠️ Vanlig fallgrop: Tidszonen i Transform Schedule Data är satt till America/Guayaquil. Uppdatera den om er kalender använder en annan tidszon för att undvika bokningar som hamnar en timme fel.

Steg 4: Konfigurera avbokningsflödet

Den här vägen tolkar en avbokningsbegäran, hittar händelsen, tar bort den från Google Calendar och raderar motsvarande rad i Sheets.

  1. I Prepare Cancel Request behåller ni JavaScript-koden som returnerar startDateTime och endDateTime baserat på kommandot cancelar.
  2. Ställ in Fetch Events for Cancel till Operation getAll, Time Min {{$json.startDateTime}}, Time Max {{$json.endDateTime}} och Return All aktiverat. Inloggningsuppgifter krävs: Anslut era googleCalendarOAuth2Api-inloggningsuppgifter.
  3. I Confirm Event Exists behåller ni villkoret som använder {{$json.isEmpty()}} för att välja mellan Alert Booking Not Found och Remove Calendar Event.
  4. Konfigurera Remove Calendar Event med Operation delete och Event ID satt till {{$json.id}}. Inloggningsuppgifter krävs: Anslut era googleCalendarOAuth2Api-inloggningsuppgifter.
  5. Ställ in Lookup Sheet Booking för att filtrera på id med Lookup Value {{$('Confirm Event Exists').item.json.id}} och anslut googleSheetsOAuth2Api-inloggningsuppgifter.
  6. Konfigurera Delete Sheet Entry med Operation delete och Start Index {{$json.row_number}}. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.

Steg 5: Konfigurera bokningsuppslag (listväg)

Den här vägen hittar kommande bokningar för ett kundnamn och returnerar ett sammanfattande meddelande.

  1. I Parse Client Name behåller ni JavaScript-koden som bygger name och searchTerm från citas Tu Nombre.
  2. Konfigurera Find Client Bookings för att filtrera på Nombre Cliente med Lookup Value {{$json.name}}. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
  3. I Validate Booking List behåller ni villkoret {{$json.isEmpty()}} för att routa till Reply No Upcoming Bookings när inga rader hittas.
  4. Behåll koden i Build Booking Summary som filtrerar på framtida datum och outputtar message.
  5. Ställ in Send Booking Summary Text till {{$json.message}} och Chat ID till {{$('Telegram Incoming Trigger').first().json.message.chat.id}}. Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter.

Steg 6: Konfigurera användarsvar och notiser

Säkerställ att alla Telegram-svar är kopplade för lyckade utfall, fel och fallback-svar.

  1. Koppla Send Welcome Guide till /start-vägen och sätt Chat ID till {{$json.message.chat.id}}. Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter.
  2. Koppla Notify Time Unavailable till den falska grenen från Check Slot Availability med Chat ID {{$('Telegram Incoming Trigger').item.json.message.chat.id}}. Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter.
  3. Skicka lyckade meddelanden via Send Booking Confirmation efter Record Booking in Sheets och Send Cancellation Notice efter Delete Sheet Entry. Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter.
  4. Koppla Alert Booking Not Found till den sanna grenen från Confirm Event Exists och koppla Fallback Bot Reply till fallback-utgången från Route by Condition. Inloggningsuppgifter krävs: Anslut era telegramApi-inloggningsuppgifter för alla Telegram-svarsnoder (8 totalt).

Steg 7: Testa och aktivera ert arbetsflöde

Validera varje väg och aktivera sedan arbetsflödet för produktion.

  1. Klicka på Execute Workflow och skicka testmeddelanden till er bot: /start, agendar 2025-09-22 15:00 Ana Rodriguez, cancelar 2025-09-22 15:00 Ana Rodriguez och citas Ana Rodriguez.
  2. Bekräfta lyckade körningar: händelse skapad i Google Calendar, rad tillagd i Google Sheets och en bekräftelse skickad via Send Booking Confirmation.
  3. Bekräfta avbokningsflöden: händelse raderad i Google Calendar, rad raderad i Google Sheets och Send Cancellation Notice skickad till användaren.
  4. Verifiera att listvägen returnerar en sammanfattning via Send Booking Summary eller ett svar utan träffar via Reply No Upcoming Bookings.
  5. Växla arbetsflödet till Active för produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • OAuth-uppgifter för Google Kalender kan löpa ut eller kräva specifika behörigheter. Om saker slutar fungera, kontrollera först din sida för Credentials i n8n och bekräfta sedan att OAuth consent screen i Google Cloud fortfarande är giltig.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram misslyckas på grund av tomma svar.
  • Telegram-bottokens kopieras runt och roteras ibland. Om boten plötsligt blir tyst, kontrollera token igen i BotFather och uppdatera Telegram-credentialn i n8n.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Telegram-bokningsautomation-automationen?

Cirka en timme om dina Google- och Telegram-uppgifter redan är klara.

Behöver jag kunna koda för att automatisera Telegram-bokningsautomation?

Nej. Du kopplar konton och justerar några fält i n8n. Den enda ”tekniska” delen är att kopiera nycklar och välja rätt kalender och kalkylark.

Är n8n gratis att använda för det här Telegram-bokningsautomation-flödet?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 $/månad för högre volym. Du behöver också räkna med kostnader för Google Workspace om du har en betalplan (själva Calendar/Sheets-API:erna är normalt sett lågkostnad vid normal användning).

Var kan jag hosta n8n för att köra den här automationen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och klarar n8n bra. Self-hosting ger obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här Telegram-bokningsautomation-flödet för olika kommandon eller språk?

Ja, och det är en av de enklaste vinsterna. Du kan ändra kommandoorden i routningslogiken (switchen som väljer mellan bokning, avbokning, listning och fallback) och sedan uppdatera tolkningsstegen som plockar ut datum/tid och namn. Vanliga anpassningar är att använda ”book” i stället för ”agendar”, lägga till en tidszonsregel och skriva extra kolumner till Google Sheets, som telefonnummer eller typ av tjänst.

Varför misslyckas min Telegram-anslutning i det här flödet?

Oftast är det bottoken. Kopiera den på nytt från BotFather, uppdatera Telegram-credentialn i n8n och kör ett testmeddelande. Om det fortfarande misslyckas, kontrollera att du skriver till rätt bot-användarnamn och att flödet är aktivt.

Hur många bokningar kan den här Telegram-bokningsautomation-automationen hantera?

Med n8n Cloud Starter kan du normalt hantera hundratals bokningsmeddelanden per månad utan att behöva tänka på det. Om du self-hostar finns ingen körningsgräns, så kapaciteten beror främst på din server och hur belastade dina kalenderkontroller är. I praktiken hanterar det här flödet en förfrågan i taget per chattmeddelande, så det skalar bra för de flesta småföretag.

Är den här Telegram-bokningsautomation-automationen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom bokningsflöden inte bara är en trigger och en action. Du behöver förgrening (boka vs avboka vs lista), validering (är tiden ledig?) och städning (ta bort både kalenderhändelse och rader i arket tillsammans). n8n klarar den typen av logik utan att din automation blir ett spindelnät av separata Zaps eller Scenarios. Dessutom spelar self-hosting roll när volymen växer. Om dina behov är riktigt enkla kan Zapier eller Make vara snabbare att komma igång med. Prata med en automationsexpert om du vill ha en rak rekommendation för just ditt fall.

När detta är live slutar bokningar att kännas sköra. Du får en kalender som stämmer med verkligheten, plus en Sheets-logg som du faktiskt kan lita på.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal