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

Google Calendar + Maps: blockera restid

Rickard Andersson Partner, Nodenordic.se

Din kalender ser ”okej” ut tills du faktiskt ska ta dig igenom dagen. Ett möte slutar 14:00, nästa börjar 14:00, och på något sätt förväntas du teleportera dig tvärs över stan.

Det är här calendar travel blocks gör som mest nytta. Konsulter som gör kundbesök känner det direkt. Säljare och företagare inom service gör det också, eftersom sena ankomster kostar förtroende (och ibland affären). Du slutar stapla omöjliga möten utan att behöva vakta kalendern.

Det här n8n-flödet kontrollerar dagens händelser, räknar ut verklig restid med Google Maps och lägger sedan in en reseblockering med buffert. Nedan ser du hur det fungerar, vad du behöver och vad du ska se upp med.

Så fungerar den här automatiseringen

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

n8n Workflow Template: Google Calendar + Maps: blockera restid

Problemet: möten rygg i rygg som ignorerar verkligheten

De flesta kalendrar spårar bara mötestiden, inte friktionen runt omkring. Du accepterar en inbjudan med en adress, och Google Kalender placerar glatt den precis bredvid nästa sak i schemat som om resor inte existerar. Sedan börjar dagen. Du stressar, räknar om rutter i huvudet, sms:ar ”10 minuter sen”, och kommer fram redan på efterkälken. Och det handlar inte bara om restid. Parkering, gå in, checka in, ta en kaffe, väntan på hiss. Små förseningar staplas och din ”organiserade” kalender blir anledningen till att du känner dig splittrad.

Det blir mycket snabbt. Här är vad som fallerar i praktiken.

  • Du behöver manuellt uppskatta restid för varje möte utanför kontoret, vilket är lätt att hoppa över när du har mycket.
  • En enda missad buffert sprider sig genom resten av dagen, så du blir sen mer än en gång.
  • Rutter ändras, trafiken ökar, och ”typisk restid” blir en gissning som fallerar vid sämsta möjliga tillfälle.
  • Även när du blockerar resor glömmer du att göra det konsekvent, så kalendern går inte att lita på.

Lösningen: lägg automatiskt in restidsblockeringar

Det här flödet körs varje morgon kl. 07:00 och planerar din dag så som du faktiskt lever den. Först hämtar det alla dagens händelser från Google Kalender. Sedan fokuserar det bara på händelser som har en plats, eftersom det är de som skapar ”omöjliga” scheman. För varje sådan händelse kontrollerar det om en restidsblockering redan finns, så att du inte får dubbletter. När en blockering saknas räknar flödet ut resan med Google Directions API (samma data som ligger bakom Google Maps). Som standard använder det din hemadress, men om du har en annan händelse inom ungefär 2 timmar innan, använder det den händelsens plats som startpunkt. Till sist skapar det en resehändelse i din kalender för restiden plus en 10-minuters buffert.

Flödet startar med en schemalagd trigger, och sedan koordinerar en AI-agent besluten (vilka händelser som kvalificerar, vilken ”från”-plats som ska användas och om en blockering redan finns). Därefter hämtas vägbeskrivningar från Google Maps och omvandlas till en korrekt varaktighet. Google Kalender får en ny ”reseblock”-händelse infogad precis före den riktiga bokningen, så att schemat förblir realistiskt.

Vad du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du har 4 bokningar utanför kontoret i dag. Manuellt skulle du vanligtvis kolla Maps, uppskatta körtiden och sedan skapa ett block för varje (cirka 5 minuter per bokning), alltså ungefär 20 minuter varje morgon. Med det här flödet sätter du upp det en gång, och sedan är varje dag hands-off: det kör kl. 07:00, räknar ut varje rutt och lägger in reseblock med en 10-minuters buffert automatiskt. Din kalender blir användbar innan första kaffet.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Kalender för att läsa händelser och skapa blockeringar
  • Google Directions API för att räkna ut restid från platser
  • OpenAI API-nyckel (hämta den i OpenAI-dashboarden)

Kompetensnivå: Medel. Du kopplar konton, lägger till autentiseringsuppgifter och bekräftar några variabler som hemadress och färdsätt.

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

Så fungerar det

En daglig trigger kl. 07:00 sätter igång allt. Du startar dagen med en färsk plan, inte en panik mitt på förmiddagen. Flödet körs automatiskt enligt schema, så det fungerar även om du glömmer att det finns.

Dagens kalender hämtas in i n8n. Flödet hämtar alla händelser för aktuell dag och isolerar dem som har en plats. Ingen plats, ingen reseblockering. Enkelt.

