Explicador de Expressões Cron

Traduza a expressão para português e veja quando ela vai realmente rodar

5 campos (Unix) ou 6 campos (Spring @Scheduled / Quartz, com segundos). Atalhos como@daily também funcionam.

Significado

A cada 15 minutos de cada hora, todos os dias.

Campos

CampoValorIntervaloCorresponde a
Minuto*/150–590, 15, 30, 45
Hora*0–23todos
Dia do mês*1–31todos
Mês*1–12 ou JAN–DECtodos
Dia da semana*0–7 ou SUN–SATtodos

Próximas 5 execuções

UTC

  1. Seg, 21/09/2026 20:45em 3 minutos e 2 segundos
  2. Seg, 21/09/2026 21:00em 18 minutos e 2 segundos
  3. Seg, 21/09/2026 21:15em 33 minutos e 2 segundos
  4. Seg, 21/09/2026 21:30em 48 minutos e 2 segundos
  5. Seg, 21/09/2026 21:45em 1 hora e 3 minutos

Horários no fuso do seu navegador. Um servidor em UTC vai disparar em outro horário — verifique o fuso da máquina que executa o agendamento.

Explicador de Cron — leia o agendamento antes de fazer o deploy

Uma expressão cron é densa por natureza: cinco ou seis campos separados por espaço decidem quando um backup roda, quando um relatório é enviado ou quando um job de reprocessamento entra em produção. Ler0 0 1 * 1 de cabeça e acertar o que ela faz é mais difícil do que parece — e o custo do erro só aparece depois, em produção. Esta ferramenta traduz a expressão para português e projeta as próximas execuções reais, tudo no seu navegador.

Como usar

  1. Cole ou digite a expressão no campo — a explicação aparece enquanto você digita.
  2. Confira a tabela de campos para ver exatamente quais valores cada posição está casando.
  3. Leia as próximas execuções com a contagem relativa ao lado. Se a primeira data não bate com o que você esperava, a expressão está errada.
  4. Use os exemplos como ponto de partida para os agendamentos mais comuns.

Os campos de uma expressão cron

PosiçãoCampoIntervalo
1 (só em 6 campos)Segundo0–59
2Minuto0–59
3Hora0–23
4Dia do mês1–31
5Mês1–12 ou JAN–DEC
6Dia da semana0–7 ou SUN–SAT (0 e 7 = domingo)

Sintaxe aceita em cada campo

Unix (5 campos) versus Spring e Quartz (6 campos)

Esta é a armadilha que mais gera incidente. O crontab do Unix trabalha com resolução de minuto e usa cinco campos. O @Scheduled do Spring e o Quartz acrescentam um campo de segundos na frente, totalizando seis. Copiar uma expressão de um blog sobre crontab direto para uma anotação@Scheduled desloca todos os campos em uma posição: o que era o minuto vira o segundo, e o job passa a rodar de hora em hora em vez de uma vez por dia. A ferramenta identifica qual dos dois formatos você digitou e avisa quando interpreta a expressão como seis campos.

A regra de OU entre dia do mês e dia da semana

Quando ambos os campos de dia são diferentes de *, o cron combina os dois comOU, não com E. A expressão 0 0 1 * 1 não significa "toda primeira segunda-feira do mês": ela dispara no dia 1 de cada mês e também em toda segunda-feira. Para restringir de verdade, deixe um dos dois campos como * e faça a checagem adicional no código do job.

Fuso horário: onde o agendamento realmente roda

O cron não tem fuso próprio — ele usa o do processo que o executa. Um container em UTC, um servidor emAmerica/Sao_Paulo e o seu notebook produzem três resultados diferentes para a mesma expressão. A simulação desta página usa o fuso do seu navegador, exibido acima da lista; compare com o fuso do ambiente de produção (no Spring, o atributo zone de @Scheduled) antes de considerar o agendamento correto.

Atalhos

Tudo roda no seu navegador

A expressão não é enviada para servidor nenhum. Toda a análise e a projeção de datas acontecem localmente, o que importa quando a expressão vem de um arquivo de configuração de produção.

Perguntas Frequentes

Dúvidas comuns sobre expressões cron, formatos e fusos horários

O que é uma expressão cron?

Uma expressão cron é uma string curta que descreve um agendamento recorrente. Cada campo representa uma unidade de tempo — minuto, hora, dia do mês, mês e dia da semana — e o agendador executa a tarefa sempre que o momento atual corresponde a todos os campos.

Qual a diferença entre cron de 5 e de 6 campos?

O cron clássico do Unix (crontab) usa 5 campos: minuto, hora, dia do mês, mês e dia da semana. O Spring (@Scheduled) e o Quartz usam 6 campos, adicionando segundos na frente. A mesma string pode significar coisas completamente diferentes nos dois formatos — "0 0 12 * * *" é meio-dia no Spring, mas nem sequer é válida em um crontab.

O que significa */15 em uma expressão cron?

A barra define um passo. "*/15" no campo de minutos significa "a cada 15 minutos a partir do zero", ou seja, nos minutos 0, 15, 30 e 45. O passo também funciona dentro de um intervalo: "10-30/5" corresponde aos minutos 10, 15, 20, 25 e 30.

Por que meu cron roda mais vezes do que eu esperava?

Provavelmente por causa da regra de OU entre dia do mês e dia da semana. Quando os dois campos são restritos ao mesmo tempo — por exemplo "0 0 1 * 1" — o cron dispara no dia 1 do mês OU em toda segunda-feira, não apenas quando as duas condições coincidem. Para restringir de verdade, deixe um dos dois como asterisco.

Em qual fuso horário o cron é executado?

No fuso do servidor ou do container que executa o agendador, não no do seu computador. É a causa mais comum de tarefas que rodam "na hora errada": um job configurado para 03:00 em uma máquina em UTC dispara às 00:00 no horário de Brasília. Esta ferramenta simula no fuso do seu navegador — compare com o fuso do ambiente de produção antes de confiar no resultado.

Esta ferramenta suporta os modificadores L, W e # do Quartz?

Não. Os modificadores do Quartz para "último dia do mês" (L), "dia útil mais próximo" (W) e "n-ésimo dia da semana" (#) não são suportados e a ferramenta avisa em vez de tentar adivinhar — uma explicação errada de um agendamento é pior do que nenhuma explicação.