Presupuesto de tiempo del itinerario
Un día de 14 horas con 2 de traslados y 2 de descanso deja 10 horas para actividades, así que un museo, un mercado, un parque y un paseo antes de cenar que suman 7,5 horas caben con 2,5 de margen. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Horas disponibles
- 14
- Horas de traslado
- 2
- Horas de descanso
- 2
- Horas reservadas
- 4
- Tiempo restante para actividades
- 10
- Horas de actividades planificadas
- 7,5
- Horas de actividades recomendadas
- 7,5
Los días de viaje fallan cuando el mapa parece generoso y el reloj no lo es. Un museo, un mercado, un mirador y una reserva para cenar pueden ser razonables por separado y luego derrumbarse al sumar el tiempo a pie, los transbordos de metro y una comida de verdad. Esta calculadora de presupuesto de tiempo del itinerario toma un presupuesto diario de horas positivo, las horas de tránsito reservadas, las horas de descanso reservadas y una lista ordenada de actividades con nombre y horas previstas, y le indica si ese día todavía cabe. El tránsito y el descanso se tratan como costes fijos de primer orden; las horas que sobran forman el sobre de actividades. Si las paradas previstas desbordan ese sobre, el motor escala cada actividad por el mismo factor para que el plan recomendado siga sumando la ventana restante.
Primero lo fijo, después las visitas
Un día de viaje se tuerce cuando el mapa parece generoso y el reloj no. Un museo, un mercado, un mirador y una cena reservada pueden ser razonables por separado y no caber juntos en cuanto se suman los paseos, los cambios de metro y una comida de verdad. Por eso la calculadora reserva primero las horas de traslados y de descanso, que no son opcionales, y solo lo que sobra queda para las actividades. Con 14 horas disponibles, 2 de traslados y 2 de descanso, la ventana para visitas es de 10 horas. Si las paradas previstas suman menos, el resultado le muestra el margen libre; si suman más, le muestra el exceso.
Cuando el día no cabe
Si las actividades desbordan la ventana, la herramienta no acepta en silencio un plan imposible: reduce todas las paradas con el mismo factor para que el plan recomendado sume exactamente el tiempo restante, y conserva la proporción entre ellas. Resulta útil para un fin de semana en una ciudad, para el horario de un grupo en autocar o para un encuentro de empresa con talleres, comida y traslado al hotel. El error típico es apilar seis atracciones en un día que ya gastó tres horas en trenes. Mire el exceso antes de comprar entradas con hora: suele ser mejor quitar una parada que recortarlas todas.
Qué puede hacer con ella
Planificación de un día de escapada urbana
Reserve primero las horas de caminata y de comida, y compruebe si museo, mercado y mirador caben aún en la ventana de visitas que queda.
Borradores de horario para tours y grupos
Escale un día de autocar sobrecargado para que las horas impresas de cada parada queden dentro del mismo sobre de tránsito y descanso que el guía tiene de verdad.
Preguntas frecuentes
¿Cómo se reparte el presupuesto diario de tiempo del itinerario?
Primero se reservan tránsito y descanso. Las horas restantes son el sobre de actividades. Si las paradas caben, conservan sus horas y la holgura es el resto. Si desbordan, cada actividad se escala por remaining / suma prevista.
¿Un día que desborda falla, o devuelve un plan?
Tiene éxito con status overflow, fits en falso y horas recomendadas escaladas al sobre restante.
¿Qué significa un status tight?
Trátelo como un día lleno, con poco margen para salir tarde de un museo o perder un tranvía.
¿Qué cuento como traslado y qué como descanso?
Los traslados incluyen los paseos entre paradas, el metro, los taxis y el tiempo perdido en las colas de entrada. El descanso abarca comidas, un café sentado, la entrada al hotel y las pausas que de verdad necesita. Ambos se restan antes que cualquier actividad.
¿Al recortar un día sobrecargado se respetan mis prioridades?
Se respetan las proporciones: todas las actividades se reducen con el mismo factor. Una catedral de cuatro horas junto a un museo de dos sigue recibiendo el doble de tiempo, así que quite usted una parada si una le importa más.
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/travel/itinerary-time-budget \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"available_hours":14,"transit_hours":2,"rest_hours":2,"activities":[{"name":"Museum","hours":3},{"name":"Market","hours":1.5},{"name":"Park","hours":2},{"name":"Dinner walk","hours":1}]}'const res = await fetch("https://api.kit.forhosting.com/travel/itinerary-time-budget", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"available_hours": 14,
"transit_hours": 2,
"rest_hours": 2,
"activities": [
{
"name": "Museum",
"hours": 3
},
{
"name": "Market",
"hours": 1.5
},
{
"name": "Park",
"hours": 2
},
{
"name": "Dinner walk",
"hours": 1
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/itinerary-time-budget",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"available_hours": 14,
"transit_hours": 2,
"rest_hours": 2,
"activities": [
{
"name": "Museum",
"hours": 3
},
{
"name": "Market",
"hours": 1.5
},
{
"name": "Park",
"hours": 2
},
{
"name": "Dinner walk",
"hours": 1
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/itinerary-time-budget", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"available_hours":14,"transit_hours":2,"rest_hours":2,"activities":[{"name":"Museum","hours":3},{"name":"Market","hours":1.5},{"name":"Park","hours":2},{"name":"Dinner walk","hours":1}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"available_hours":14,"transit_hours":2,"rest_hours":2,"activities":[{"name":"Museum","hours":3},{"name":"Market","hours":1.5},{"name":"Park","hours":2},{"name":"Dinner walk","hours":1}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/itinerary-time-budget", 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
{
"available_hours": 14,
"transit_hours": 2,
"rest_hours": 2,
"activities": [
{
"name": "Museum",
"hours": 3
},
{
"name": "Market",
"hours": 1.5
},
{
"name": "Park",
"hours": 2
},
{
"name": "Dinner walk",
"hours": 1
}
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.itinerary_time_budget",
"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
La holgura, el desborde, la utilización y un indicador fits vuelven con las horas recomendadas por fila, de modo que un planificador humano y un cliente API compartan una sola aritmética. Presupuestos nulos o negativos, tránsito o descanso negativos, y un par reservado que ya supera el día fallan con invalid_input en lugar de inventar un horario.
Cómo el tránsito y el descanso reservados reducen el sobre de actividades
Un presupuesto de tiempo del itinerario trata la ventana de vigilia como un sobre rígido, no como una lista de deseos. El tránsito y el descanso se restan primero porque en un día realista no son opcionales. Cada actividad conserva un nombre y una cifra de horas previstas para que un bloque del Louvre, un mercado y un paseo fluvial sigan siendo distintos. Horas previstas iguales siguen iguales tras la escala; una catedral de cuatro horas junto a un museo de dos conserva la razón dos a uno. El polvo de coma flotante se absorbe en la última actividad prevista positiva para que las horas recomendadas sumen exactamente el pozo restante en un día de desborde. El campo available_hours es ese sobre: catorce horas desde el desayuno hasta el hotel, o diez horas entre una salida tardía y una reserva para cenar. Caminar entre museos, un salto de metro, un taxi al mirador y los minutos perdidos en taquilla viven en transit_hours. Las comidas, un café sentado, el check-in del hotel y la pausa que el viajero realmente necesita viven en rest_hours. Su suma es reserved_hours. Lo que queda es remaining_for_activities, el único pozo que las paradas previstas pueden gastar. Cuando la suma prevista cabe en el pozo restante, las horas recomendadas igualan las previstas y slack_hours es el remanente sin usar. Cuando la suma prevista es mayor, cada actividad se escala por remaining_for_activities dividido entre la suma prevista para que el día recomendado aún cierre. La utilización puede superar el cien por ciento cuando committed_hours según lo previsto rebasa el presupuesto; esa es la señal para recortar, no para fingir que el reloj se estira.
Contrato de entrada, forma de la respuesta y errores
El campo activities es un array no vacío de objetos, cada uno con un name no vacío y un hours finito no negativo, como máximo cincuenta filas en esta ruta parse gratuita. Conecte el formulario gratuito del navegador a la planificación humana y llame al mismo contrato desde un constructor de viajes cuando la automatización necesite cifras idénticas. Envíe por POST un cuerpo JSON con cuatro campos obligatorios. El campo available_hours es un número finito estrictamente mayor que cero y como máximo ciento sesenta y ocho, suficiente para un día largo o un sobre breve de varios días. Los campos transit_hours y rest_hours son finitos y no negativos, cada uno también limitado a ciento sesenta y ocho. Su suma no debe superar available_hours; un par reservado que ya se come el presupuesto entero y más falla con invalid_input porque no queda un sobre honesto de actividades que asignar. Campos ausentes, listas vacías, filas que no son objeto, nombres en blanco, números no finitos, horas negativas y un presupuesto disponible nulo o negativo fallan con invalid_input y no se facturan. En el éxito el cuerpo repite las tres entradas de horas, informa reserved_hours, remaining_for_activities, planned_activity_hours, recommended_activity_hours, committed_hours, slack_hours, overflow_hours, un indicador booleano fits, un status de fits, tight u overflow, utilization_percent, scale_factor y activity_count. Cada fila de actividad lleva index, name, planned_hours, recommended_hours, share_of_activities y percent_of_day. Method es reserve_then_scale. Formula reafirma que remaining es available menos transit menos rest, y que recommended_i es planned_i por el mínimo de uno y remaining entre la suma prevista. Un día tight es un día que cabe cuya holgura es como máximo el diez por ciento de available_hours. Las llamadas API correctas usan el precio base publicado $0.002 por ítem; los fallos de validación no consumen saldo prepago.
Dónde un presupuesto diario de tiempo del itinerario aporta valor
La vía de desborde devuelve una recomendación escalada en lugar de un sobrecupo silencioso, que es lo que un horario de cara al huésped necesita antes de imprimir un cuadro. Quienes diseñan una ruta mochilera detectan el error clásico de apilar seis atracciones en un día que ya gastó tres horas en trenes. Empareje este asignador con ayudantes de tiempo a pie o de distancia con varias paradas cuando ya conozca los minutos entre pines y solo necesite que el día sume. Quien viaja por ocio puede pegar un sábado borrador, leer de un vistazo la holgura o el desborde y soltar una parada antes de reservar entradas horarias a las que no llegará. Los operadores turísticos usan una calculadora de presupuesto de tiempo del itinerario para que una plantilla de escapada urbana sobreviva a una ventana de luz invernal más corta: conserve las mismas paradas previstas, suba transit_hours cuando el grupo camine más despacio y vuelva a ejecutar. Quienes organizan retiros corporativos reservan el almuerzo y el traslado al hotel como rest y transit, y comprueban si tres talleres caben aún en un día de diez horas. Como la implementación es parse de nivel A pura, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente.
Casos de integración
Automatización de constructores de viaje y guías
Llame al mismo contrato de reservar y luego escalar desde un widget de reserva para que el plan publicado y la API no discrepen en la holgura.
Preguntas técnicas
¿Qué ocurre si tránsito más descanso ya superan el día?
La tarea falla con invalid_input. El tránsito y el descanso reservados no pueden ser mayores que available_hours, porque no queda un sobre honesto de actividades que asignar.
¿Cuánto cuesta la calculadora de presupuesto de tiempo del itinerario?
La herramienta del navegador es gratuita. Las solicitudes API usan saldo KIT prepago a $0.002 por llamada exitosa; la entrada inválida no se factura.