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

Google Calendar + Gmail: klasspåminnelser rätt

Rickard Andersson Partner, Nodenordic.se

Kurspåminnelser låter enkla tills du jagar kalkylblad, uppdaterar kalendrar och skickar “snabba” mejl som blir en daglig tidstjuv.

Automatisering av kalenderpåminnelser hjälper när schemat ändras ofta. Programkoordinatorer märker det först, men en ägare av en liten utbildningsverksamhet och en driftsansvarig hamnar till slut i samma repetitiva arbete. Och när du missar en påminnelse blir det uteblivna deltagare.

Det här n8n-flödet kontrollerar dagens klasser, synkar dem till Google Kalender och skickar personliga påminnelser via Gmail (eller SMS). Du ser också hur det förhindrar dubbla utskick och håller en strukturerad logg du kan lita på.

Så fungerar den här automatiseringen

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

n8n Workflow Template: Google Calendar + Gmail: klasspåminnelser rätt

Problemet: kurspåminnelser faller isär när scheman ändras

Om ditt schema bor i ett kalkylblad (eller en “schemaexport” som någon uppdaterar i sista stund) blir påminnelser sköra. Du uppdaterar klasstiden på ett ställe, glömmer kalenderhändelsen och får sedan panikmejla studenter en och en. Multiplicera det med några klasser per dag så lägger du cirka 1–2 timmar i veckan på copy-paste-jobb som ingen tackar dig för. Ännu värre: du kan inte enkelt bevisa vad som skickats, till vem och när. Det gör klagomål svårare och förbättringar av processen blir i praktiken gissningar.

Det går fort utför. Här är det som brukar brista.

  • Du uppdaterar Google Kalender manuellt, så kalendern glider långsamt ifrån det “riktiga” schemat.
  • Påminnelser skickas två gånger (eller inte alls) eftersom det saknas en tillförlitlig post för “redan notifierad”.
  • Personaliseringen blir inkonsekvent, vilket ger fler svar som “Vilket rum?” och “Vilken tid var det nu igen?”
  • När antalet klasser ökar blir utskick en och en flaskhalsen som stoppar allt annat.

Lösningen: daglig schema-till-kalender-synk + personliga påminnelser

Det här flödet körs automatiskt varje dag, hämtar ditt kursschema och isolerar passen som sker i dag (och de som är på gång). Om det inte finns några klasser stoppar det. Om det finns, synkar det varje klass till Google Kalender så att kalendern är korrekt utan manuella ändringar. Sedan slår det upp anmälda studenter och deras föredragna kontaktmetod och skapar en påminnelse som innehåller de detaljer folk faktiskt behöver (tid, rum, kursnamn). Påminnelser skickas i batchar så att en hektisk dag inte överbelastar din e-post- eller SMS-leverantör. Till sist kontrollerar och uppdaterar flödet en påminnelselog så att du har en tydlig historik och inbyggt skydd mot dubbletter.

Automatiseringen startar med en daglig Cron-trigger. Därifrån läser den dina schema- och kontaktkalkylblad, uppdaterar Google Kalender och förbereder påminnelsemeddelanden. Därefter skickar den varje student till Gmail eller SMS baserat på deras preferens och lägger till skickresultatet i en logg.

Det här får du: automatisering vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du kör 6 klasser på en dag med 12 studenter i varje. Manuellt kanske du lägger cirka 5 minuter på att uppdatera kalenderhändelser och ungefär 1 minut per student för att skicka påminnelser (nära 1,5 timme). Med det här flödet är “jobbet” i princip noll: den dagliga triggern kör av sig själv, kalendersynken sker i bakgrunden och påminnelserna skickas i batchar medan du gör något annat. Du gör fortfarande en snabb kontroll av loggen, men det tar ett par minuter, inte hela förmiddagen.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Självhostning om du föredrar det (Hostinger fungerar bra)
  • Google Kalender för att skapa och uppdatera händelser
  • Gmail / SMTP e-post för att skicka e-postpåminnelser till studenter
  • Excel- eller Google Sheets-filer för att lagra scheman, kontakter och loggar
  • SMS-leverantör (valfritt) för att sms:a studenter som föredrar SMS
  • OpenAI API-nyckel (valfritt) (hämta den från din OpenAI-dashboard)

Kunskapsnivå: Medel. Du kopplar konton, pekar flödet mot dina filer och testar med några exempelklasser.

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

Så fungerar det

En daglig schemakontroll drar igång allt. Flödet kör enligt ett Cron-schema (oftast en gång per morgon). Det hämtar direkt det senaste schemat från din class_schedule-fil.

