Planificador de turnos rotativos
Un ciclo de 4 días de trabajo y 4 de descanso del 1 al 16 de enero de 2026 da 8 días de trabajo, del 1 al 4 y del 9 al 12 de enero, y 8 de descanso. Cada fecha queda marcada. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha de inicio
- 2026-01-01
- Fecha de fin
- 2026-01-16
- Días de trabajo
- 4
- Días libres
- 4
- Desfase del ciclo
- 0
- Nombre del trabajador
- Alex Rivera
- Duración del ciclo
- 8
- Patrón
- 4-on/4-off
- Días totales
- 16
- Días de turno
- 8
Un planificador de turnos rotativos convierte un patrón de ciclo sencillo—por ejemplo cuatro jornadas consecutivas de trabajo seguidas de cuatro de descanso—en un cuadrante día a día para un trabajador en cualquier ventana de calendario inclusiva. Los responsables de operaciones, los jefes de planta y los equipos de nómina necesitan una y otra vez las mismas respuestas: qué fechas están de servicio, cuáles de descanso, cuántos días laborables caen en el mes y en qué fase del ciclo se encuentra la alta si la contratación empieza a mitad de rotación. Esta capacidad acepta fechas de inicio y fin en ISO, longitud positiva del bloque de trabajo, longitud del bloque de descanso y un desfase de fase opcional; luego expande una secuencia modular determinista sin reglas de fin de semana, festivos ni optimización multi-equipo.
Qué significa un ciclo rotativo de servicio y descanso para un trabajador
Los patrones de turno rotativo como cuatro de servicio y cuatro de descanso, dos y dos, o siete y siete son habituales en operaciones continuas donde la cobertura debe repartirse de forma uniforme a lo largo de los días del calendario sin fijar siempre los mismos días de la semana. El modelo de aquí es deliberadamente simple y transparente: cada ciclo es un bloque de jornadas laborales consecutivas seguido de un bloque de jornadas de descanso consecutivas; el par se repite desde el inicio de la ventana solicitada.
El 2 sí/2 no usa dos y dos. Un patrón 5 sí/2 no usa cinco y dos y produce una ratio cercana a cinco séptimos, útil cuando se desea más densidad de trabajo que una rotación a media jornada. Esta herramienta no asigna varios equipos con nombre, no omite festivos, no codifica etiquetas de turno de noche frente a día más allá del estado binario on/off, y no reequilibra horas frente a máximos legales de trabajo—esas capas corresponden a su sistema de RR.
HH. Lo que sí ofrece es una expansión reproducible de un solo trabajador que puede exportar a hojas de cálculo, importaciones de reloj o vistas previas de nómina sin reimplementar la aritmética modular en cada cliente.
Preguntas frecuentes
¿Qué longitud puede tener el rango de fechas?
Horizontes de planificación más largos deben dividirse en varias llamadas.
¿El planificador omite fines de semana o festivos?
No. Cada día del calendario gregoriano del rango inclusivo se asigna on u off solo según el ciclo puro. Las excepciones de festivos y fines de semana corresponden a su capa de RR. HH.
¿Qué pasa si la persona empieza a mitad de una rotación?
Indique un desfase del ciclo. Cero significa que la primera fecha es el primer día de trabajo de un bloque; un número mayor desplaza la secuencia para que el cuadrante coincida con el punto en que ya está la persona.
¿Puedo planificar ciclos distintos de 4 y 4?
Sí. Elija cuántos días seguidos de trabajo y de descanso forman el ciclo, de 1 a 90 de trabajo y de 0 a 90 de descanso. Ciclos de dos y dos, cinco y dos o siete y siete funcionan igual.
¿Cuántos días de trabajo muestra el cuadrante?
Los cuenta por usted. Del 1 al 16 de enero de 2026, con 4 días de trabajo y 4 de descanso, salen 8 días de trabajo y 8 de descanso, una proporción de 0,5, y cada fecha aparece marcada.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"start_date": "2026-01-01",
"end_date": "2026-01-16",
"on_days": 4,
"off_days": 4
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.rotating_shift",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Rangos inválidos, días de calendario imposibles y campos de ciclo fuera de rango fallan con invalid_input y nunca se facturan.
Qué significa un ciclo rotativo de servicio y descanso para un trabajador
El día cero del ciclo es el primer día de un bloque de servicio cuando cycle_offset vale cero. Para cualquier índice de día i contado desde start_date (base cero), day_in_cycle es el resto de i más cycle_offset dividido por cycle_length, donde cycle_length es on_days más off_days. Si ese resto es estrictamente menor que on_days el día está de servicio (on); en caso contrario está de descanso (off). El clásico 4 sí/4 no usa por tanto on_days cuatro y off_days cuatro, un ciclo de ocho días y una ratio de trabajo a largo plazo de un medio. Poner off_days a cero fuerza todos los días a servicio dentro de la ventana, a veces útil como cuadrante base de disponibilidad total.
Contrato de entrada, forma de la respuesta y reglas de validación
El campo formula reexpresa la regla modular en texto plano para auditorías. Envíe por POST un cuerpo JSON con cuatro campos obligatorios y dos opcionales. start_date y end_date deben ser cadenas de calendario gregoriano reales en forma estricta YYYY-MM-DD; el rango es inclusivo en ambos extremos y end_date no debe preceder a start_date. El tramo inclusivo puede ser como máximo de trescientos sesenta y seis días para que el tamaño de la respuesta quede acotado en el navegador y en los clientes de la API. on_days es un entero positivo de uno a noventa; off_days es un entero de cero a noventa. cycle_offset vale por defecto cero y, si se envía, debe estar entre cero y cycle_length menos uno, de modo que una fase de incorporación a mitad de ciclo no apunte más allá del final del ciclo. worker_name es una etiqueta opcional de como máximo ciento veinte caracteres que se devuelve en el éxito cuando está presente. Se aceptan alias por comodidad: from o begin para start_date, to o until para end_date, work_days para on_days, rest_days para off_days, offset o phase para cycle_offset, y name o employee para worker_name. En el éxito el cuerpo devuelve las fechas y parámetros de ciclo normalizados, pattern como cadena breve del tipo four-on slash four-off, total_days, days_on, days_off, work_ratio redondeada half-up a seis decimales, un array roster de objetos con date, day_in_cycle y status on u off, más los arrays paralelos on_dates y off_dates para filtrar con rapidez. Fechas imposibles como el treinta y uno de abril, un tramo negativo, un tramo por encima del máximo, un on_days cero o no entero, o un cycle_offset igual o mayor que cycle_length fallan con invalid_input nombrando el campo; esos fallos no consumen saldo prepago. El precio de las llamadas correctas es un fijo $0.002 con unidad item.
Dónde aporta valor la expansión del cuadrante rotativo
Los supervisores de planta que planifican un mes 4 sí/4 no necesitan una lista rápida de qué fechas del calendario trabaja un técnico antes de publicar el tablón. Los flujos de alta en RR. Las landings de contenido y SEO que compiten por planificador de turnos rotativos o cuadrante 4 sí/4 no se benefician de una calculadora gratuita en vivo cuyas salidas coinciden byte a byte con la automatización de pago en la lib compartida. Prefiera esta capacidad cuando la pregunta sea la pura expansión de ciclo para una persona; la equidad multi-equipo, las reglas sindicales, las mezclas de habilidades y los calendarios de ausencias exigen un producto de gestión de plantilla más completo. La validación fallida es gratuita, así que los clientes exploratorios pueden probar desfaces inválidos y fechas erróneas con seguridad. HH. pueden pasar la fecha de contratación como start_date con un cycle_offset distinto de cero para que el nuevo incorporado se una a la rotación existente a mitad de ciclo en lugar de reiniciar en el día cero. Los preprocesadores de nómina cuentan days_on dentro de un periodo de pago para contrastar las horas ordinarias esperadas antes de aplicar reglas de horas extra. Los simuladores de plantilla comparan work_ratio entre patrones candidatos—2 sí/2 no frente a 4 sí/4 no frente a 5 sí/2 no—sin escribir scripts a medida cada vez. Los equipos de integración incrustan la API en herramientas internas para que los planificadores no reescriban tablas modulares a mano. Mantenga las peticiones dentro del tope de trescientos sesenta y seis días; para planificación plurianual, llame al endpoint una vez por ventana anual y una los resultados en el cliente.
Casos de integración
Tablones mensuales 4 sí/4 no
Expanda un ciclo clásico 4-on/4-off a lo largo de un mes de calendario y publique la lista on_dates de un técnico sin montar la hoja de cálculo a mano.
Alineación de altas a mitad de ciclo
Configure cycle_offset para que el primer día del nuevo incorporado se una a la fase de rotación existente en lugar de reiniciar el patrón en el día cero.
Precomprobaciones de conteo de días de nómina
Cuente days_on dentro de una ventana de pago para un trabajador rotativo y contraste los días ordinarios esperados antes de aplicar horas extra o pluses.
Preguntas técnicas
¿Cómo genero un cuadrante 4 sí/4 no?
Envíe start_date y end_date en YYYY-MM-DD, on_days 4 y off_days 4. El cycle_offset opcional sitúa el primer día a mitad de ciclo. La API devuelve un cuadrante día a día con status on u off.
¿Qué significa cycle_offset?
Es la fase del ciclo en start_date, de 0 a cycle_length-1. Cero indica que start_date es el primer día de un bloque de servicio. Use un desfase distinto de cero cuando la ventana empiece a mitad de rotación.
¿Cuánto cuesta el planificador de turnos rotativos?
La herramienta del navegador es gratuita. Las peticiones API usan saldo KIT prepago a $0.002 por llamada correcta; la entrada inválida no se factura.