Gerador e Explicador de Cron
Monte expressões cron campo a campo, ou cole uma existente para receber a explicação em português e os próximos cinco horários de execução.
O que é uma expressão cron?
Uma expressão cron é um agendamento de cinco campos usado por agendadores Unix, sistemas de CI, CronJob do Kubernetes, AWS EventBridge, GitHub Actions e a maioria dos executores modernos de tarefa. Cada campo controla uma unidade de tempo — minuto, hora, dia do mês, mês e dia da semana — e aceita quatro abreviações: * (qualquer), uma lista separada por vírgula (0,15,30,45), um intervalo (1-5) e um passo (*/10). Combine-as e você descreve quase qualquer agenda recorrente sem precisar escrever um calendário à mão.
Como usar este gerador
Escolha um preset para um ponto de partida instantâneo, ou monte a expressão campo por campo. Cada campo tem quatro modos: Todos emite *; Lista específica recebe valores separados por vírgula; Intervalo recebe um par início–fim; Passo recebe um intervalo (*/N) com offset opcional. A expressão e a descrição em português atualizam ao vivo. Para o caminho inverso, cole uma string cron na caixa de parsing — a ferramenta decodifica para forma legível e mostra os próximos cinco horários no seu fuso local.
Referência dos campos
Minuto: 0–59. Hora: 0–23. Dia do mês: 1–31. Mês: 1–12 (janeiro = 1). Dia da semana: 0–6 com domingo = 0 no cron Unix clássico — 7 também é aceito como domingo na maioria dos parsers modernos. Quando dia do mês e dia da semana estão ambos definidos com valores diferentes de *, o cron clássico dispara em QUALQUER condição (um OR lógico), o que surpreende muita gente. Escolha um ou outro para comportamento previsível.
Perguntas frequentes
Funciona com Quartz / Spring cron?
0 para virar Quartz, mas tokens especiais como L (último) e W (dia útil) são exclusivos do Quartz e não aparecem aqui.Como o explicador calcula as próximas execuções?
E quanto a fusos horários?
crond usa o fuso do sistema, AWS EventBridge usa UTC por padrão, GitHub Actions usa UTC, Kubernetes usa o fuso do cluster. Sempre confirme o fuso do seu runner antes de fazer deploy.Como expresso "último dia do mês"?
59 23 28-31 * *, que dispara todo dia do 28 em diante às 23:59. O próprio job deve checar se date -d 'tomorrow' +%-d = 1 (ou o equivalente na sua linguagem) e abortar se não for fim de mês. Quartz cron tem L para isso — mas Quartz não roda em cron Linux puro.Posso rodar a cada 90 minutos?
*/90 não funciona. A solução mais próxima é duas expressões: 0 0,3,6,9,12,15,18,21 * * * e 30 1,4,7,10,13,16,19,22 * * *, que juntas disparam a cada 90 minutos. Mais simples ainda: agende a cada 30 minutos e dê exit 0 no script quando não for o slot certo.Por que meu job dispara duas vezes na mudança de horário de verão?
cron.timezone = 'UTC' ou TZ=UTC no crontab) e converta para hora local dentro do job — UTC não tem horário de verão.
EN
PT
ES