Dagens klasser filtreras och valideras. Det identifierar vilka pass som sker i dag och kontrollerar sedan om det finns något att göra. Inga klasser schemalagda? Då avslutas det snyggt, så att du inte bränner exekveringar eller skickar onödiga meddelanden.

Kalendern synkas innan påminnelser går ut. För varje klass skapas eller uppdateras Google Kalender-händelser, vilket gör att lärare och personal kan lita på kalendervyn utan att behöva dubbelkolla kalkylbladet.

Påminnelser personaliseras och skickas via rätt kanal. Studentkontakter laddas, ett meddelande skapas per student och sedan skickar n8n varje påminnelse till e-post eller SMS utifrån fältet “Preferred Contact”. Den bearbetar i batchar för att hålla leveransen stabil på intensiva dagar.

En påminnelselog förhindrar dubbletter. Flödet läser din reminder_log, lägger till det som skickats och använder historiken för att undvika dubbla utskick. Ärligt talat är det loggen som gör att detta går från “automatisering” till något du kan köra dagligen utan stress.

Du kan enkelt ändra tidpunkten för påminnelserna så att de skickas kvällen innan i stället för samma dag, beroende på vad du behöver. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera triggern för dagligt schema

Ställ in workflowet så att det körs enligt ett dagligt schema så att påminnelser förbereds automatiskt.

  1. Lägg till noden Daily Schedule Trigger som er workflow-trigger.
  2. Definiera önskad daglig körtid i schemainställningarna för Daily Schedule Trigger.
  3. Koppla Daily Schedule Trigger till Fetch Class Timetable.

Steg 2: anslut Microsoft Excel-datakällor

Ladda klasscheman, studentkontakter och loggningsdata från Microsoft Excel.

  1. Öppna Fetch Class Timetable och välj er arbetsbok och ert kalkylblad för schemat. Credential Required: Anslut era microsoftExcelOAuth2Api-uppgifter.
  2. Öppna Retrieve Student Contacts och välj arbetsboken och kalkylbladet som innehåller studenternas kontaktuppgifter. Credential Required: Anslut era microsoftExcelOAuth2Api-uppgifter.
  3. Öppna Load Reminder Log och välj arbetsboken och kalkylbladet som lagrar påminnelseloggar. Credential Required: Anslut era microsoftExcelOAuth2Api-uppgifter.
  4. Öppna Append Reminder Log, ställ in Resource till worksheet, ställ in Operation till append och välj mål-arbetsbok/-kalkylblad. Credential Required: Anslut era microsoftExcelOAuth2Api-uppgifter.
Tips: Säkerställ att era Excel-ark innehåller fält som Class Date, Class Time, Class Name, Reminder Time (Hours), First Name, Last Name, Email, Phone och Preferred Contact så att de matchar kodlogiken.

Steg 3: konfigurera filtrering och valideringslogik för klasser

Filtrera dagens och morgondagens klasser och validera sedan poster innan ni fortsätter.

  1. I Filter Current Day Classes behåller ni befintlig JavaScript som filtrerar schemarader baserat på datum, tid och påminnelsefönster.
  2. I Validate Class Availability ställer ni in strängvillkoret för att kontrollera Value 1 som ={{$json['Class Name']}} och Operation till isNotEmpty.
  3. Bekräfta parallell körning: Filter Current Day Classes skickar utdata till både Validate Class Availability och Update Calendar Entries parallellt.
⚠️ Vanlig fallgrop: Om Class Date inte är i formatet YYYY-MM-DD kommer Filter Current Day Classes inte att matcha dagens poster.

Steg 4: konfigurera kalenderuppdateringar

Uppdatera Google Kalender med klasshändelser baserat på schemadata.

  1. Öppna Update Calendar Entries och ställ in Calendar till ert kalender-ID (ersätt [YOUR_EMAIL]).
  2. Ställ in Start till ={{$json['Class Date']}}T{{$json['Class Time'].split(':')[0].padStart(2, '0')}}:{{$json['Class Time'].split(':')[1].padStart(2, '0')}}:00.
  3. Ställ in End till ={{$json['Class Date']}}T{{(parseInt($json['Class Time'].split(':')[0]) + 1).toString().padStart(2, '0')}}:{{$json['Class Time'].split(':')[1].padStart(2, '0')}}:00.
  4. Credential Required: Anslut era googleCalendarOAuth2Api-uppgifter.

Steg 5: konfigurera generering av påminnelser, routning och meddelanden

