ForHosting KIT · Health & fitness

Quarantine activity calculator

A last exposure on 1 March 2026 with a 14-day quarantine gives a release date of 15 March 2026. Enter the exposure date and the number of days your rules require, and get one date for forms and letters. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Exposure date
2026-03-01
Duration days
14
You get
Release date
2026-03-15

A quarantine activity calculator turns a last-exposure calendar date and a required isolation length in whole days into a single release date you can put on a form, a letter, or a roster. This tool accepts a strict YYYY-MM-DD exposure date and a positive integer duration, then adds that many civil calendar days with Gregorian month lengths and leap years, without calling the wall clock, without a timezone, and without a random seed. Use it for occupational-health intake after a workplace exposure, school exclusion letters, travel isolation planning, and any automation that needs a transparent, reproducible quarantine end date rather than a spreadsheet formula that shifts near daylight-saving boundaries.

What the quarantine activity calculator computes

Public-health letters after a last known exposure almost always name a whole number of isolation days rather than a clock time. A workplace return-to-work note says fourteen days from the last contact; a school exclusion says five days from the exposure date; a travel protocol says ten days after a listed contact.

This quarantine activity calculator implements that civil-day model: it treats the exposure date as day zero and adds the required duration in whole Gregorian days to produce the release date, the first calendar day on which the isolation interval has fully elapsed. Month lengths and leap days follow textbook Gregorian rules, so a fourteen-day count that starts on the twentieth of February in a leap year lands on the fifth of March, while the same count in a common year lands on the sixth of March.

Duration must be a positive integer because isolation protocols are written in whole days; fractional values, zero, and negatives are rejected instead of being silently rounded.

School exclusion letters

Compute the first day a student may return after an exposure, using a five-day or ten-day duration without a timezone-sensitive spreadsheet.

Batch isolation archives

Recompute release dates for research or roster pipelines from stored exposure columns and integer durations, pinning goldens so leap years stay honest.

How does this quarantine activity calculator pick the release date?

A 14-day count from 2026-03-01 yields 2026-03-15. Month lengths and leap days are applied; the wall clock is not.

Does a leap day change a fourteen-day isolation count?

Yes, because the count is civil calendar days. 2024-02-20 plus 14 days is 2024-03-05 (2024 is a leap year); 2023-02-20 plus 14 days is 2023-03-06. Impossible dates such as 2023-02-29 are rejected.

What is the release date for a 14-day quarantine after an exposure on 1 March 2026?

It is 15 March 2026. The exposure date counts as day zero, and the 14 whole calendar days are added to it to reach the first day on which the isolation period has fully passed.

Can I enter half a day or zero days?

No. Isolation rules are written in whole days, so the duration must be a whole number of at least one. Fractions, zero and negative values are refused rather than quietly rounded.

Does the calculator tell me how long I must isolate?

No. You enter the length your rules state, such as 5 days for a school letter, 10 for a travel protocol or 14 for a workplace note. It is a date calculation, not a diagnosis or a substitute for the rules where you live.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/health/quarantine-activity

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/health/quarantine-activity \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"exposure_date":"2026-03-01","duration_days":14}'
{
  "exposure_date": "2026-03-01",
  "duration_days": 14
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.quarantine_activity",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_days3650
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Duration values that are missing, zero, negative, or not whole numbers fail with invalid_input instead of inventing an end date.

What the quarantine activity calculator computes

The JSON body echoes the normalized exposure_date, the integer duration_days, the computed release_date, and a formula string you can print beside the answer so a clinic form, a payroll flag, and a parent letter all show the same ISO date. This is a calendar offset, not a diagnosis, not a symptom checker, and not a substitute for the isolation rules currently in force in your jurisdiction.

Input contract, validation, response shape, and deterministic errors

Month must fall between one and twelve; day must exist in that month, so two thousand twenty-three February twenty-ninth is rejected because that year is not a leap year, and April thirty-first is rejected because April has thirty days. Duration above three thousand six hundred fifty days is also rejected so a mistyped year cannot walk the calendar for millennia. Do not send wall-clock timestamps or time zones; this page is the civil-day quarantine offset only. POST a JSON object with two required fields. exposure_date is a string matching four digits, hyphen, two-digit month, hyphen, two-digit day, naming the last-exposure calendar day. Aliases date, exposure, last_exposure, and exposure_day map to the same parse path so forms can keep their preferred names. duration_days is a positive integer—one or more whole days, never zero, never negative, never a fraction—and aliases days, quarantine_days, duration, and isolation_days are accepted. Missing fields, empty strings, non-objects, and strings that fail the date pattern all throw invalid_input naming the field. On success the body always includes exposure_date, duration_days, release_date, and formula; optional null fields are never padded in. Example: exposure_date two thousand twenty-six March first with duration_days fourteen yields release_date two thousand twenty-six March fifteenth. Failed validation is not billed, so hostile or incomplete payloads can be probed without spending prepaid balance.

Where a quarantine release-date API earns its keep

Occupational-health desks and school nurses need a first-pass release date the moment someone types a last-contact day and a protocol length. Embedding this calculator gives a transparent civil-day baseline with a published formula that product copy can quote without reverse-engineering a date library. Treat the output as the conventional calendar estimate it is: explainable, deterministic, and independent of the machine clock.

Occupational-health return to work

Turn a last-contact date and a protocol length into a release_date for the return-to-work form, with the same ISO string the payroll flag will later check.

Which input fields are required?

exposure_date (YYYY-MM-DD) and duration_days (a positive integer). Aliases date, exposure, last_exposure, exposure_day and days, quarantine_days, duration, isolation_days are accepted. Missing or empty fields return invalid_input and are not billed.

What happens if duration_days is zero, negative, or 10.5?

The task fails with invalid_input. Isolation protocols are written in whole days, so duration_days must be a positive integer (1, 2, 3, …). Fractional values are not rounded.

What does a successful quarantine-activity API call cost?

The browser widget is free. API calls use prepaid KIT balance at $0.002 per successful task; invalid input is not charged.

Read the full KIT documentation →