Ovulation & Fertile Window Calculator
Estimate your ovulation date, fertile window and next expected period from the first day of your last period and your typical cycle length.
Count from the first day of one period to the first day of the next.
How it works
Ovulation is estimated to occur 14 days before your NEXT period starts - the luteal phase (after ovulation) is fairly consistent at about 14 days, even when the first half of the cycle varies. The fertile window covers the 5 days before ovulation plus ovulation day itself, since sperm can survive several days while the egg is viable for about 24 hours.
Ovulation date = LMP + (cycle length - 14) days | Fertile window = ovulation date - 5 days to ovulation dateExample. With an LMP of 1 August and a 28-day cycle, ovulation is estimated around 15 August, with a fertile window from 10-15 August.
Frequently asked questions
How accurate is this estimate?
It's a population-average estimate based on your cycle length, not a direct measurement. Actual ovulation timing varies cycle to cycle and person to person - ovulation predictor kits or tracking basal body temperature give a more precise, individual result.
Why 5 days before ovulation for the fertile window?
Sperm can survive in the reproductive tract for up to about 5 days, while the egg is only viable for roughly 24 hours after ovulation. So intercourse any time in the days leading up to and including ovulation can result in pregnancy.
Related calculators
Embed this calculator
Free to use on any site. Please keep the credit link.
<iframe
id="letmecalc-ovulation-calculator"
src="https://letmecalc.com/embed/health/ovulation-calculator"
title="Ovulation Calculator"
width="100%"
height="620"
style="border:0;max-width:100%"
loading="lazy"
></iframe>
<p><a href="https://letmecalc.com/health/ovulation-calculator" target="_blank" rel="noopener">Ovulation Calculator</a> by letmecalc</p>
<script>
(function () {
var f = document.getElementById("letmecalc-ovulation-calculator");
window.addEventListener("message", function (e) {
if (e.origin !== "https://letmecalc.com") return;
if (!f || e.source !== f.contentWindow) return;
var d = e.data;
if (!d || d.source !== "letmecalc-embed" || d.type !== "resize") return;
if (typeof d.height === "number" && d.height > 0) {
f.style.height = d.height + "px";
}
});
})();
</script>