Skapa påminnelser för inskrivna studenter, batcha dem och routa efter föredragen kontaktmetod.

  1. I Generate Student Alerts behåller ni befintlig JavaScript som slår ihop klassdata från Filter Current Day Classes med kontakter från Retrieve Student Contacts.
  2. I Batch Reminder Items ställer ni in Batch Size till 10.
  3. I Route by Contact Method ställer ni in strängvillkoret så att Value 1 ={{$json.preferredContact}} jämförs med Value 2 email.
  4. Säkerställ att Route by Contact Method skickar e-postposter till Compose Email Alerts och icke-e-postposter till Compose SMS Alerts.
Tips: De kodbaserade noderna (Filter Current Day Classes, Generate Student Alerts, Compose Email Alerts, Compose SMS Alerts, Assemble Log Updates) är utformade för anpassning – justera meddelandemallar vid behov.

Steg 6: konfigurera loggning och lägg till resultat

Spåra alla skickade påminnelser genom att lägga till loggposter i Excel.

  1. Koppla Compose Email Alerts till Load Reminder Log, och koppla även Compose SMS Alerts till Load Reminder Log.
  2. I Assemble Log Updates behåller ni aktuell JavaScript som kombinerar befintliga loggar med nya e-post-/SMS-poster.
  3. Koppla Load Reminder Log till Assemble Log Updates och sedan till Append Reminder Log för att skriva resultaten.

Steg 7: testa och aktivera ert workflow

Validera flödet end-to-end innan ni aktiverar automationen.

  1. Klicka på Execute Workflow för att köra Daily Schedule Trigger manuellt.
  2. Bekräfta att Filter Current Day Classes ger ut poster och att Update Calendar Entries tar emot objekt parallellt.
  3. Verifiera att Compose Email Alerts och Compose SMS Alerts producerar meddelandepayloads och att Append Reminder Log tar emot nya poster.
  4. När allt fungerar, växla workflowet till Active för att aktivera daglig automation.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Kalender-inloggningar kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först Google-kopplingen under Credentials i n8n.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera utdata för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen av kalenderpåminnelser?

Cirka en timme om dina schema- och kontaktfiler är klara.

Behöver jag kunna koda för att automatisera kalenderpåminnelser och klassaviseringar?

Nej. Du kopplar mest konton, pekar mot dina schema-/kontaktfiler och testar en exempeldag.

Är n8n gratis att använda för det här flödet för automatisering av kalenderpåminnelser?

Ja. n8n har ett gratis alternativ för självhostning och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in valfria kostnader som SMS-avgifter (ofta några cent per SMS) och OpenAI-användning om du aktiverar AI-genererade meddelanden.

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 självhostning på en VPS. För självhostning är Hostinger VPS prisvärt och hanterar n8n bra. Självhostning ger dig obegränsade exekveringar men kräver grundläggande serverhantering.

Kan jag anpassa det här flödet för automatisering av kalenderpåminnelser så att påminnelser skickas kvällen innan?

Ja, men du behöver justera på två ställen. Ändra Cron-schemat så att det kör på kvällen och justera sedan logiken i “Filter Current Day Classes” så att den hämtar morgondagens pass i stället för dagens. Många team anpassar också meddelandemallarna i avsnitten “Compose Email Alerts” och “Compose SMS Alerts” så att tonen matchar programmet (formell, vänlig, kort osv.). Om du använder AI uppdaterar du prompten en gång så blir formuleringarna konsekventa.

Varför fungerar inte min Google Kalender-koppling i det här flödet?

Oftast handlar det om utgångna eller felmatchade inloggningsuppgifter i n8n. Återanslut Google Kalender i n8n, bekräfta att du valt rätt Google-konto och dubbelkolla kalender-ID:t du skriver till. Om det fungerar i tester men misslyckas i produktionskörningar kan även rate limits eller behörighetsändringar på Googles sida vara orsaken.

Hur många påminnelser klarar den här automatiseringen av kalenderpåminnelser?

Många.

Är den här automatiseringen av kalenderpåminnelser bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet behöver villkorsstyrd routing (e-post vs SMS), batchning och en logg som förhindrar dubbletter, och n8n hanterar det utan att varje extra steg blir en extra kostnad. Zapier eller Make kan fortfarande fungera, men då kan du behöva flera Zaps/scenarier och noggranna körbegränsningar om du skickar många påminnelser. n8n ger dig också möjligheten att självhosta, vilket innebär att du inte begränsas på samma sätt av exekveringar. Nackdelen är uppsättningen: du kommer lägga lite mer tid på att koppla inloggningar och testa. Prata med en automationsexpert om du är osäker på vad som passar.

När detta väl rullar hålls schemat synkat och påminnelser går ut utan att du behöver vakta dem. Det betyder färre uteblivna deltagare, färre “vilken tid är det?”-mejl och en logg som sätter punkt för förvirringen.

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