Calcular fim do teste grátis e data do lembrete
É fácil começar um teste grátis e também é fácil perder de vista seu vencimento. Esta calculadora transforma a data inicial, a duração em dias e a antecedência desejada em duas datas objetivas: quando o teste termina e quando o lembrete deve ser enviado.
Executar grátis
Como usa datas civis, e não horários locais, o resultado permanece estável para planejamento pessoal, compras, acompanhamento de assinaturas e fluxos de sucesso do cliente.
Informe os três dados que definem o cronograma
Comece pela data de início do teste no formato inequívoco YYYY-MM-DD. Em seguida, informe a duração como um número inteiro positivo de dias e escolha quantos dias antes do fim deseja receber o lembrete. Antecedência zero coloca o aviso na própria data final; antecedência três o coloca três dias corridos antes. O término é calculado somando a duração à data inicial. Assim, um teste iniciado em 1º de julho com duração de catorze dias termina em 15 de julho. Essa convenção mede o intervalo entre as datas sem depender de horário, fuso ou mudança sazonal. Caso a antecedência seja maior que a duração, o lembrete ficará antes do começo; isso é válido quando uma análise precisa ocorrer previamente. Use uma data gregoriana válida e apenas valores inteiros para manter o cronograma preciso e reproduzível.
Entenda como as viradas do calendário são tratadas
O cálculo percorre os meses reais do calendário gregoriano, sem presumir que todos tenham a mesma quantidade de dias. Ele trata corretamente a passagem de janeiro para fevereiro, a troca de ano, os meses de trinta dias e o dia 29 de fevereiro. Em geral, anos divisíveis por quatro são bissextos, com exceção dos anos de século que não sejam também divisíveis por quatrocentos. Isso importa para testes que atravessam fevereiro e para lembretes muito antecipados. A operação não consulta a data atual e não utiliza rede, aleatoriedade, fuso local nem o objeto Date do JavaScript. Portanto, a mesma entrada gera a mesma saída na API e no navegador. As datas retornam em YYYY-MM-DD, formato ordenável e apropriado para agendas, planilhas, bancos de dados e automações, sem inventar meia-noite, deslocamento UTC ou horário final que não tenha sido informado.
Use o resultado em um fluxo de lembretes confiável
Registre a data final junto à assinatura e use a data do lembrete como gatilho da providência necessária. Essa providência pode ser avaliar o produto, exportar dados, pedir aprovação orçamentária, cancelar uma renovação indesejada ou enviar perguntas ao fornecedor. Em automações, armazene ambas as datas devolvidas pela API em vez de recalculá-las separadamente em vários sistemas; uma fonte única evita divergências de um dia entre CRM, controle financeiro e calendário. Cada solicitação pela API custa US$ 0,002, e a versão no navegador atende cálculos individuais. Considere o resultado uma data de planejamento, não uma garantia sobre o horário de cobrança. O fornecedor pode estabelecer uma hora específica, considerar o último dia inclusivo ou aplicar condições da conta. Se dinheiro ou continuidade de acesso depender do corte exato, confira os termos e a mensagem de confirmação e programe o aviso com folga para análise e aprovação.
Casos de uso
Evitar uma renovação indesejada
Marque uma revisão alguns dias antes do fim para haver tempo de cancelar ou aprovar a compra.
Coordenar a avaliação de um software
Dê à equipe uma data final objetiva e agende a decisão antes que o acesso expire.
Acompanhar marcos de testes de clientes
Crie datas consistentes de término e contato no CRM sem depender do fuso do servidor.
Perguntas frequentes
Como a data de término é calculada?
A duração é somada como dias corridos à data inicial. Um teste iniciado em 1º de julho por catorze dias termina em 15 de julho.
A antecedência pode ser zero?
Sim. O valor zero agenda o lembrete para a mesma data civil em que o teste termina.
E se a antecedência superar a duração?
O lembrete ficará antes do início. Isso é permitido porque uma análise prévia pode ocorrer antes da liberação do acesso.
A calculadora considera anos bissextos?
Sim. Ela aplica as regras gregorianas, inclusive as exceções para séculos e para períodos de quatrocentos anos.
Quanto custa um cálculo pela API?
Cada solicitação pela API custa US$ 0,002. Você também pode usar a calculadora diretamente 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/final3/subscription-free-trial-end-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_date":"2026-07-25","trial_length_days":14,"reminder_lead_days":3}'const res = await fetch("https://api.kit.forhosting.com/final3/subscription-free-trial-end-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_date": "2026-07-25",
"trial_length_days": 14,
"reminder_lead_days": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/final3/subscription-free-trial-end-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_date": "2026-07-25",
"trial_length_days": 14,
"reminder_lead_days": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/final3/subscription-free-trial-end-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_date":"2026-07-25","trial_length_days":14,"reminder_lead_days":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_date":"2026-07-25","trial_length_days":14,"reminder_lead_days":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/final3/subscription-free-trial-end-date", 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_date": "2026-07-25",
"trial_length_days": 14,
"reminder_lead_days": 3
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "final3.subscription_free_trial_end_date",
"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. |