Cron Parser

Parse cron expressions to human language. See next 10 scheduled runs. Browser-only.

time-date

Cron Parser

Cron expression

5 fields: minute hour day month weekday

Description: At 12:00 AM
Next 10 runs (UTC)
  • 2026-06-01T00:00:00.000Z
  • 2026-06-02T00:00:00.000Z
  • 2026-06-03T00:00:00.000Z
  • 2026-06-04T00:00:00.000Z
  • 2026-06-05T00:00:00.000Z
  • 2026-06-06T00:00:00.000Z
  • 2026-06-07T00:00:00.000Z
  • 2026-06-08T00:00:00.000Z
  • 2026-06-09T00:00:00.000Z
  • 2026-06-10T00:00:00.000Z

Runs entirely in your browser. Your input never leaves your device.

What next?

How it works

Sintaxe cron

Uma expressão cron clássica tem 5 campos:

* * * * *
│ │ │ │ │
│ │ │ │ └── dia da semana (0–6, 0=domingo, ou SUN-SAT)
│ │ │ └──── mês (1–12, ou JAN-DEC)
│ │ └────── dia do mês (1–31)
│ └──────── hora (0–23)
└────────── minuto (0–59)

Cada campo aceita: número (5), lista (1,15,30), range (0-12), step (*/15 a cada 15), ou combinações (0-30/5).

Algumas implementações (Quartz, AWS EventBridge, Kubernetes recentes) adicionam segundos como sexto campo opcional ou ano como sétimo.

Aliases comuns

  • @yearly ou @annually = 0 0 1 1 * (à meia-noite de 1º janeiro)
  • @monthly = 0 0 1 * *
  • @weekly = 0 0 * * 0
  • @daily ou @midnight = 0 0 * * *
  • @hourly = 0 * * * *
  • @reboot = a cada boot (não tem next execution previsível)

O gotcha do dia do mês + dia da semana

Quando ambos os campos estão especificados (não *), a maioria dos parsers (Vixie cron, padrão Linux) usa OR: execute se for o dia do mês OU o dia da semana. Quartz usa AND. Esta ferramenta segue Vixie (mais comum).

Exemplo: 0 0 15 * 1 no Linux = todo dia 15 OU toda segunda. Em Quartz = apenas dia 15 que cai numa segunda.

DST e fuso horário

Cron roda no fuso horário do servidor. Em zonas com DST, a hora 02:30 pode não existir (spring forward) ou existir duas vezes (fall back). Comportamento varia por implementação:

  • Vixie cron: pula a hora que não existe; executa duas vezes na hora repetida (geralmente indesejado)
  • systemd timers: trata melhor com OnCalendar= e timezone explícito
  • Kubernetes CronJob: usa UTC por padrão (spec.timeZone desde 1.27)

Recomendação geral: configure jobs em UTC para evitar surpresas.

Casos de uso

  • Backup diário às 3 AM: 0 3 * * *
  • A cada 15 min em horário comercial seg-sex: */15 9-18 * * 1-5
  • Primeira segunda do mês: complicado — não é direto em cron padrão; em Quartz: 0 0 9 ? * MON#1
  • Última sexta do mês: também não-trivial; geralmente requer wrapper de aplicação

Próximas execuções

Esta ferramenta calcula as próximas N execuções (default 5), útil para validar visualmente que sua expressão faz o que você quer antes de deployar no k8s ou crontab.

Bibliotecas

cron-parser (cálculo de próximas execuções) + cronstrue (descrição em linguagem natural). Ambas rodam no navegador.

FAQ

Cron suporta segundos?

Não no padrão Unix (5 campos). Variantes como Quartz (Java) e Spring Cron usam 6 ou 7 campos com segundos e ano. Indique no controle qual flavor está usando se aceitarmos múltiplos.

Como rodar em um fuso específico?

Cron rodando no servidor segue o TZ do servidor (/etc/timezone). Para Kubernetes CronJob, use spec.timeZone: "America/Sao_Paulo" (k8s 1.27+). Para systemd timers, OnCalendar= com hora local + [Timer] PersistentTime=true.

*/0 ou */100 é válido?

Não. Step deve ser maior que 0 e menor que o range do campo. */0 é erro de sintaxe. */100 para minutos é inválido (max 59).

Como agendar para a última sexta do mês?

Cron padrão não suporta. Soluções: rodar diariamente e verificar dentro do job se "hoje é a última sexta do mês". Ou usar Quartz expressions 0 0 18 ? * 6L (L = last).

Por que job não rodou no horário do DST?

Spring forward (avança hora): 02:30 não existe; cron pula. Fall back: 02:30 existe duas vezes; pode rodar duas vezes. Sempre prefira UTC para jobs críticos.

Cron é a melhor escolha?

Para tarefas simples agendadas, sim. Para fluxos complexos com retries, dependências, ou observabilidade, considere Airflow, Temporal, ou Cloud Scheduler. Cron é poderoso mas opaco quando falha.