Ovulation Calculator

An estimated ovulation date by the standard calendar-method convention — LMP + (cycle length − 14) days, i.e. a luteal phase assumed to be 14 days — with the conventional fertile window, the next expected period, and projections for the following cycles. This is calendar arithmetic and nothing else: it observes nothing about your body, and it must not be used as contraception. Related: the guide on understanding the fertile window and the due date calculator.

Estimate ovulation and the fertile window

Not for contraception: the calendar method is an estimate only — cycles and luteal phases vary between people and between cycles, so this tool is NOT reliable for preventing pregnancy. Talk to a healthcare provider about effective contraception.

Example: LMP July 1, 2026 with a 28-day cycle → estimated ovulation July 15, 2026, fertile window July 10, 2026 – July 16, 2026, next period July 29, 2026.

Enter a date to see the estimate.

The calendar method, stated as the convention it is

The whole tool is one line of arithmetic: estimated ovulation = LMP + (cycle length − 14) days. The subtraction is a luteal phase — the stretch from ovulation to the start of the next period — assumed to be exactly 14 days for every entry. From an LMP of July 1, 2026 with the default 28-day cycle the estimate lands on July 15, 2026, with a fertile window of July 10, 2026 – July 16, 2026 and the next period expected July 29, 2026 — all computed at build time by the same tested, time-zone-independent engine that runs the calculator, so the copy and the code cannot drift apart.

Nothing else goes in, and it is worth being blunt about that before reading any date the tool prints. There is no third input, no stored history, and no measurement of any kind: the calculation receives a date and a number of days, and returns dates derived from them by addition and subtraction. Every date on the results panel therefore inherits whatever the cycle-length number was, exactly and without softening.

The companion guide — understanding the fertile window and cycle estimates — is the longer read: the same arithmetic taken one date at a time, with the limits given the room they deserve.

Why the model counts back from the next expected period

Notice that the formula subtracts. The model does not place ovulation a fixed distance after the period that has already happened; it places it one assumed luteal phase before the period it expects next, and then expresses that in terms of the LMP because the LMP is the date a person can actually supply. Written as a single line, "next expected period minus 14 days" collapses to LMP + (cycle length − 14) days, which is why a subtraction appears in a formula about a date in the future.

The choice of anchor is what makes the cycle-length field mean anything. Inside this model the gap between estimated ovulation and the next expected period is always exactly 14 days, whatever number is entered; the gap between the LMP and estimated ovulation is cycle length − 14, and moves with every entry. Counting forward a fixed number of days from the LMP instead would return the same ovulation date for a 21-day cycle and a 35-day one, which would leave the cycle-length field with nothing to do. Anchoring to the next expected period is what lets that input move the answer. That is a property of how the model is built — it holds one interval fixed and lets the cycle-length field carry all the variation — not a finding about how any real cycle distributes its length.

One coincidence causes most of the confusion about this subject. With a 28-day cycle, the cycle length minus 14 equals 14, so estimated ovulation lands 14 days after the LMP — the same figure that appears in the formula, arrived at for an entirely different reason. The familiar "day 14" is not a rule about cycles; it is what this formula returns for one particular cycle length, and it stops being true the moment a different length is entered.

The caveat belongs in the same breath as the mechanism: the fixed 14 days is a convention the engine implements, not a measurement of anyone's cycle, and real luteal phases vary between people and between cycles. The anchor is stable inside the arithmetic. That stability is a property of the model, not of the reader.

The window is two fixed offsets, not a second calculation

The fertile window is not a separate estimate layered on top of the first one. The tool takes the estimated ovulation date and marks 5 days before it through 1 day after it — two constants in the engine, applied identically to every result, so the window is always 7 calendar days wide counting the estimated ovulation day itself. Neither offset is derived from anything entered, and neither is an observation. The calculator has no input capable of observing ovulation, so this page will not describe the offsets as though it did.

The consequence is that the window is exactly as good as the estimate at its centre, and nothing about the way it renders communicates that. It does not widen when the cycle length was a guess, or narrow when it is well established; it carries no confidence information of any kind, and the days inside it are not ranked against each other. Re-running the tool with a different cycle length moves the whole window — and that movement is the input changing, not an observation being updated.

Typical cycles, accepted cycles, and where the estimate thins out

The cycle-length field labels 21–35 days as typical and separately accepts any whole number from 15 to 60. The narrower range describes where the fixed-luteal-phase convention is normally framed to apply; the wider one exists so that unusual-but-real cycle lengths are not rejected outright, because refusing to compute is its own kind of wrong answer. Outside the typical range the arithmetic still runs and still returns a confident-looking date, but the single assumption underneath it is carrying more weight than it was built for. The strain shows at the edges of what the engine accepts: at 15 days the subtraction leaves 1 day between the last period and estimated ovulation, and at 60 days it leaves 46 days. Beyond those limits the engine stops rather than print arithmetic that no longer describes anything.

How much the cycle-length entry decides is easier to show than to argue about. Hold the LMP at July 1, 2026 and change nothing else. At 21 days — the bottom of the range the tool labels typical — estimated ovulation lands on July 8, 2026 and the window runs July 3, 2026 – July 9, 2026. At 35 days, the top of the same range, ovulation moves to July 22, 2026 and the window becomes July 17, 2026 – July 23, 2026. Those two windows do not overlap: from an identical first day of an identical period, the ends of the typical range put estimated ovulation 14 days apart — precisely the difference between the two cycle lengths, because the offset from the LMP is the only thing a cycle length changes.