Restiden beräknas med data från Google Maps. För varje platsbaserad händelse kontrollerar flödet om en blockering redan finns (så att du inte dubbelbokar buffertar). Sedan anropar det Google Directions API. ”Från”-platsen är vanligtvis din hemadress, men om det fanns en tidigare händelse inom ungefär 2 timmar används den adressen i stället, eftersom det är mer realistiskt.

En blockering skapas precis före bokningen. n8n skapar en ny Google Kalender-händelse med restiden plus extra 10 minuter. De blocken syns som vilken annan händelse som helst, vilket innebär att din tillgänglighet speglar verkligheten.

Du kan enkelt ändra hemadress och färdsätt (bil, kollektivtrafik, gång) så att det matchar din rutin. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera triggern Scheduled Run Trigger

Ställ in schemat som startar den dagliga körningen för planering av resebuffert.

  1. Lägg till noden Scheduled Run Trigger som workflow-trigger.
  2. Ställ in schemaregeln så att den körs kl. 7 med fältet triggerAtHour.
  3. Bekräfta att körflödet startar som Scheduled Run TriggerInitialize Defaults.

Steg 2: Anslut Google Kalender

Konfigurera kalenderverktygen som agenten kommer att använda för att läsa dagens händelser och skapa reseblockerare.

  1. Öppna Retrieve Calendar Events och ställ in Calendar till [YOUR_EMAIL] (cachelagrat namn [YOUR_CALENDAR]).
  2. Låt Time Min vara {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', ``, 'string') }} och Time Max vara {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', ``, 'string') }} så att agenten kan skicka in datum.
  3. Inloggningsuppgift krävs: Anslut era googleCalendarOAuth2Api-credentials för Retrieve Calendar Events (det här verktyget är kopplat till Calendar Planning Agent).
  4. Öppna Create Calendar Entry och ställ in Calendar till [YOUR_EMAIL] (cachelagrat namn [YOUR_CALENDAR]).
  5. Ställ in Start till {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }} och End till {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}.
  6. Ställ in Additional Fields → Summary till {{ $('Initialize Defaults').item.json['Blocker name'] }}.
  7. Inloggningsuppgift krävs: Anslut era googleCalendarOAuth2Api-credentials för Create Calendar Entry (det här verktyget är kopplat till Calendar Planning Agent).
⚠️ Vanlig fallgrop: Ersätt [YOUR_EMAIL] och [YOUR_CALENDAR] med ert faktiska Google Kalender-konto; annars kan agenten inte läsa eller skriva händelser.

Steg 3: Sätt upp Calendar Planning Agent

Definiera standardvärden och konfigurera AI-agenten som orkestrerar beräkning av restid och kalenderuppdateringar.

  1. Öppna Initialize Defaults och ställ in tilldelningarna: home till [YOUR_ADDRESS], mode till transit, och Blocker name till Travel time.
  2. Öppna Calendar Planning Agent och behåll Text som den tillhandahållna prompten, inklusive uttryck som {{ $('Initialize Defaults').item.json['Blocker name'] }}, {{ $('Scheduled Run Trigger').item.json['Readable date'] }}, och {{ $('Initialize Defaults').item.json.home }}.
  3. Öppna OpenAI Chat Engine och välj modellen gpt-4.1-mini.
  4. Inloggningsuppgift krävs: Anslut era openAiApi-credentials för OpenAI Chat Engine (detta är språkmodellen för Calendar Planning Agent).
  5. Öppna Session Memory Buffer och ställ in Session Key till {{ $('Scheduled Run Trigger').item.json.timestamp }} med Session ID Type inställt på customKey.
Tips: Uppdatera [YOUR_ADDRESS] i Initialize Defaults så att restidsberäkningarna utgår från er faktiska hem- eller kontorsadress.

Steg 4: Konfigurera del-flödet för vägbeskrivningar

Ställ in del-flödet som hämtar vägbeskrivningar och extraherar restidens varaktighet för agentens beräkningar.

  1. Öppna Travel Directions Tool och bekräfta att Workflow ID är inställt på bwx8LUWOdqelNFta och att Description förklarar verktygets syfte.
  2. I Travel Directions Tool ska ni låta Workflow Inputs vara inställt till {{ $('Initialize Defaults').item.json.mode }}, {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('origin', `Starting point of the Journey.`, 'string') }}, och {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('destination', `End point of the Journey.`, 'string') }}.
  3. Öppna Subflow: Travel Inputs och verifiera att indata origin, destination, och mode är definierade.
  4. Öppna Google Directions Request och ställ in URL till =https://maps.googleapis.com/maps/api/directions/json?origin={{ $('Subflow: Travel Inputs').item.json.origin }}&destination={{ $('Subflow: Travel Inputs').item.json.destination }}&mode={{ $('Subflow: Travel Inputs').item.json.mode }}.
  5. Ställ in Authentication till genericCredentialType och Generic Auth Type till httpQueryAuth.
  6. Inloggningsuppgift krävs: Anslut era httpQueryAuth-credentials för Google Directions Request.
  7. Öppna Assign Travel Duration och ställ in Travel_time till {{ $json.routes[0].legs[0].duration.text }}.
