Planejador de escala rotativa
Um ciclo 4x4 de 1 a 16 de janeiro de 2026 resulta em 8 dias de trabalho, de 1 a 4 e de 9 a 12 de janeiro, e 8 dias de folga. Cada data aparece marcada como trabalho ou folga na escala de uma pessoa. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Data de início
- 2026-01-01
- Data final
- 2026-01-16
- Dias de trabalho
- 4
- Dias de folga
- 4
- Deslocamento do ciclo
- 0
- Nome do trabalhador
- Alex Rivera
- Duração do ciclo
- 8
- Padrão
- 4-on/4-off
- Total de dias
- 16
- Dias de turno
- 8
Um planejador de escala de turnos rotativos transforma um padrão de ciclo simples—por exemplo quatro dias consecutivos de trabalho seguidos de quatro de folga—em uma escala dia a dia para um trabalhador em qualquer janela de calendário inclusiva. Líderes de operações, gestores de site e equipes de folha precisam repetidamente das mesmas respostas: quais datas estão de plantão, quais de folga, quantos dias úteis caem no mês e em que ponto do ciclo fica a admissão se a contratação começa no meio da rotação. Esta capacidade aceita datas de início e fim em ISO, comprimento positivo do bloco de trabalho, comprimento do bloco de folga e um deslocamento de fase opcional; em seguida expande uma sequência modular determinística sem regras de fim de semana, feriados ou otimização multi-equipe.
O que um ciclo rotativo de trabalho e folga significa para um trabalhador
Padrões de turno rotativo como quatro de trabalho e quatro de folga, dois e dois, ou sete e sete são comuns em operações contínuas em que a cobertura deve rolar de forma uniforme pelos dias do calendário sem fixar sempre os mesmos dias da semana. O modelo aqui é deliberadamente simples e transparente: cada ciclo é um bloco de dias úteis consecutivos seguido de um bloco de dias de folga consecutivos; o par se repete a partir do início da janela solicitada. O 2x2 usa dois e dois.
Um padrão 5x2 usa cinco e dois e produz razão próxima de cinco sétimos, útil quando se deseja mais densidade de trabalho do que uma rotação a meia carga. Esta ferramenta não atribui várias equipes nomeadas, não pula feriados, não codifica rótulos de turno noturno versus diurno além do status binário on/off e não reequilibra horas contra máximos da legislação trabalhista—essas camadas pertencem ao seu sistema de RH.
O que ela oferece é uma expansão reproduzível de um único trabalhador que você pode exportar para planilhas, importações de ponto ou prévias de folha sem reimplementar a aritmética modular em cada cliente.
Perguntas frequentes
Qual pode ser o comprimento do intervalo de datas?
Horizontes de planejamento maiores devem ser divididos em várias chamadas.
O planejador pula fins de semana ou feriados?
Não. Cada dia do calendário gregoriano no intervalo inclusivo recebe on ou off apenas a partir do ciclo puro. Exceções de feriados e fins de semana pertencem à sua camada de RH.
E se a pessoa começar no meio de uma rotação?
Informe um deslocamento do ciclo. Zero significa que a primeira data é o primeiro dia de trabalho de um bloco; um número maior desloca a sequência para que a escala coincida com o ponto em que a pessoa já está.
Posso planejar ciclos diferentes de 4x4?
Sim. Escolha quantos dias seguidos de trabalho e de folga formam o ciclo, de 1 a 90 de trabalho e de 0 a 90 de folga. Escalas como dois por dois, cinco por dois ou sete por sete funcionam do mesmo jeito.
Quantos dias de trabalho a escala mostra?
Ela faz a contagem para você. De 1 a 16 de janeiro de 2026, num ciclo 4x4, são 8 dias de trabalho e 8 de folga, uma proporção de 0,5, e cada data aparece marcada.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/biz/rotating-shift \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_date":"2026-01-01","end_date":"2026-01-16","on_days":4,"off_days":4}'const res = await fetch("https://api.kit.forhosting.com/biz/rotating-shift", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_date": "2026-01-01",
"end_date": "2026-01-16",
"on_days": 4,
"off_days": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/rotating-shift",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_date": "2026-01-01",
"end_date": "2026-01-16",
"on_days": 4,
"off_days": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/rotating-shift", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_date":"2026-01-01","end_date":"2026-01-16","on_days":4,"off_days":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_date":"2026-01-01","end_date":"2026-01-16","on_days":4,"off_days":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/rotating-shift", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"start_date": "2026-01-01",
"end_date": "2026-01-16",
"on_days": 4,
"off_days": 4
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.rotating_shift",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Intervalos inválidos, dias de calendário impossíveis e campos de ciclo fora da faixa falham com invalid_input e nunca são cobrados.
O que um ciclo rotativo de trabalho e folga significa para um trabalhador
O dia zero do ciclo é o primeiro dia de um bloco de trabalho quando cycle_offset vale zero. Para qualquer índice de dia i contado a partir de start_date (base zero), day_in_cycle é o resto de i mais cycle_offset dividido por cycle_length, onde cycle_length é on_days mais off_days. Se esse resto for estritamente menor que on_days o dia está on; caso contrário está off. O clássico 4x4 usa portanto on_days quatro e off_days quatro, um ciclo de oito dias e uma razão de trabalho de longo prazo de um meio. Definir off_days como zero força todos os dias on dentro da janela, às vezes útil como escala base de disponibilidade total.
Contrato de entrada, formato da resposta e regras de validação
O campo formula reafirma a regra modular em texto simples para trilhas de auditoria. Envie por POST um corpo JSON com quatro campos obrigatórios e dois opcionais. start_date e end_date devem ser strings de calendário gregoriano reais na forma estrita YYYY-MM-DD; o intervalo é inclusivo nos dois extremos e end_date não deve preceder start_date. O trecho inclusivo pode ter no máximo trezentos e sessenta e seis dias para que o tamanho da resposta fique limitado no navegador e nos clientes da API. on_days é um inteiro positivo de um a noventa; off_days é um inteiro de zero a noventa. cycle_offset tem padrão zero e, quando informado, deve ficar entre zero e cycle_length menos um, para que uma fase de admissão no meio do ciclo não aponte além do fim do ciclo. worker_name é um rótulo opcional de no máximo cento e vinte caracteres ecoado no sucesso quando presente. Aliases são aceitos por ergonomia: from ou begin para start_date, to ou until para end_date, work_days para on_days, rest_days para off_days, offset ou phase para cycle_offset, e name ou employee para worker_name. No sucesso o corpo devolve as datas e parâmetros de ciclo normalizados, pattern como string curta do tipo four-on slash four-off, total_days, days_on, days_off, work_ratio arredondada half-up a seis decimais, um array roster de objetos com date, day_in_cycle e status on ou off, além dos arrays paralelos on_dates e off_dates para filtragem rápida. Datas impossíveis como trinta e um de abril, trecho negativo, trecho acima do máximo, on_days zero ou não inteiro, ou cycle_offset igual ou maior que cycle_length falham com invalid_input nomeando o campo; essas falhas não consomem saldo pré-pago. O preço das chamadas bem-sucedidas é um valor fixo US$ 0,002 com unidade item.
Onde a expansão da escala rotativa justifica o uso
Supervisores de site que planejam um mês 4x4 precisam de uma lista rápida de quais datas do calendário um técnico trabalha antes de publicar o quadro de avisos. Landings de conteúdo e SEO que ranqueiam por planejador de escala rotativa ou roster 4x4 se beneficiam de uma calculadora gratuita ao vivo cujas saídas batem byte a byte com o caminho de automação pago na lib compartilhada. Prefira esta capacidade quando a pergunta for expansão pura de ciclo para uma pessoa; equidade multi-equipe, regras sindicais, misturas de competências e calendários de afastamento exigem um produto de gestão de força de trabalho mais completo. Validação com falha é gratuita, assim clientes exploratórios podem testar offsets inválidos e datas ruins com segurança. Fluxos de admissão de RH podem passar a data de contratação como start_date com cycle_offset diferente de zero para que o novo colaborador entre na rotação existente no meio do ciclo em vez de reiniciar no dia zero. Pré-processadores de folha contam days_on dentro de um período de pagamento para cruzar as horas ordinárias esperadas antes de aplicar regras de hora extra. Simuladores de quadro comparam work_ratio entre padrões candidatos—2x2 versus 4x4 versus 5x2—sem escrever scripts sob medida a cada vez. Equipes de integração embutem a API em ferramentas internas para que programadores de escala nunca reescrevam tabelas modulares à mão. Mantenha as solicitações dentro do teto de trezentos e sessenta e seis dias; para planejamento plurianual, chame o endpoint uma vez por janela anual e una os resultados no cliente.
Casos de integração
Quadros mensais 4x4 de aviso
Expanda um ciclo clássico 4-on/4-off ao longo de um mês de calendário e publique a lista on_dates de um técnico sem montar a planilha à mão.
Alinhamento de admissão no meio do ciclo
Defina cycle_offset para que o primeiro dia do novo colaborador entre na fase de rotação existente em vez de reiniciar o padrão no dia zero.
Pré-checagens de contagem de dias na folha
Conte days_on dentro de uma janela de pagamento para um trabalhador rotativo e compare os dias ordinários esperados antes das regras de hora extra ou adicional.
Perguntas técnicas
Como monto uma escala 4x4?
Envie start_date e end_date em YYYY-MM-DD, on_days 4 e off_days 4. O cycle_offset opcional coloca o primeiro dia no meio do ciclo. A API devolve uma escala dia a dia com status on ou off.
O que significa cycle_offset?
É a fase do ciclo em start_date, de 0 até cycle_length-1. Zero significa que start_date é o primeiro dia de um bloco de trabalho. Use um deslocamento diferente de zero quando a janela começar no meio da rotação.
Quanto custa o planejador de escala rotativa?
A ferramenta do navegador é gratuita. Pedidos à API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.