*Calculation based on average equine gestation of 340 days.
Understanding Equine Gestation
Planning for a new foal is an exciting time for any horse breeder or owner. The Mare Foaling Due Date Calculator helps you estimate when your mare is likely to give birth based on the date of her last breeding or ovulation.
The average gestation period for a mare is approximately 340 days (about 11 months). However, nature rarely adheres strictly to averages. A normal, healthy pregnancy can range significantly, typically falling between 320 and 365 days.
Key Factors Influencing Foaling Dates
While the calculator provides a mathematical estimate, several biological factors can shift the actual delivery date:
Time of Year: Mares bred earlier in the year (winter/early spring) often carry their foals slightly longer than those bred in the summer, due to the effects of daylight length.
Foal Gender: Studies suggest that colts (male foals) may be carried slightly longer than fillies (female foals), sometimes by 2-3 days.
Age of Mare: Older mares may have slightly longer gestation periods compared to maiden mares.
Nutrition and Environment: The mare's body condition score and nutritional intake can impact fetal development rates.
The "Safe Zone" for Foaling
It is critical to understand the viability window for a foal:
Pre-term (Before 320 days): Foals born before day 320 are considered premature. Their lungs may not be fully developed, and they often require intensive veterinary care to survive.
Term (320-365 days): This is the standard window for a healthy delivery.
Post-term (After 365 days): While some mares carry past a year, extremely long gestations should be monitored by a veterinarian to ensure the placenta is still functioning correctly and the foal is not becoming too large for a safe delivery.
Signs of Imminent Foaling
As the calculator's estimated date approaches (starting around day 320), begin monitoring your mare for physical signs of labor:
Udder Development: The udder will fill and become tight (distended) 2-4 weeks prior to foaling.
Waxing: Small beads of colostrum (wax) may appear on the teat ends 6-48 hours before birth.
Relaxation of Pelvic Ligaments: The muscles around the tailhead and vulva soften and relax, making the tailhead appear more prominent.
Milk Calcium Change: Using testing kits, a spike in calcium carbonate in the mare's milk is a strong indicator that foaling will occur within 24 hours.
Always keep your veterinarian's contact information handy as the due date approaches, and ensure your foaling kit is stocked and ready.
function calculateFoalingDate() {
var dateInput = document.getElementById('breedingDate').value;
var resultContainer = document.getElementById('foalResultContainer');
var displayAvg = document.getElementById('displayAverageDate');
var displayMin = document.getElementById('displayMinDate');
var displayMax = document.getElementById('displayMaxDate');
// Validation
if (!dateInput) {
alert("Please select a valid breeding date.");
resultContainer.style.display = "none";
return;
}
// Parse Date input safely to avoid timezone shifts
var parts = dateInput.split('-');
// Note: Month is 0-indexed in JS Date object (0 = Jan, 1 = Feb, etc.)
var year = parseInt(parts[0], 10);
var month = parseInt(parts[1], 10) – 1;
var day = parseInt(parts[2], 10);
var breedingDate = new Date(year, month, day);
// Calculate Dates
// Average: +340 days
var avgDate = new Date(breedingDate);
avgDate.setDate(avgDate.getDate() + 340);
// Minimum (Safe): +320 days
var minDate = new Date(breedingDate);
minDate.setDate(minDate.getDate() + 320);
// Maximum (Normal range): +365 days
var maxDate = new Date(breedingDate);
maxDate.setDate(maxDate.getDate() + 365);
// Formatter function
function formatDate(d) {
var options = { weekday: 'short', year: 'numeric', month: 'long', day: 'numeric' };
return d.toLocaleDateString("en-US", options);
}
// Update UI
displayAvg.innerHTML = formatDate(avgDate);
displayMin.innerHTML = formatDate(minDate);
displayMax.innerHTML = formatDate(maxDate);
// Show results
resultContainer.style.display = "block";
}