Calculadora de fim da agenda
A calculadora de horário de término da agenda transforma uma lista de durações planejadas em um horário final claro.
Executar grátis
Informe o início da reunião no formato de 24 horas, adicione em minutos cada debate, apresentação, intervalo ou bloco de decisões e receba a duração total programada e o horário calculado. Se a agenda passar da meia-noite, o deslocamento de dias deixa essa virada explícita. A ferramenta ajuda organizadores, facilitadores, instrutores e produtores de eventos que precisam publicar uma programação realista sem refazer somas manualmente.
Monte o cálculo com a agenda que será realmente executada
Comece pelo horário previsto de abertura, escrito no formato HH:MM de 24 horas, e crie uma linha para cada parte cronometrada da sessão. Uma linha pode representar introdução, apresentação, conversa, exercício, intervalo, perguntas, votação ou resumo final. Atribua a cada linha uma duração em minutos inteiros. A calculadora soma todas as durações, inclusive marcadores de zero minuto, na ordem fornecida e aplica o total ao horário inicial. Os títulos são opcionais e facilitam a identificação do plano, mas não alteram a aritmética. Essa separação é útil quando a reunião muda: ajuste a duração do item afetado, sem recalcular cada horário posterior. O resultado apresenta o início normalizado, o término calculado, a duração total em minutos e a quantidade de itens incluídos. Como a conta usa diretamente as linhas da agenda, você pode comparar uma versão curta e uma completa da mesma sessão e manter as premissas visíveis para revisores, palestrantes e participantes.
Interprete corretamente horários que passam da meia-noite
O término exibido usa o mesmo relógio de 24 horas da entrada. Um deslocamento de dias separado elimina a ambiguidade quando uma agenda longa atravessa a meia-noite. Por exemplo, término às 01:15 com deslocamento 1 significa 01:15 do dia seguinte, e não um horário anterior no dia inicial. O valor 0 indica que a sessão acaba no mesmo dia civil. Programações mais longas podem gerar um valor superior a 1, o que atende exercícios de vários dias ou operações contínuas, embora reuniões comuns normalmente terminem no mesmo dia. A calculadora não associa data, fuso horário, regra de horário de verão nem localidade ao resultado. Ela faz apenas aritmética de relógio; assim, a resposta é determinística e mantém o significado no navegador, em um fluxo via API, numa planilha exportada ou num documento de planejamento. Se o evento atravessar uma mudança de horário de verão, defina primeiro a duração decorrida e a convenção de hora local adotadas pela organização e trate o resultado como planejamento, não como conversão de fuso.
Use o resultado para melhorar programações e automações
Um horário final calculado é mais útil antes da confirmação de convites e roteiros. Compare-o com a reserva da sala, a disponibilidade dos palestrantes, a jornada da equipe, o último transporte ou o horário prometido de liberação. Se a reunião acabar tarde demais, o total em minutos quantifica a diferença: reduza itens selecionados, retire um segmento ou transfira-o para outra sessão e calcule novamente. Em fluxos automatizados, envie o horário inicial e as linhas estruturadas sempre que uma agenda for criada ou revisada e armazene o término retornado junto ao plano original. A mesma solicitação pode apoiar calendários, instruções para facilitadores, horários de espaços, roteiros de webinars e verificações de aprovação. O cálculo é determinístico, não depende da rede e não presume transições ocultas. Portanto, inclua montagem, passagens, intervalos, folga e encerramento como itens explícitos sempre que consumirem minutos programados. Isso produz um término mais confiável e facilita a auditoria quando o tempo real diverge da previsão. Cada solicitação de API usa o preço-base publicado de US$ 0,002.
Casos de uso
Publique um convite realista
Inclua debates, intervalos e encerramento antes de informar no convite um horário final confiável.
Prepare o roteiro de um workshop
Calcule o fim de um treinamento após incluir exercícios, apresentações, perguntas e transições.
Confira a agenda com a reserva
Compare o término calculado com a disponibilidade da sala, do estúdio, do facilitador ou da equipe antes de aprovar.
Perguntas frequentes
Qual formato devo usar para o horário inicial?
Use um horário válido de 24 horas no formato HH:MM, como 09:30 ou 18:05.
A agenda pode terminar depois da meia-noite?
Sim. end_time mostra a hora resultante, e day_offset informa quantas meias-noites a agenda completa atravessa.
Os intervalos entram no total?
Eles entram quando você os adiciona como itens. Inclua montagem, transições e folga da mesma forma se ocuparem a programação.
As durações podem ter frações de minuto?
Não. Cada valor duration_minutes deve ser um número inteiro de 0 a 10080.
A calculadora processa datas ou fusos horários?
Não. Ela faz aritmética de relógio determinística e informa um deslocamento de dias; não aplica datas, fusos nem mudanças de horário de verão.
Quanto custa um cálculo pela API?
Cada solicitação de API usa o preço-base publicado de US$ 0,002. A versão no navegador pode executar localmente o mesmo cálculo determinístico.
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/agenda-end-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_time":"09:30","agenda_items":[{"title":"Welcome and context","duration_minutes":10},{"title":"Project review","duration_minutes":45},{"title":"Decisions and next steps","duration_minutes":20}]}'const res = await fetch("https://api.kit.forhosting.com/biz/agenda-end-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_time": "09:30",
"agenda_items": [
{
"title": "Welcome and context",
"duration_minutes": 10
},
{
"title": "Project review",
"duration_minutes": 45
},
{
"title": "Decisions and next steps",
"duration_minutes": 20
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/agenda-end-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_time": "09:30",
"agenda_items": [
{
"title": "Welcome and context",
"duration_minutes": 10
},
{
"title": "Project review",
"duration_minutes": 45
},
{
"title": "Decisions and next steps",
"duration_minutes": 20
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/agenda-end-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_time":"09:30","agenda_items":[{"title":"Welcome and context","duration_minutes":10},{"title":"Project review","duration_minutes":45},{"title":"Decisions and next steps","duration_minutes":20}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_time":"09:30","agenda_items":[{"title":"Welcome and context","duration_minutes":10},{"title":"Project review","duration_minutes":45},{"title":"Decisions and next steps","duration_minutes":20}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/agenda-end-time", 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:30",
"agenda_items": [
{
"title": "Welcome and context",
"duration_minutes": 10
},
{
"title": "Project review",
"duration_minutes": 45
},
{
"title": "Decisions and next steps",
"duration_minutes": 20
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.agenda_end_time",
"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. |