§

Voer een cron-expressie in of kies een voorinstelling hieronder.

Snelle voorinstellingen:
§

Volgende 10 uitvoertijden

cron

Leesbaar schema verschijnt hier...

    §

    Expressiebouwer

    Nederlandse developers komen cron-syntax op elk niveau van de stack tegen: bij het inplannen van AWS Lambda-functies via EventBridge Scheduler, in Kubernetes CronJob-resources op EKS-clusters gehost bij AWS in Frankfurt, en in GitHub Actions-workflows die CI/CD-pipelines aansturen voor teams op kantoor in Amsterdam of Utrecht. De valkuil is dat geen van die platforms het eens is over de randgevallen. EventBridge voegt een zesde veld voor het jaar toe en vereist ? in plaats van * op een van de dagvelden. Kubernetes draait in UTC tenzij je expliciet spec.timeZone instelt — wat belangrijk is voor teams die van zomertijd naar wintertijd wisselen (CET/CEST). GitHub Actions draait altijd in UTC zonder uitzondering. Deze tool parseert welke variant je ook invult, toont de volgende tien uitvoertijden in de IANA-tijdzone die je kiest, en laat je een nieuwe expressie veld voor veld bouwen zodat je de planning kunt controleren vóór uitrol.

    Wat is een cron-expressie?

    Een cron-expressie is een compacte planningstekenreeks die een taakplanner precies vertelt wanneer een taak moet worden uitgevoerd. Het formaat ontstond in 1975 in de Unix V7 cron-daemon en is sindsdien nauwelijks veranderd — dezelfde grammatica met vijf velden duikt vandaag op in Kubernetes CronJobs, AWS EventBridge, GitHub Actions-workflows, Google Cloud Scheduler, GitLab CI, Jenkins-pipelines en het crontab-binaire bestand dat met elke Linux-distributie wordt meegeleverd. De grammatica stopt veel betekenis in dertien of zo tekens, en dat is waarom een parser die dit omzet naar gewoon Nederlands het verschil maakt tussen een zelfverzekerde deploy en een rollback om 3 uur ’s nachts.

    Hoe werkt een cron-expressie?

    Een standaard cron-expressie heeft vijf door spaties gescheiden velden die samen een herhalend schema bepalen. De engine vergelijkt elke minuut de huidige klok met de expressie en voert de taak uit wanneer alle vijf velden overeenkomen. De velden van links naar rechts:

    1. Minuut (0–59). Welke minuut in het uur de taak wordt uitgevoerd. 0 betekent op het hele uur, 30 op het halve uur, */5 elke vijf minuten (00, 05, 10, ...) en 15,45 op kwart over en kwart voor.
    2. Uur (0–23). Welk uur van de dag op de 24-uursklok. 0 is middernacht, 9 is 9:00, 17 is 17:00. Bereiken (9-17 voor kantooruren) en stapwaarden (*/2 voor elk tweede uur) werken op dezelfde manier als bij minuten.
    3. Dag van de maand (1–31). Welke kalenderdag wordt uitgevoerd. 1 betekent de 1e van de maand, * elke dag, 1,15 de 1e en de 15e. Let op bij 31 — het sluit maanden zonder 31e dag stil over.
    4. Maand (1–12 of JAN–DEC). Welke maanden worden uitgevoerd. * betekent elke maand, 1,7 januari en juli, 1-3 alleen het eerste kwartaal. Drieletter-maandnamen zijn hoofdletterongevoelig in de meeste implementaties.
    5. Dag van de week (0–7, waarbij zowel 0 als 7 zondag betekent). Beperkt uitvoering tot bepaalde weekdagen. 1-5 is maandag tot en met vrijdag, 0,6 is het weekend, MON-FRI werkt in de meeste parsers. Wanneer zowel dag van de maand als dag van de week op specifieke waarden zijn ingesteld, wordt de taak bij klassieke cron uitgevoerd bij een van beide overeenkomsten (logische OF) — wat mensen elke keer verrast.

    Waarom een cron-expressieparser gebruiken?

    • Vang de stille vergissing vóór de deploy. De expressie 0 2 */3 * * wordt om 2:00 elke derde dag uitgevoerd, niet elke drie minuten — plak het hier en je ziet dat in gewoon Nederlands vóór het naar productie gaat.
    • De meeste cloudplanners draaien standaard in UTC. Door de volgende tien uitvoertijden in je lokale tijdzone te bekijken, ontdek je de zomertijdverschuiving van een uur vóór iemand om 3 uur ’s nachts wordt gewekt.
    • Snelkoppelingen zoals @daily, @weekly en @monthly zijn handig maar vaag. De parser toont je de onderliggende vijf-veld-vorm zodat je precies weet wat er is gepland.
    • Met de veld-voor-veld-bouwer stel je een schema veld voor veld samen en zie je de leesbare omschrijving live bijwerken — dat is een stuk sneller dan de cron-manpagina voor de tiende keer te herlezen.

    Waar worden cron-expressies gebruikt?

    Cron-syntax duikt op overal waar een taak op een klok moet herhalen. Drie van de meest voorkomende contexten, met de bekende valkuil van elk:

    • Back-upplanningen. Het klassieke crontab -e-item dat een database naar S3 dumpt om 2:00 uur ’s nachts, of een pg_dump-archief roteert op de 1e van elke maand. Een regel als 0 2 * * * /usr/local/bin/backup.sh staat op meer Linux-servers dan welke andere cron-regel ook. Krijg het minuut en uur goed, leid stderr ergens duurzaam naartoe en je hebt een handmatige checklist vervangen door een script dat zichzelf uitvoert.
    • GitHub Actions schedule-triggers. De sleutel on.schedule.cron in .github/workflows/*.yml accepteert standaard vijf-veld-cron, maar de taak draait altijd in UTC en GitHub slaat een uitvoertijdstip stil over als de runner-wachtrij bezet is. Gangbaar patroon: cron: '0 9 * * 1-5' om een maandag-tot-vrijdag-digest om 9:00 UTC te sturen. Bekijk het hier in je lokale tijdzone vóórdat je een digest om 9:00 belooft die in de zomer om 11:00 aankomt.
    • AWS EventBridge Scheduler. EventBridge cron-expressies gebruiken een zesde veld voor het jaar en vereisen ? in plaats van * in ofwel het dag-van-de-maand- of dag-van-de-weekveld — cron(0 9 ? * MON-FRI *) is de EventBridge-vertaling van de klassieke weekdag-9:00-standaard-cron. Gebruikt voor geplande Lambda-aanroepen, ECS-taakvervolgingen en Step Function-starts; de mismatch met klassieke cron-syntax is de voornaamste bron van ValidationException-fouten in CloudFormation-deploys.

    Hoe ziet een echte cron-expressie eruit?

    Neem 0 9 * * 1-5 — wordt uitgevoerd om 9:00, elke werkdag. De velden van links naar rechts: 0 is de nulde minuut van het uur, 9 is 9:00 op de 24-uursklok, * bij dag van de maand betekent elke kalenderdag, * bij maand betekent elke maand, en 1-5 bij dag van de week beperkt uitvoering tot maandag tot en met vrijdag (waarbij 1 = maandag in de standaard cron-nummering). Plak dat in het invoerveld hierboven en de parser bevestigt Om 09:00, maandag tot en met vrijdag met de volgende tien data in de IANA-tijdzone die je kiest. Hetzelfde in AWS EventBridge-syntax is cron(0 9 ? * MON-FRI *) — let op het jaarveld aan het einde en de ? waar standaard-cron * zou gebruiken. Hetzelfde als Quartz-expressie (zes velden met voorloopse seconden) is 0 0 9 ? * MON-FRI. Drie platforms, drie oppervlakvormen, één onderliggend schema.

    Cron-expressies zijn op precies één manier meedogenloos: een typefout geeft je een syntactisch geldige planning die op het verkeerde tijdstip wordt uitgevoerd, zonder fout om op te vangen bij code review. 0 0 1 * * lezen en weten dat het om middernacht op de 1e van elke maand draait, niet op 1 januari, vergt oefening. De parser hierboven maakt van die oefening een controle van tien seconden — plak de expressie, lees de Nederlandse omschrijving, scan de volgende tien uitvoertijden in je lokale tijdzone, en ship de YAML wetende dat de cron-regel precies doet wat het commit-bericht zegt.

    Wat is het verschil tussen cron met 5 en 6 velden?

    Vijf-veld-cron is de klassieke Unix-grammatica met een minimale resolutie van één minuut. Zes-veld-cron voegt een voorloopse sekundenkolom toe voor sub-minuutplanning — gebruikt door Quartz en Spring’s @Scheduled. AWS EventBridge gebruikt ook zes velden, maar het extra veld is een volgend jaar, geen seconden.

    Wat betekenen @hourly, @daily en @weekly?

    Vixie-cron-bijnamen geïntroduceerd in 1987. @hourly = 0 * * * *, @daily = 0 0 * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *, @yearly = 0 0 1 1 *. @reboot wordt eenmalig bij het opstarten uitgevoerd. GitHub Actions en EventBridge weigeren deze aliassen.

    Is zondag dag 0 of dag 7 in cron?

    Beide, in klassieke Vixie-cron — 0 en 7 worden geaccepteerd zodat bereiken zoals 5-7 op een natuurlijke manier vrijdag tot en met zondag lezen. Maandag is altijd 1, zaterdag altijd 6. Quartz en AWS EventBridge gebruiken een andere conventie: 1-7 met zondag als 1. Raadpleeg de platformdocumentatie voordat je aannames doet.

    Hoe gaat cron om met zomertijd?

    Dat hangt af van de tijdzone van de engine. In UTC (de standaard bij EventBridge, Kubernetes en GitHub Actions) bestaat zomertijd niet. In een lokale zomertijdzone slaat klassieke Vixie-cron taken over tijdens de voorjaarssprong en voert ze tweemaal uit bij de herfstterugval; systemd-timers worden precies één keer uitgevoerd.