{
  "slug": "period-predictor",
  "name": "gizza-ai/period-predictor",
  "version": "0.1.0",
  "title": "Period Predictor — Next Period, Ovulation & Fertile Window Dates — gizza.ai",
  "description": "Predict your next period start dates from your last period and cycle length, with ovulation estimates and fertile windows. Free, private, in-browser.",
  "tags": [
    "period predictor",
    "period calculator",
    "menstrual cycle calculator",
    "next period date",
    "ovulation calculator",
    "fertile window",
    "cycle length",
    "period tracker",
    "when is my next period"
  ],
  "category": "utilities",
  "urls": {
    "page": "https://gizza.ai/tools/period-predictor/",
    "markdown": "https://gizza.ai/tools/period-predictor/index.md",
    "descriptor": "https://gizza.ai/tools/period-predictor/tool.json",
    "deep_link_example": "https://gizza.ai/tools/period-predictor/?last_period=2026-07-01&cycle_length=28&period_length=5&luteal_phase=14&cycles=6"
  },
  "cli": "gizza tool period-predictor \"2026-07-01\"",
  "tool": {
    "description": "Predict a person's upcoming menstrual periods from the first day of their most recent period. cycle_length is the average days between period starts (default 28), period_length is how many days bleeding lasts (default 5), luteal_phase is the days before a period that ovulation happens (default 14), and cycles is how many future cycles to project (default 6). Returns each predicted cycle's period start date and weekday, bleeding-end date, estimated ovulation day (period start − luteal phase) and 6-day fertile window (five days before ovulation through ovulation day), plus the next period start and a human-readable summary. Estimates only — not a contraceptive method or medical advice. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "cycle_length": {
          "default": 28,
          "description": "Average cycle length in days — first day of one period to the first day of the next. Default 28. Accepts 20–45.",
          "maximum": 45,
          "minimum": 20,
          "type": "integer"
        },
        "cycles": {
          "default": 6,
          "description": "How many upcoming cycles to predict. Default 6. Accepts 1–24.",
          "maximum": 24,
          "minimum": 1,
          "type": "integer"
        },
        "last_period": {
          "description": "The first day of the most recent period. Accepts YYYY-MM-DD, YYYY-MM-DDTHH:MM:SS, RFC-3339 (with Z/offset), and common variants like YYYY/MM/DD, MM/DD/YYYY, DD.MM.YYYY.",
          "type": "string"
        },
        "luteal_phase": {
          "default": 14,
          "description": "Luteal-phase length in days, used to estimate ovulation (period start − luteal phase). Default 14. Accepts 9–17.",
          "maximum": 17,
          "minimum": 9,
          "type": "integer"
        },
        "period_length": {
          "default": 5,
          "description": "How many days the bleeding lasts, used for each cycle's end date. Default 5. Accepts 1–14.",
          "maximum": 14,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "last_period"
      ],
      "type": "object"
    }
  }
}