Slim mailings herhalen met RRules

door Selina Blijleven

Mensen zijn gewoontedieren, ook online. Simpele voorbeelden zijn de wekelijkse nieuwsbrief en de maandelijkse automatische incasso. Natuurlijk is dit allemaal geautomatiseerd, want waarom zou je daar tijd aan besteden als dat niet hoeft? Binnen Copernica maken we gebruik van zulke slimme patronen door het gebruiken van RRules. RRules zijn sets van regels die een patroon weergeven dat zo simpel kan zijn als “elke week” tot zo ingewikkeld als “de eerste maandag van elke maand in april t/m augustus”. RRules kunnen gebruikt voor het inroosteren van mailings en het configureren van periodieke imports en exports. RRules zijn onderdeel van het wijdverspreide iCalendar formaat, waarmee kalendergegevens gemakkelijk uitgewisseld kunnen worden. In deze blog leren we je meer over deze nuttige tools.

RRules als de regel

Het RRule formaat is een krachtige manier om een herhalend patroon te representeren. Zoals bij veel krachtige hulpmiddelen kan het ook bij RRules even duren voordat je ze onder de knie hebt. Gelukkig zijn er op het internet vele tools te vinden om je te helpen deze samen te stellen. Een RRule bestaat uit verschillende componenten. Als bedrijf dat e-mailmarketingsoftware maakt zullen wij dit natuurlijk bespreken binnen de context van mailings, maar RRules kunnen op allerlei zaken toegepast worden. Er is ten eerste een frequentie, in de regel aangeduid met ‘FREQ’. Dit geeft aan wanneer de regel zich herhaalt, bijvoorbeeld dagelijks, wekelijks of maandelijks. De hoeveelheid, aangegeven met ‘COUNT’ in de regel geeft aan (in dit geval) hoeveel mailings er plaats zullen vinden. Het interval, aangegeven met ‘INTERVAL’, is het aantal dat voor de frequentie komt te staan. Dit kan bijvoorbeeld twee zijn voor een mailing die eens per twee weken verstuurd wordt.

Een voorbeeld van een RRule is:

RRULE:FREQ=WEEKLY;COUNT=8;INTERVAL=2;

Je kunt deze regel ook lezen als “Elke twee weken, acht keer”.

Naast deze drie belangrijke componenten kun je de start van de week aangeven (WKST) en momenten waarop deze verstuurd moet worden. Zo geeft ‘BYWEEKDAY’ bijvoorbeeld aan op welke dag van de week, ‘BYMONTH’ welke dag van de maand en ‘BYYEARDAY’ de dag in het jaar. Daarnaast kun je ‘BYSETPOS’ gebruiken om een bepaalde seconde, minuut, uur etc. aan te geven. De combinatie ‘BYSETPOS’ met waarde vijf en ‘FREQ’ met waarde ‘MONTHLY’ zal er bijvoorbeeld voor zorgen dat de mailing alleen op de vijfde dag van de maand verzonden wordt.

Een moeilijker voorbeeld is:

RRULE:FREQ=WEEKLY;COUNT=8;INTERVAL=2;WKST=MO;BYDAY=WE;BYMONTH=4,5

Deze regel kun je lezen als “Elke twee weken in april en mei op woensdag, acht keer”.

Dit formaat is gestandaardiseerd en werd geïntroduceerd door de Internet Engineering Task Force (IETF) in 1998. Internetprotocollen worden vastgelegd in zogenaamde RFC-documenten, waardoor het makkelijker wordt om allerlei soorten informatie uit te wisselen via het internet. RRules zijn onderdeel van het iCalendar formaat, wat ontwikkeld is om kalenderinformatie uit te wisselen. Het iCalendar formaat werd geïntroduceerd in RFC 2445, maar werd herzien in 2009. Het meest recente document over RRules en iCalendar is RFC 5545.

Beginnen met iCalendar

Misschien miste je ze al tijdens het lezen: de start- en einddatums. Deze vormen geen onderdeel van de RRule, maar wel van de iCalendar-specificatie (als DTSTART en DTEND). Het iCalendar formaat ondersteunt ook uitzonderingen (EXDATE). Daarnaast kan dit formaat ook informatie bevatten over wie er uitgenodigd zijn, wie er aanwezig zijn en nog veel meer. Dit krachtige formaat is dan ook de standaard op het internet en wordt gebruikt door grote applicaties als Google Calendar, Apple Calendar en Microsoft Outlook. Op het moment wordt dit formaat nog niet gebruikt binnen de software van Copernica, maar als dit in de toekomst wordt toegevoegd ben jij alvast op de hoogte!