Menstrual Cycle Calculator
Map an estimated cycle timeline, including the next period and likely ovulation window.
Your details
Enter only the information needed for this estimate.
Complete the fields and select “Map my cycle” to see your estimate.
Your estimated cycle timeline
Use this calendar as a planning guide, then compare it with what your body actually does.
Cycle phases do not always follow identical calendar lengths.
Make it useful beyond today
Support your cycle beyond one estimate
Build small daily routines for steadier energy, sleep, and stress support.
What the timeline shows
Cycle day 1 is the first day of menstrual bleeding. The next cycle begins when the next period starts. The calculator projects that date from the average cycle length you enter.
It also offers a calendar-based fertile window. That window is an estimate because ovulation does not always happen on the same cycle day.
Build a more useful average
Record the first day of each period for several cycles. If your cycle lengths vary, the range can be more informative than a single average.
- A cycle is counted from one period start date to the next.
- Spotting before full flow is usually not counted as cycle day 1.
- Recalculate when your recent cycles differ from your older pattern.
Limits of this estimate
- A calendar cannot confirm hormone levels, ovulation, fertility, or the reason for a cycle change.
- Hormonal contraception, postpartum changes, breastfeeding, perimenopause, illness, and stress can make projections less useful.
- The date range is not a contraceptive method.
Common questions
How should I use this estimate?
Use it as a planning starting point, then compare it with your own experience and any guidance from a qualified health professional.
Is this medical advice?
This calculator provides educational calendar estimates, not medical advice or diagnosis. Contact a qualified health professional about persistent cycle changes or symptoms that concern you.
What happens to what I enter?
The calculator uses the values in your current browser session to produce the result. It does not save them in browser storage.