Dog pregnancy calculator
A bitch mated on 1 March 2026 is due around 3 May 2026, 63 days later, with a whelping window from 28 April to 8 May. Enter the mating date to plan night watches, crates and foster care ahead. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Mating date
- 2026-03-01
- Gestation days
- 63
- Range days
- 5
- Due date
- 2026-05-03
- Due start
- 2026-04-28
This dog pregnancy calculator estimates a whelping due date from the calendar day a bitch was mated and the average canine gestation length. You enter the mating date as a strict YYYY-MM-DD string and, optionally, the assumed gestation in whole days (sixty-three by default). The tool adds that length to the mating day with proleptic Gregorian arithmetic—no host clock, no network, no randomness—and returns a point estimate plus the conventional five-day window on either side, the familiar fifty-eight to sixty-eight day range kennels use when the average is sixty-three.
How canine gestation becomes a whelping date range
Veterinarians and breeders usually quote canine pregnancy in two related ways, and mixing them is the most common source of a wrong due date. From the luteinizing-hormone surge or the day of ovulation, the mean interval to whelping is about sixty-three days, with most bitches delivering in a tight band around that mark. From the calendar day of a natural mating or an artificial insemination, the interval is wider, because sperm can wait in the reproductive tract and because a breeding may miss the true ovulatory day by several days.
Planning tools therefore treat sixty-three days from the mating date as the point estimate and publish a window of fifty-eight through sixty-eight days—five days on either side of the mean. The path is educational and deterministic.
What you can do with it
Kennel whelping calendar
Record the mating day, pin the sixty-three-day point estimate and the fifty-eight to sixty-eight day window on the kennel board, and schedule night watches before the first pup is due.
Rescue and foster planning
Estimate when an unplanned litter may arrive so crates, milk replacer, and transport are reserved before the due-date window opens.
FAQ
What if the mating date is not a real calendar day?
Impossible days such as 2026-02-29, a missing field, or a non-YYYY-MM-DD string are not billed.
Can I change the average gestation length?
Leave it unset to use the typical canine mean of 63 days from mating.
Why is the result a range instead of a single day?
Mating may miss the true ovulatory day, so most bitches whelp in a band around the mean. The calculator reports the point estimate and the conventional ±5 day window.
What does the dog pregnancy calculator cost?
The browser tool is free and runs offline.
Should I count dog pregnancy from mating or from ovulation?
This calculator counts from the mating or insemination day. From ovulation the average is also about 63 days, with a tighter band; from mating the band is wider because a breeding can miss the true ovulation day by several days.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/bio/dog-pregnancy \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mating_date":"2026-03-01"}'const res = await fetch("https://api.kit.forhosting.com/bio/dog-pregnancy", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mating_date": "2026-03-01"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/dog-pregnancy",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mating_date": "2026-03-01"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/dog-pregnancy", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mating_date":"2026-03-01"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mating_date":"2026-03-01"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/dog-pregnancy", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"mating_date": "2026-03-01"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.dog_pregnancy",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
min_gestation_days | 50 |
max_gestation_days | 80 |
range_days | 5 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Impossible calendar dates such as twenty twenty-six February twenty-nine fail with invalid_input and are not billed.
How canine gestation becomes a whelping date range
This calculator encodes that convention with integer civil-day arithmetic: due_date is mating_date plus gestation_days; due_start is mating_date plus gestation_days minus five; due_end is mating_date plus gestation_days plus five. When you leave gestation_days at the default of sixty-three, the window is exactly fifty-eight to sixty-eight days. Small and toy breeds sometimes deliver a day or two earlier than giant breeds, which is why the optional gestation_days field accepts any whole number from fifty through eighty so a kennel can pin a breed-typical mean without inventing a second landing. It does not replace progesterone timing, ultrasound confirmation, or a veterinarian’s advice for an individual bitch, and it never reads the server clock, so two machines in different time zones produce the same JSON for the same mating day.
Input contract, calendar validation, and response shape
A leap-year mating such as twenty twenty-four February first still lands on a real April day because February twenty-ninth is counted. Failed validation is never charged. POST a JSON body with mating_date, a real Gregorian calendar day in YYYY-MM-DD form. Aliases mating, breed_date, breeding_date, and date are accepted so spreadsheets and kennel forms can map columns without renaming. The day must exist: twenty twenty-six February twenty-nine, month thirteen, and day thirty-two of April are all invalid_input, as are missing values, empty strings, and any shape that is not four digits, a hyphen, two digits, a hyphen, and two digits. Optional gestation_days defaults to sixty-three and, when supplied, must be an integer from fifty through eighty inclusive; a fractional sixty-three point five is rejected so the due date is always a whole calendar day. On success the body echoes the normalized mating_date and the gestation_days actually used, reports range_days as five, and returns due_date (the point estimate), due_start and due_end (the inclusive window), due_range as a single display string of the form start to end, and a short formula reminder. Example: mating_date two thousand twenty-six March first with the default sixty-three days yields due_date two thousand twenty-six May third and the window twenty twenty-six April twenty-eighth through twenty twenty-six May eighth. Successful API calls use prepaid balance at the published $0.002 base price with unit item.
Where a dog pregnancy calculator earns its keep
Breeding kennels use a dog pregnancy calculator to turn a recorded mating day into a whelping-box deadline, a week of night watches, and a calendar hold for the veterinarian. Rescue and foster coordinators estimate when an unplanned litter may arrive so crates, milk replacer, and transport are ready before the first pup. Prefer a dedicated days-between tool when you only need calendar distance without the canine gestation model; prefer this capability when the output must be a whelping point estimate and the conventional fifty-eight to sixty-eight day window. The free browser tool runs entirely offline in your session; the API charges only successful solves at $0.002, keeps no durable copy of the mating date after the response, and returns the same ISO fields every time so local goldens match production.
Integration use cases
Pet-app unit tests
Generate known-good leap-year and non-leap fixtures plus a deliberate invalid February twenty-ninth so mobile and API paths never disagree on a whelping date.
Technical questions
How does the dog pregnancy calculator estimate the whelping date?
It adds gestation_days (default 63) to the mating date with Gregorian civil-day arithmetic and returns a five-day window on either side (58–68 days when the default is used).