Cron Expression Generator

Genereert cron-expressies visueel met een stap-voor-stap builder

Snelle voorinstellingen

Minuut

Uur

Dag van de maand

Maand

Dag van de week

Cron-expressie

0 9 * * *

minute hour day(month) month day(week)

Wat is een cron-expressiegenerator?

Een cron-expressiegenerator is een tool die cron-planningsstrings opbouwt via een visuele interface, zonder dat u ze handmatig hoeft te schrijven. Cron-expressies zijn tekenreeksen met vijf velden (minuut, uur, dag van de maand, maand, dag van de week) die bepalen wanneer een terugkerende taak wordt uitgevoerd. Het formaat gaat terug op de originele Unix cron-daemon uit 1979 en wordt nu gebruikt in crontab, Kubernetes CronJobs, GitHub Actions, AWS EventBridge, Google Cloud Scheduler en tientallen taakplanningsbibliotheken.

Cron-expressies uit het hoofd schrijven is een veelvoorkomende bron van fouten. De vijf velden werken op niet voor de hand liggende manieren samen: een stapwaarde zoals */15 in het minutenveld levert uitvoeringen op 0, 15, 30 en 45, terwijl 5/15 begint op minuut 5 en oplevert 5, 20, 35, 50. Het combineren van dag-van-maand en dag-van-week met niet-wildcardwaarden creëert een OR-voorwaarde, geen AND — dit verrast zelfs ervaren engineers. Een visuele generator verwijdert deze dubbelzinnigheid door u het gewenste schema te laten selecteren en de juiste syntaxis automatisch te genereren.

Een cron-generator verschilt van een cron-parser. Een parser neemt een bestaande expressie en legt deze uit in gewone taal. Een generator werkt in de tegengestelde richting: u beschrijft het schema dat u nodig hebt, en de tool geeft de bijbehorende cron-string als uitvoer. Gebruik de generator bij het aanmaken van een nieuwe geplande taak; gebruik de parser bij het controleren of debuggen van bestaande taken.

Waarom deze cron-generator gebruiken?

Een cron-expressie handmatig bouwen vereist het onthouden van veldvolgorde, waardebereiken en operatorregels. Eén verkeerd geplaatst veld verandert een dagelijkse taak in een taak die elke minuut wordt uitgevoerd. Met deze generator kiest u uw schema visueel en kopieert u het resultaat met één klik.

🖱️
Visuele planningsbuilder
Selecteer minuut-, uur-, dag-, maand- en weekdagwaarden uit dropdowns en schakelaars. De cron-expressie wordt in real time bijgewerkt naarmate u elk veld wijzigt. U hoeft geen syntaxis te onthouden.
🔒
Privacy-first verwerking
De volledige generatie vindt plaats in uw browser. Er worden geen planningsgegevens naar een server gestuurd. Uw cron-expressies en taakinstellingen blijven op uw apparaat.
Directe uitvoer met voorvertoning
Zie de gegenereerde cron-expressie en een voorvertoning van de volgende geplande uitvoertijden terwijl u bouwt. Verifieer of het schema correct is voordat u het in uw configuratie plakt.
📋
Geen account vereist
Open de pagina en begin met bouwen. Geen login, geen API-sleutel, geen installatie. Werkt op elk apparaat met een moderne browser, inclusief mobiel.

Toepassingen van de cron-generator

Frontend Developer
Bouw cron-expressies voor beheerderspanelen en plannings-UI's. Genereer de juiste syntaxis voor gebruikersgerichte planningskiezers die cron-strings in de database opslaan.
Backend Engineer
Maak cron-expressies voor taakwachtrijen zoals Celery, Sidekiq en Bull. Genereer de planningsstring, verifieer de volgende uitvoeringen en plak hem in uw taakinstellingen.
DevOps / SRE
Genereer cron-schema's voor Kubernetes CronJobs, CI/CD-pipelines en infrastructuurautomatisering. Bouw expressies voor back-upvensters, certificaatvernieuwing en logrotatie zonder syntaxisfouten.
QA Engineer
Maak test-cron-expressies die op specifieke intervallen worden geactiveerd voor integratietests. Genereer schema's die voorspelbare uitvoertijden opleveren om schedulergedrag te valideren.
Data Engineer
Bouw cron-expressies voor ETL-pipeline-triggers en datasynchronisatieschema's. Genereer niet-overlappende schema's voor extractie-, transformatie- en laadstappen met nauwkeurige timing.
Student / Lerende
Leer cron-syntaxis door te experimenteren met de visuele builder. Wijzig afzonderlijke velden en bekijk hoe de expressie en de volgende uitvoertijden veranderen. Ontwikkel intuïtie voor jokertekens, bereiken en stapwaarden.