The same sensitivity is there at one-day resolution. Entering 29 days instead of 28 moves estimated ovulation from July 15, 2026 to July 16, 2026 and the next expected period from July 29, 2026 to July 30, 2026, with the whole window sliding a day later at unchanged width. Anyone entering an average of several months is therefore not refining a mostly-settled answer; the number entered is what determines where the window sits, and the calculator cannot represent the spread around it.

3 cycles forward, and why every projection is provisional

The calculator projects 3 cycles beyond the current one. Each begins where the previous cycle's next expected period falls and repeats the identical calculation at the identical cycle length. For the 28-day example above:

  • Cycle starting July 29, 2026 — estimated ovulation August 12, 2026, fertile window August 7, 2026 – August 13, 2026, next period August 26, 2026.
  • Cycle starting August 26, 2026 — estimated ovulation September 9, 2026, fertile window September 4, 2026 – September 10, 2026, next period September 23, 2026.
  • Cycle starting September 23, 2026 — estimated ovulation October 7, 2026, fertile window October 2, 2026 – October 8, 2026, next period October 21, 2026.

Every row assumes the entered cycle length holds exactly, 3 times in succession, and the error compounds rather than averages out: a length one day off moves the first projected cycle's start by a day, the second by two, and so on, with each row's ovulation and period dates drifting further still. The final projected period, October 21, 2026, is the least reliable date the tool prints — useful for sketching a calendar, not for fixing one. A projection is the entered number repeated forward, not a forecast, which is why extending the same arithmetic past 3 cycles would produce more dates rather than more information.

What calendar arithmetic cannot see

This is worth stating plainly, because a results panel full of specific dates invites the opposite impression. The calculation observes nothing about the individual body and has no input through which it could. It does not detect ovulation, confirm that ovulation happened, or measure anything at all. If the cycle length entered does not match the cycle that actually runs, every date shifts by the difference and the tool has no way to notice — the output will look exactly as confident as it did before.

Three consequences follow, and none of them are hedges. This must not be used as contraception: a date the arithmetic leaves outside the window is not a safe day, because the arithmetic never knew where the window was in the first place. It is not a fertility treatment and not a diagnosis: nothing in the output describes fertility, and a surprising result is a result about the two numbers entered, not a finding about a person. And where these dates bear on a real decision, the conversation belongs with a qualified healthcare provider, who can observe what a calendar cannot.

One related tool is worth separating from this one. The due date calculator also starts from the LMP, but it answers a different question by a different convention. The two share an input, not a method, so the ovulation date here should not be read as a conception date implied by a due date; the guide on how pregnancy due dates are calculated walks through that arithmetic separately.

Frequently asked questions

How does the calendar method estimate ovulation?

By convention: estimated ovulation = first day of the last menstrual period + (cycle length − 14) days. It assumes the luteal phase — the stretch from ovulation to the next period — is exactly 14 days, which is a population-level convention, not a fact about any individual cycle. Every other date the tool prints hangs off that one estimate: the fertile window is a pair of offsets around it, the next expected period is the last menstrual period plus the cycle length, and the projected cycles repeat both steps.

Where do the fertile-window dates come from?

From two constants in the engine, and nothing else. The window runs 5 days before the estimated ovulation date through 1 day after it, applied identically to every result. They are offsets around a calculated date rather than anything the tool observed — it has no input through which it could observe ovulation — so the window is exactly as good as the estimate at its centre.

How wide is the window, and does it ever change width?

It is always 7 calendar days wide, counting the estimated ovulation day itself, because both offsets are fixed. It does not widen when the cycle length entered was a guess or narrow when it is well established, and days inside it are not ranked against each other. The window carries no confidence information of any kind: one drawn around a shaky estimate renders exactly as crisply as one drawn around a settled one.

If I change the cycle length by one day, what moves?

Everything after the first day of the period, by that one day. From July 1, 2026, a 28-day cycle puts estimated ovulation on July 15, 2026 and the next expected period on July 29, 2026; entering 29 moves them to July 16, 2026 and July 30, 2026, with the whole fertile window sliding along unchanged in width. The gap between estimated ovulation and the next expected period stays 14 days by construction, whatever is entered.

Can I use this calculator for contraception?

No. A date the arithmetic leaves outside the window is not a safe day, because the arithmetic never knew where the window was — it only knew the two numbers typed into it. Cycles vary between people and from cycle to cycle in the same person, real luteal phases are not uniformly 14 days, and calendar arithmetic cannot see any of that. Discuss effective contraception with a qualified healthcare provider.

My cycles are irregular — is the estimate still useful?

Much less so. The arithmetic needs a single cycle length, so any single entry throws the variation away, and the estimate inherits that whole spread without showing it. Cycles outside the typical 21–35 days, or that differ noticeably month to month, put more weight on the fixed-luteal-phase assumption than it was built to carry. Any concern about your cycle belongs with a qualified healthcare provider rather than a calculator.

Does the calculator detect or confirm ovulation?

No. It receives a date and a number of days and returns dates derived from them by addition and subtraction. It does not detect ovulation, confirm that ovulation happened, or measure anything at all, and it is neither a fertility treatment nor a diagnosis. If the cycle length entered does not match the cycle that actually runs, every date shifts and the tool has no way to notice.

Not medical advice: this is calendar arithmetic from a stated convention. It cannot detect ovulation, confirm fertility, or replace observation of an actual cycle. It cannot account for your individual health context and must not be used to diagnose or treat any condition, to prevent pregnancy, or as a fertility treatment — consult a qualified healthcare professional. Conception, contraception, and any concern about your cycle belong with that provider, and nothing here replaces prenatal or fertility care. Data is processed locally in your browser and never transmitted. See the methodology page.