Gerador e explicador de expressão cron

Cole uma expressão cron e veja o que ela faz em português, campo por campo, e as próximas execuções no fuso que você escolher. Funciona com crontab, Kubernetes, GitHub Actions e Quartz. Também dá para montar a expressão a partir do horário que você quer.

Formato
Exemplos comuns

Digite ou cole uma expressão

Ou escolha um dos exemplos. A explicação e as próximas execuções aparecem aqui.

Montar uma expressão

Escolha a frequência e o horário. A expressão sai no formato selecionado acima.

Frequência
Dias
0 9 * * 1-5Às 09:00, de segunda-feira a sexta-feira

O que é uma expressão cron

É uma linha de campos separados por espaço que diz quando um job roda. No crontab do Linux, no CronJob do Kubernetes e no schedule do GitHub Actions são 5 campos. O Quartz, agendador usado em Java, acrescenta os segundos no começo e um ano opcional no fim.

Os 5 campos do cron padrão

A ordem é sempre minuto, hora, dia do mês, mês e dia da semana. 30 9 * * 1 quer dizer minuto 30, hora 9, qualquer dia do mês, qualquer mês, segunda-feira.

CampoValores
Minuto0 a 59
Hora0 a 23
Dia do mês1 a 31
Mês1 a 12 ou JAN a DEC
Dia da semana0 a 6 ou SUN a SAT (0 é domingo)

Asterisco, vírgula, hífen e barra

  • * aceita qualquer valor do campo.
  • Vírgula separa valores: 0,30 no minuto roda nos minutos 0 e 30.
  • Hífen marca um intervalo: 1-5 no dia da semana vai de segunda a sexta.
  • Barra define o passo: */15 no minuto roda a cada 15 minutos, e 9-17/2 na hora roda às 9, 11, 13, 15 e 17.

O que muda no Quartz

O primeiro campo são os segundos, e o domingo vale 1 (sábado é 7). Um dos campos de dia precisa ser ?, que quer dizer sem valor. O Quartz também aceita L para o último dia do mês, LW para o último dia útil, 15W para o dia útil mais próximo do dia 15, 6L para a última sexta-feira e 6#3 para a terceira sexta-feira do mês.

Fuso horário e horário de verão

A expressão não diz o fuso. O crontab usa o fuso do servidor, o GitHub Actions usa UTC e o Kubernetes usa o fuso do controller, a não ser que spec.timeZone esteja definido. Para rodar às 9h de Brasília num agendador em UTC, a hora é 12. Nos fusos com horário de verão, um horário pode não existir no dia em que o relógio adianta, ou acontecer duas vezes quando ele atrasa. A lista de execuções marca esses casos.

Perguntas frequentes sobre expressão cron

As dúvidas de quem agenda job no crontab, no Kubernetes, no GitHub Actions e no Quartz.