Veelgebruikte cron-schemapresets

De onderstaande tabel geeft cron-expressies voor de meest gebruikte schema's. De meeste productieworkloads vallen in een van deze patronen. Pas afzonderlijke velden aan uw specifieke timing aan.

SchemaExpressieTypisch gebruik
Every minute* * * * *Health checks, queue polling
Every 5 minutes*/5 * * * *Metrics collection, cache refresh
Every 15 minutes*/15 * * * *API sync, dashboard updates
Every hour0 * * * *Log rotation, report generation
Every 6 hours0 */6 * * *Database backups, digest emails
Daily at midnight0 0 * * *Nightly batch jobs, cleanup scripts
Daily at 9 AM0 9 * * *Daily reports, notification digests
Weekdays at 9 AM0 9 * * 1-5Business-hours tasks, standup reminders
Every Monday at midnight0 0 * * 1Weekly reports, dependency updates
First of every month0 0 1 * *Billing runs, monthly aggregation
Every Sunday at 2:30 AM30 2 * * 0Full backups during low-traffic window
January 1st at midnight0 0 1 1 *Annual reports, license renewals

Bouwstenen van cron-expressies

Elke cron-expressie heeft precies vijf velden, van links naar rechts gelezen. Elk veld accepteert specifieke waarden en operators. Deze regels kennen is voldoende om elk schema te schrijven dat u in productie tegenkomt.

Indeling van een cron-expressie met vijf velden:
*min0-59
*hour0-23
*day1-31
*month1-12
*weekday0-6

Vier operators bepalen hoe waarden worden vergeleken binnen elk veld. U kunt ze combineren: 1-5/2 in het dag-van-week-veld betekent maandag, woensdag, vrijdag (bereik 1-5, stapgrootte 2).

OperatorSyntaxisVoorbeeldResultaat
Wildcard** (minute)Every minute
Lista,b,c1,15 (day)1st and 15th
Rangea-b9-17 (hour)9 AM through 5 PM
Step*/n*/10 (minute)Every 10 minutes
Range+Stepa-b/n10-30/5 (min)10, 15, 20, 25, 30

Codevoorbeelden

Hoe cron-schema's aan te maken en te registreren in Node.js, Python, Go en bash:

JavaScript (Node.js)
import { CronJob } from 'cron';

// Build a cron expression: every weekday at 9:00 AM
const expression = '0 9 * * 1-5';

const job = new CronJob(expression, () => {
  console.log('Running weekday morning task');
});
job.start();

// Programmatic expression building
function buildCron({ minute = '*', hour = '*', dom = '*', month = '*', dow = '*' }) {
  return `${minute} ${hour} ${dom} ${month} ${dow}`;
}

const expr = buildCron({ minute: '0', hour: '*/6', dow: '1-5' });
console.log(expr); // → "0 */6 * * 1-5"
Python
from crontab import CronTab

# Create a new cron job for the current user
cron = CronTab(user=True)

# Build a job: run backup.py every day at 2:30 AM
job = cron.new(command='python3 /home/user/backup.py')
job.setall('30 2 * * *')

print(job)           # → 30 2 * * * python3 /home/user/backup.py
print(job.is_valid()) # → True

# Schedule every 15 minutes on weekdays
job2 = cron.new(command='/usr/bin/sync-data')
job2.minute.every(15)
job2.dow.during('MON', 'FRI')

cron.write()  # Save to user's crontab

# Verify next run time
from croniter import croniter
from datetime import datetime

it = croniter('30 2 * * *', datetime.now())
print(it.get_next(datetime))  # → next 2:30 AM timestamp
Go
package main

import (
    "fmt"
    "strings"
    "github.com/robfig/cron/v3"
)

// BuildCron constructs a 5-field cron expression from parts
func BuildCron(minute, hour, dom, month, dow string) string {
    fields := []string{minute, hour, dom, month, dow}
    return strings.Join(fields, " ")
}

func main() {
    // Generate: every weekday at 9 AM
    expr := BuildCron("0", "9", "*", "*", "1-5")
    fmt.Println(expr) // → 0 9 * * 1-5

    // Validate and schedule it
    c := cron.New()
    _, err := c.AddFunc(expr, func() {
        fmt.Println("Running scheduled task")
    })
    if err != nil {
        fmt.Printf("Invalid expression: %v\n", err)
        return
    }
    c.Start()
}
Bash (crontab)
# Open the crontab editor to add a new job
crontab -e

