Calculadora de fin de timebox con margen
Un timebox solo funciona cuando su final no admite dudas. Esta calculadora suma una cantidad fija de minutos a una hora inicial de 24 horas y devuelve el fin exacto, incluso si pasa al día siguiente.
Ejecutar — gratis
También puede reservar un margen protegido después del bloque para que la actividad posterior no comience de inmediato. El resultado separa el trabajo de la transición y sirve para reuniones, sesiones de concentración, talleres, entrevistas y calendarios operativos.
Fije un límite final visible para todos
Introduzca el inicio en el formato estricto HH:MM de 24 horas e indique la duración fija como un número entero de minutos. La calculadora realiza aritmética de reloj en lugar de estimar desde la hora actual, por lo que siempre obtiene la misma respuesta con los mismos valores. El fin estricto es el instante en que termina la actividad acotada; el margen opcional no forma parte de ella. Esta diferencia resulta importante. Una conversación de cincuenta minutos iniciada a las 09:35 termina a las 10:25, tanto si usted protege diez minutos adicionales para tomar notas, cambiar de sala o descansar como si no lo hace. Mantener ambas cantidades separadas evita que un bloque nominal de cincuenta minutos se convierta discretamente en un compromiso de sesenta. La respuesta repite el inicio y la duración normalizados, muestra la hora final e indica el desplazamiento de día. Cero significa el mismo día natural, uno el día siguiente y los valores mayores permiten bloques largos sin exigir fecha ni zona horaria.
Reserve una transición sin alterar el timebox
Use buffer_minutes cuando el siguiente bloque programado no deba comenzar justo al alcanzar el límite. La calculadora añade ese margen después de la duración y devuelve next_block_time como el primer inicio protegido de lo que venga después. Por ejemplo, un taller puede acabar a las 16:40 y la siguiente cita comenzar, como pronto, a las 16:55; así quedan quince minutos para preguntas, limpieza, desplazamiento o preparación. El fin original sigue siendo las 16:40, lo que ayuda a que la persona responsable respete la duración prometida. Un margen de cero hace que la hora del bloque siguiente coincida con el límite. Los márgenes deben ser minutos enteros entre cero y 1,440, de modo que usted puede proteger desde ninguna transición hasta un día completo. El resultado también incluye next_block_day_offset, porque una sesión tardía y su margen pueden cruzar la medianoche aunque el propio timebox no lo haga. Esta indicación evita horarios ambiguos como 00:10, que de otro modo no muestran que la hora corresponde a mañana.
Interprete el cambio de día y la validación
Las horas del reloj se repiten cada veinticuatro horas, pero el tiempo transcurrido no. Por eso, cada hora calculada incluye su correspondiente desplazamiento de día. Imagine que un bloque empieza a las 23:30 y dura noventa minutos. Su límite es 01:00 con un desplazamiento de uno, no la 01:00 anterior del mismo día. Si después hay un margen de treinta minutos, el siguiente bloque podrá empezar a las 01:30 con el mismo desplazamiento. Las duraciones largas pueden generar valores superiores a uno, hasta el máximo admitido de 10,080 minutos o siete días. Las entradas son deliberadamente estrictas para que las integraciones API sean previsibles: start_time debe contener dos dígitos para la hora, dos puntos y dos dígitos para los minutos; las horas van de 00 a 23 y los minutos de 00 a 59. Duración y margen deben ser números enteros finitos dentro de sus límites. Los valores incorrectos producen un error de entrada, sin redondeos, conjeturas ni interpretaciones regionales. Ninguna fecha, horario de verano, reloj actual, llamada de red o zona horaria oculta interviene en el cálculo.
Qué puede hacer con ella
Prepare una agenda de reunión
Convierta cada punto en un límite visible y conserve una transición antes de la siguiente intervención o sesión.
Planifique un tramo de concentración
Calcule cuándo debe terminar el trabajo profundo y reserve un breve margen para guardar, anotar y recuperarse.
Programe entrevistas o talleres
Separe el tiempo prometido a cada participante de los cambios de sala, evaluaciones, limpieza o preparación.
Preguntas frecuentes
¿Qué significa el fin estricto?
Es la hora inicial más la duración fija del timebox. La actividad debe finalizar a esa hora.
¿El margen está incluido en la duración?
No. Empieza después del límite y retrasa el momento más temprano en que debería comenzar el bloque siguiente.
¿Qué sucede si el resultado cruza la medianoche?
El reloj pasa al día siguiente y aumenta el campo de desplazamiento correspondiente para mostrar el cambio con claridad.
¿Puedo introducir segundos o minutos decimales?
No. La calculadora acepta inicios HH:MM y valores enteros de minutos para la duración y el margen.
¿La calculadora usa mi zona horaria?
No. Solo aplica aritmética determinista, sin fecha, hora actual, horario de verano ni zona horaria.
¿Cuánto cuesta una solicitud API?
Cada solicitud API cuesta $0.002. El mismo cálculo determinista también puede ejecutarse en el navegador.
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/timebox-end \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_time":"09:35","duration_minutes":50}'const res = await fetch("https://api.kit.forhosting.com/biz/timebox-end", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_time": "09:35",
"duration_minutes": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/timebox-end",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_time": "09:35",
"duration_minutes": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/timebox-end", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_time":"09:35","duration_minutes":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_time":"09:35","duration_minutes":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/timebox-end", 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_time": "09:35",
"duration_minutes": 50
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.timebox_end",
"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. |