Gemiste afspraken kosten dienstverlenende bedrijven duizenden euro's per jaar. Een simpele SMS-herinnering de dag ervoor kan het aantal no-shows met 30-50% verminderen. Maar het instellen van Twilio hiervoor voelt als overkill — en de kosten lopen op.

Hier lees je hoe je een supereenvoudig afspraakherinneringssysteem bouwt met je eigen telefoon als SMS-gateway.

Waarom niet gewoon Twilio gebruiken?

Voor een kleine kliniek of salon die 200 herinneringen/maand verstuurt, zijn de kosten van Twilio:

  • Berichten: 200 × $0.0079 = $1.58
  • Carrier toeslagen: 200 × $0.003 = $0.60
  • Telefoonnummer: $1.15/maand
  • 10DLC registratie: $2/maand + $15 eenmalig
  • Insteltijd: 1-2 uur (SDK, verificatie, registratie)

Totaal: ~$5.33/maand + instellingsgedoe. En als de registratie wordt afgewezen (veelvoorkomend voor kleine bedrijven), zit je vast.

Met MySMSGate: 200 × $0.03 = $6.00/maandu003c/strongu003e. Geen registratie, geen instellingsgedoe, werkt binnen 5 minuten. Je patiënten zien je echte telefoonnummer — niet een willekeurig Twilio nummer.

Optie 1: Google Sheets + Apps Script (Geen Code)

De eenvoudigste aanpak — perfect als je afspraken al bijhoudt in een spreadsheet.

Stel je Sheet in

Maak een Google Sheet met kolommen:

A: PatiëntnaamB: TelefoonC: DatumD: TijdE: Herinnerd
Sarah Johnson+120255512342026-03-103:00 PM
Mike Chen+120255556782026-03-104:30 PM

Voeg het Script toe

Ga naar Extensies → Apps Script, plak deze code:

function sendReminders() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var tomorrow = new Date();
  tomorrow.setDate(tomorrow.getDate() + 1);
  var tomorrowStr = Utilities.formatDate(tomorrow, "GMT", "yyyy-MM-dd");

  for (var i = 1; i < data.length; i++) {
    var name = data[i][0];
    var phone = data[i][1];
    var date = Utilities.formatDate(new Date(data[i][2]), "GMT", "yyyy-MM-dd");
    var time = data[i][3];
    var reminded = data[i][4];

    if (date === tomorrowStr && !reminded) {
      var message = "Hi " + name + ", reminder: your appointment is tomorrow at " + time + ". Reply YES to confirm or call to reschedule.";

      UrlFetchApp.fetch("https://mysmsgate.net/api/v1/send", {
        method: "post",
        headers: {
          "Authorization": "Bearer YOUR_API_KEY",
          "Content-Type": "application/json"
        },
        payload: JSON.stringify({to: phone, message: message})
      });

      sheet.getRange(i + 1, 5).setValue("Yes");
    }
  }
}

Plan het in

Ga in Apps Script naar Triggers → Trigger toevoegen:

  • Functie: sendReminders
  • Gebeurtenis: Tijdgestuurd → Dagtimer → 9.00-10.00 uur

Klaar. Elke ochtend controleert het script de afspraken van morgen en verstuurt automatisch herinneringen.

Optie 2: Python Script (Ontwikkelaar)

Als je een boekingssysteem met een database hebt:

import requests
import sqlite3
from datetime import date, timedelta

API_KEY = "YOUR_API_KEY"
tomorrow = date.today() + timedelta(days=1)

db = sqlite3.connect("bookings.db")
appointments = db.execute(
    "SELECT name, phone, time FROM appointments WHERE date = ? AND reminded = 0",
    (tomorrow.isoformat(),)
).fetchall()

for name, phone, time in appointments:
    message = f"Hi {name}, reminder: your appointment is tomorrow at {time}. Reply YES to confirm."

    response = requests.post(
        "https://mysmsgate.net/api/v1/send",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"to": phone, "message": message}
    )

    if response.json().get("success"):
        db.execute("UPDATE appointments SET reminded = 1 WHERE phone = ? AND date = ?",
                   (phone, tomorrow.isoformat()))

db.commit()

Uitvoeren met cron: 0 9 * * * python3 /path/to/reminders.py

Optie 3: Zapier / Make (Geen Code)

Als je Calendly, Google Calendar, of een andere boekingstool met Zapier-integratie gebruikt:

  1. Trigger: "Nieuwe gebeurtenis in Google Agenda" (of Calendly, Acuity, etc.)
  2. Actie: Vertraging tot 1 dag voor de gebeurtenis
  3. Actie: Webhooks by Zapier → POST naar https://mysmsgate.net/api/v1/send

Stel headers in: Authorization: Bearer YOUR_API_KEY

Stel body in: {"to": "{{phone}}", "message": "Hallo {{name}}, herinnering: je afspraak is morgen om {{time}}."}

Tips voor Effectieve Herinneringen

  • Verstuur 24 uur van tevoren — geeft patiënten tijd om te verzetten
  • Vermeld de tijd — "morgen om 15:00 uur" is beter dan "morgen"
  • Vraag om bevestiging — "Antwoord JA om te bevestigen" verhoogt de betrokkenheid
  • Houd het kort — 1 SMS-segment (160 tekens) is ideaal
  • Gebruik je bedrijfsnaam — patiënten herkennen je nummer omdat het JOUW nummer is

Begin gratis — stel herinneringen in minder dan 10 minuten in.