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
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n4@{ icon: "mdi:location-exit", form: "rounded", label: "get_calendar_events", pos: "b", h: 48 }
n5@{ icon: "mdi:location-exit", form: "rounded", label: "create_calendar_event", pos: "b", h: 48 }
n6@{ icon: "mdi:wrench", form: "rounded", label: "travel_directions", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Defaults", pos: "b", h: 48 }
n10 --> n1
n3 -.-> n1
n0 --> n10
n2 -.-> n1
n6 -.-> n1
n4 -.-> n1
n5 -.-> n1
end
subgraph sg1["Sub: travel_directions Flow"]
direction LR
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "set Travel_time", pos: "b", h: 48 }
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Call Google Directions API"]
n9@{ icon: "mdi:play-circle", form: "rounded", label: "Sub: travel_directions", pos: "b", h: 48 }
n9 --> n8
n8 --> n7
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0,n9 trigger
class n1 ai
class n2 aiModel
class n6 ai
class n3 ai
class n8 api
classDef customIcon fill:none,stroke:none
class n8 customIcon
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
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
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.
- Lägg till noden Scheduled Run Trigger som workflow-trigger.
- Ställ in schemaregeln så att den körs kl.
7med fältet triggerAtHour. - Bekräfta att körflödet startar som Scheduled Run Trigger → Initialize 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.
- Öppna Retrieve Calendar Events och ställ in Calendar till
[YOUR_EMAIL](cachelagrat namn[YOUR_CALENDAR]). - 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. - Inloggningsuppgift krävs: Anslut era googleCalendarOAuth2Api-credentials för Retrieve Calendar Events (det här verktyget är kopplat till Calendar Planning Agent).
- Öppna Create Calendar Entry och ställ in Calendar till
[YOUR_EMAIL](cachelagrat namn[YOUR_CALENDAR]). - Ställ in Start till
{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }}och End till{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}. - Ställ in Additional Fields → Summary till
{{ $('Initialize Defaults').item.json['Blocker name'] }}. - Inloggningsuppgift krävs: Anslut era googleCalendarOAuth2Api-credentials för Create Calendar Entry (det här verktyget är kopplat till Calendar Planning Agent).
[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.
- Öppna Initialize Defaults och ställ in tilldelningarna: home till
[YOUR_ADDRESS], mode tilltransit, och Blocker name tillTravel time. - Ö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 }}. - Öppna OpenAI Chat Engine och välj modellen
gpt-4.1-mini. - Inloggningsuppgift krävs: Anslut era openAiApi-credentials för OpenAI Chat Engine (detta är språkmodellen för Calendar Planning Agent).
- Ö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.
[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.
- Öppna Travel Directions Tool och bekräfta att Workflow ID är inställt på
bwx8LUWOdqelNFtaoch att Description förklarar verktygets syfte. - 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') }}. - Öppna Subflow: Travel Inputs och verifiera att indata origin, destination, och mode är definierade.
- Ö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 }}. - Ställ in Authentication till
genericCredentialTypeoch Generic Auth Type tillhttpQueryAuth. - Inloggningsuppgift krävs: Anslut era httpQueryAuth-credentials för Google Directions Request.
- Öppna Assign Travel Duration och ställ in Travel_time till
{{ $json.routes[0].legs[0].duration.text }}.
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.
- Klicka på Execute Workflow för att köra workflowet manuellt från Scheduled Run Trigger.
- 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.
- Kontrollera er kalender efter nya
Travel time-händelser som skapats före schemalagda händelser med platsangivelser. - Aktivera workflowet genom att slå på Active så att det körs dagligen vid den schemalagda tiden.
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
Cirka 30 minuter om dina Google-konton och API-nycklar är klara.
Nej. Du kopplar Google-konton och klistrar in en API-nyckel, och justerar sedan några standardvärden som hemadress och färdsätt.
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.
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.
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.
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.
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.
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.