⚠️ Vanlig fallgrop: Säkerställ att er Google Directions API-nyckel är konfigurerad i den valda httpQueryAuth-credentialn, annars kommer anropet för vägbeskrivningar att misslyckas.

Steg 5: Testa och aktivera ert workflow

Verifiera hela körningen från schema till kalenderuppdateringar och aktivera den sedan för daglig användning.

  1. Klicka på Execute Workflow för att köra workflowet manuellt från Scheduled Run Trigger.
  2. Bekräfta att Calendar Planning Agent anropar Retrieve Calendar Events, använder Travel Directions Tool, och därefter triggar Create Calendar Entry för saknade reseblockerare.
  3. Kontrollera er kalender efter nya Travel time-händelser som skapats före schemalagda händelser med platsangivelser.
  4. Aktivera workflowet genom att slå på Active så att det körs dagligen vid den schemalagda tiden.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Autentiseringsuppgifter för Google Kalender kan löpa ut eller sakna behörigheter till kalendern. Om händelser inte skapas, kontrollera autentiseringsuppgiften i n8n och bekräfta åtkomst till rätt kalender.
  • Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du att redigera utdata i all evighet.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för calendar travel blocks?

Cirka 30 minuter om dina Google-konton och API-nycklar är klara.

Behöver jag kunna koda för att automatisera calendar travel blocks?

Nej. Du kopplar Google-konton och klistrar in en API-nyckel, och justerar sedan några standardvärden som hemadress och färdsätt.

Är n8n gratis att använda för det här flödet för calendar travel blocks?

Ja. n8n har ett gratis alternativ för egen hosting och en gratis testperiod på n8n Cloud. Molnplaner börjar på 20 USD/månad för högre volym. Du behöver också räkna in användning av Google Directions API (oftast liten om du inte har många dagliga händelser) samt eventuell OpenAI API-användning för AI-agenten.

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

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här flödet för calendar travel blocks för olika färdsätt eller flera startplatser?

Ja, och det är värt att göra. Du kan ändra standardvärdena för ”Mode of Transportation” och ”Home address” i noden Initialize Defaults och sedan skicka in de värdena i Google Directions Request. Om du vill ha flera startplatser (som ”hemma” vissa dagar och ”kontor” andra) kan du lägga till en enkel Switch som väljer startpunkt baserat på veckodag, kalender eller ett Telegram-kommando och sedan återanvända samma directions-anrop.

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

Oftast beror det på en utgången OAuth-anslutning eller att autentiseringsuppgiften skapades under fel Google-konto. Återanslut Google Kalender-uppgiften i n8n och bekräfta sedan att flödet pekar på rätt kalender i både noderna ”Retrieve Calendar Events” och ”Create Calendar Entry”. Om det fortfarande misslyckas, kontrollera Googles säkerhetsaviseringar och se till att ditt konto får ge tredjepartsåtkomst. Rate limits kan också förekomma om du bearbetar många kalendrar samtidigt, men vid en enskild daglig körning är det ovanligt.

Hur många händelser klarar den här automatiseringen för calendar travel blocks?

I praktiken fungerar dussintals händelser per dag bra för de flesta små team. Gränserna i n8n Cloud beror på din plans månadsvisa körningar, medan self-hosted n8n inte har någon körningsgräns (din server och Googles API-kvoter blir begränsningen). Varje platsbaserad händelse triggar vanligtvis en directions-uppslagning och, vid behov, ett anrop för att skapa kalenderhändelsen.

Är den här automatiseringen för calendar travel blocks bättre än att använda Zapier eller Make?

Ofta, ja. Det här flödet drar nytta av förgreningslogik (kontroll av platser, hitta nyliga tidigare händelser, hoppa över dubbletter), och n8n hanterar det snyggt utan att din automation blir en hög av separata Zaps/scenarier. Egen hosting är också en stor grej om du vill köra obegränsat med kontroller utan att stirra på en uppgiftsräknare. Zapier eller Make kan fortfarande funka för en enklare variant, som ”lägg alltid till en fast buffert på 20 minuter”, men så fort du vill ha verkliga tider baserade på vägbeskrivningar är n8n oftast det lugnare valet. Prata med en automationsexpert om du vill ha hjälp att välja.

När restiden automatiskt finns i kalendern slutar din dag att ljuga för dig. Sätt upp det, låt det köra kl. 07:00 och använd det extra andrummet till arbete som faktiskt betyder något.

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