# Add a cron job without opening an editor:
# Run cleanup.sh every Sunday at 3 AM
(crontab -l 2>/dev/null; echo "0 3 * * 0 /home/user/cleanup.sh") | crontab -

# Generate and add a job: every 10 minutes, log disk usage
EXPR="*/10 * * * *"
CMD="df -h >> /var/log/disk-usage.log"
(crontab -l 2>/dev/null; echo "$EXPR $CMD") | crontab -

# Verify the job was added
crontab -l | tail -1
# → */10 * * * * df -h >> /var/log/disk-usage.log

# Remove all cron jobs (use with caution)
# crontab -r

Veelgestelde vragen

Wat is de juiste veldvolgorde in een cron-expressie?
De standaard volgorde van vijf velden is: minuut (0-59), uur (0-23), dag van de maand (1-31), maand (1-12), dag van de week (0-6, waarbij 0 zondag is). Deze volgorde is gedefinieerd door POSIX en wordt gebruikt door crontab, Kubernetes, GitHub Actions en de meeste cron-bibliotheken. Sommige tools zoals Quartz Scheduler voegen vooraan een secondenveld toe, waardoor het zes velden worden, maar de vijf-velden indeling is de universele standaard.
Hoe genereer ik een cron-expressie voor 'elke N minuten'?
Gebruik de stapoperator in het minutenveld: */N. Voor elke 5 minuten schrijft u */5 * * * *. Voor elke 15 minuten schrijft u */15 * * * *. De stapoperator verdeelt het bereik van het veld gelijkmatig. Let op: */7 levert geen uitvoeringen elke 7 minuten over uurlimieten heen; het levert uitvoeringen op minuten 0, 7, 14, 21, 28, 35, 42, 49, 56 en begint dan opnieuw bij 0 aan het volgende uur.
Kan ik een cron-expressie genereren die op de laatste dag van elke maand wordt uitgevoerd?
Standaard POSIX cron heeft geen operator voor 'laatste dag van de maand'. U kunt 0 0 L * * niet schrijven in crontab of Kubernetes CronJobs. Oplossingen zijn: plannen voor dagen 28-31 en een shellcontrole toevoegen ([ $(date +%d -d tomorrow) -eq 01 ]), of een uitgebreide cron-implementatie gebruiken zoals Quartz die de L-modifier ondersteunt. AWS EventBridge rate expressions kunnen ook de laatste dag van een maand als doel instellen.
Wat is het verschil tussen een cron-generator en een cron-parser?
Een cron-generator neemt uw planningsvereisten (bijv. 'elke werkdag om 9:00') en geeft de juiste cron-expressie als uitvoer (0 9 * * 1-5). Een cron-parser werkt omgekeerd: hij neemt een bestaande expressie en produceert een leesbare beschrijving. Gebruik de generator bij het aanmaken van nieuwe schema's. Gebruik de parser bij het beoordelen of debuggen van bestaande schema's.
Hoe voorkom ik overlappende cron-taken?
Cron zelf voorkomt geen overlappende uitvoeringen. Als een taak die elke minuut is gepland 90 seconden duurt, overlappen twee instanties. Gebruik ter voorkoming een vergrendelingsbestand (flock in bash), een gedistribueerd slot (Redis, etcd), of het ingebouwde gelijktijdigheidsbeleid van uw scheduler. Kubernetes CronJobs hebben een concurrencyPolicy-veld dat kan worden ingesteld op Forbid of Replace. In schedulers op applicatieniveau zoals Celery gebruikt u de solo pool of een slot op taakniveau.
Is 0 of 1 de eerste dag van de week in cron?
In POSIX cron is 0 zondag en 6 zaterdag. Zowel 0 als 7 vertegenwoordigen zondag in de meeste implementaties. Quartz Scheduler gebruikt een andere conventie waarbij 1 zondag is en 7 zaterdag. Als uw systeem benoemde dagen ondersteunt (SUN, MON, TUE), gebruik die dan in plaats van cijfers om verwarring tussen platformen te vermijden.
Hoe genereer ik een cron-expressie voor een specifieke tijdzone?
Traditionele crontab gebruikt de lokale tijdzone van het systeem. U kunt de TZ-variabele instellen in het crontab-bestand (TZ=America/New_York) op sommige systemen. Kubernetes CronJobs ondersteunen een .spec.timeZone-veld sinds versie 1.25. AWS EventBridge en Google Cloud Scheduler laten u de tijdzone per schema opgeven. Documenteer de verwachte tijdzone altijd samen met de cron-expressie in uw configuratie.