Calculadora de fim do timebox com intervalo
Um timebox só funciona quando seu término é inequívoco. Esta calculadora soma uma quantidade fixa de minutos a um horário inicial de 24 horas e informa o limite exato, inclusive quando há mudança de dia.
Executar grátis
Você também pode reservar um intervalo protegido depois do timebox para que o bloco seguinte não comece imediatamente. O resultado separa tempo de trabalho e transição, sendo útil em reuniões, períodos de foco, oficinas, entrevistas e escalas operacionais.
Defina um limite que todos possam consultar
Informe o início no formato estrito HH:MM de 24 horas e forneça a duração fixa em minutos inteiros. A calculadora executa aritmética de relógio em vez de estimar a partir do horário atual; assim, os mesmos valores sempre produzem a mesma resposta. O término exato é o instante em que a atividade com tempo limitado acaba, e o intervalo opcional não faz parte dela. Essa distinção é relevante no cotidiano. Uma conversa de cinquenta minutos iniciada às 09:35 termina às 10:25, independentemente de você proteger mais dez minutos para anotações, troca de sala ou uma pausa breve. Manter essas quantidades separadas impede que um bloco nominal de cinquenta minutos se transforme silenciosamente em um compromisso de sessenta. A resposta repete o início e a duração normalizados, mostra o horário final e fornece um deslocamento de dia. Zero significa o mesmo dia, um indica o dia seguinte, e valores maiores representam timeboxes intencionalmente longos sem exigir datas ou fuso horário.
Reserve uma transição sem mudar o timebox
Use buffer_minutes quando o próximo bloco agendado não puder começar exatamente no limite. A calculadora acrescenta esse intervalo depois da duração e retorna next_block_time como o primeiro horário protegido para a atividade seguinte. Por exemplo, uma oficina pode terminar às 16:40 enquanto o próximo compromisso começa somente às 16:55, reservando quinze minutos para perguntas, organização, deslocamento ou preparação. O limite original continua sendo 16:40, o que ajuda a pessoa responsável a cumprir a duração prometida. Um intervalo igual a zero faz o horário seguinte coincidir com o término. Os valores devem ser minutos inteiros entre zero e 1,440, permitindo proteger desde nenhuma transição até um dia completo. O resultado também inclui next_block_day_offset, pois uma sessão tardia e seu intervalo podem atravessar a meia-noite mesmo que o timebox não atravesse. Essa indicação explícita evita horários ambíguos como 00:10, que sozinhos não revelariam que o horário exibido pertence ao dia seguinte.
Entenda a virada do dia e a validação
Os horários do relógio se repetem a cada vinte e quatro horas, mas o tempo decorrido não. Por isso, cada valor calculado possui um campo correspondente de deslocamento de dia. Suponha que um bloco comece às 23:30 e dure noventa minutos. Seu término será 01:00 com deslocamento um, e não 01:00 mais cedo no mesmo dia. Se houver depois um intervalo de trinta minutos, o próximo bloco poderá começar às 01:30 com o mesmo deslocamento. Durações maiores podem gerar números superiores a um, até o máximo aceito de 10,080 minutos, ou sete dias. As entradas são rigorosas para manter integrações API previsíveis: start_time precisa ter dois dígitos para a hora, dois-pontos e dois dígitos para os minutos; as horas vão de 00 a 23 e os minutos de 00 a 59. Duração e intervalo devem ser números inteiros finitos dentro dos limites declarados. Valores inválidos retornam erro de entrada, sem arredondamento, suposição ou interpretação regional. Data, horário de verão, relógio atual, rede e fuso oculto não interferem no cálculo.
Casos de uso
Monte uma pauta de reunião
Transforme cada item em um limite visível e preserve uma transição antes da próxima pessoa ou sessão.
Planeje um período de foco
Descubra quando o trabalho concentrado deve acabar e reserve tempo para salvar, anotar e recuperar o ritmo.
Agende entrevistas ou oficinas
Separe o tempo prometido aos participantes de trocas de sala, avaliações, organização ou preparação.
Perguntas frequentes
O que significa o término exato?
É o horário inicial somado à duração fixa do timebox. A atividade deve acabar nesse horário.
O intervalo faz parte da duração?
Não. Ele começa após o limite e adia o primeiro horário recomendado para iniciar o próximo bloco.
O que ocorre quando o resultado passa da meia-noite?
O relógio avança para o dia seguinte e o campo de deslocamento aumenta, deixando a virada explícita.
Posso informar segundos ou minutos decimais?
Não. A calculadora aceita horários iniciais HH:MM e minutos inteiros para duração e intervalo.
A calculadora usa meu fuso horário?
Não. Ela faz somente aritmética determinística, sem data, hora atual, horário de verão ou fuso.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002. O mesmo cálculo determinístico também pode rodar no navegador.
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/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)Exemplo de requisição
{
"start_time": "09:35",
"duration_minutes": 50
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.timebox_end",
"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. |