Overview
Includes current cycle status, days until ovulation, and educational information about cycle phases, perfect for fertility tracking and family planning applications.
Live Test Ovulation Calculator Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as OvulationCalculatorSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "OvulationCalculatorSkill",
"arguments": {
"last_period": "2024-01-01"
}
}You do not name the tool yourself; the model picks it. Asking about 2024-01-01 in the terms this skill covers is enough for it to reach for OvulationCalculatorSkill on its own — naming it explicitly also works, and is the way to force the call.
Connecting
One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervekit": {
"url": "https://api.vervekit.com/v1/mcp"
}
}
}https://api.vervekit.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
last_periodRequired | string | First day of last menstrual period (YYYY-MM-DD) date |
cycle_lengthOptional | integer | Average menstrual cycle length in days default 28 · range 21–35 |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"last_period": "2024-01-01",
"cycle_length": 28,
"ovulation": {
"date": "2024-01-15",
"days_from_last_period": 14
},
"fertile_window": {
"start": "2024-01-10",
"end": "2024-01-15",
"duration_days": 6
},
"most_fertile_days": {
"start": "2024-01-13",
"end": "2024-01-15",
"duration_days": 3
},
"fertile_days": [
{
"date": "2024-01-10",
"day_relative_to_ovulation": -5,
"fertility_level": "medium",
"description": "Fertile"
},
{
"date": "2024-01-11",
"day_relative_to_ovulation": -4,
"fertility_level": "medium",
"description": "Fertile"
},
{
"date": "2024-01-12",
"day_relative_to_ovulation": -3,
"fertility_level": "medium",
"description": "Fertile"
},
{
"date": "2024-01-13",
"day_relative_to_ovulation": -2,
"fertility_level": "high",
"description": "Most fertile"
},
{
"date": "2024-01-14",
"day_relative_to_ovulation": -1,
"fertility_level": "high",
"description": "Most fertile"
},
{
"date": "2024-01-15",
"day_relative_to_ovulation": 0,
"fertility_level": "high",
"description": "Most fertile"
}
],
"next_period": {
"date": "2024-01-29",
"days_from_last_period": 28
},
"cycle_phases": {
"follicular_phase": {
"duration_days": 14,
"description": "From first day of period to ovulation"
},
"ovulation": {
"duration_days": 1,
"description": "Egg is released from ovary"
},
"luteal_phase": {
"duration_days": 14,
"description": "From ovulation to next period"
}
},
"current_status": {
"current_phase": "Menstruation",
"is_fertile": false,
"days_until_ovulation": -701,
"days_until_next_period": -687
},
"disclaimer": "This calculator provides estimates only. Actual ovulation may vary. Consult a healthcare provider for medical advice."
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
last_period | string | 2024-01-01 | The first day of the last menstrual period provided |
cycle_length | number | 28 | The average menstrual cycle length in days |
ovulation | object | {…} | Estimated ovulation date and how many days into the cycle it falls |
ovulation.date | string | 2024-01-15 | Calculated ovulation date in YYYY-MM-DD format |
ovulation.days_from_last_periodPremium | number | 14 | Number of days from last period to ovulation |
fertile_window | object | {…} | Range of days conception is possible, with its length |
fertile_window.startPremium | string | 2024-01-10 | Start date of the fertile window period |
fertile_window.endPremium | string | 2024-01-15 | End date of the fertile window period |
fertile_window.duration_daysPremium | number | 6 | Total duration of fertile window in days |
most_fertile_days | object | {…} | The narrower range with the highest chance of conception |
most_fertile_days.startPremium | string | 2024-01-13 | Start date of the most fertile days period |
most_fertile_days.endPremium | string | 2024-01-15 | End date of the most fertile days period |
most_fertile_days.duration_daysPremium | number | 3 | Duration of the most fertile days in days |
fertile_daysPremium | array[6] | Array of daily fertility data with levels and descriptions | |
fertile_days.0.datePremium | string | 2024-01-10 | Date of the fertile day in YYYY-MM-DD format |
fertile_days.0.day_relative_to_ovulationPremium | number | -5 | Days relative to ovulation date (negative before, positive after) |
fertile_days.0.fertility_levelPremium | string | medium | Fertility level classification: low, medium, high |
fertile_days.0.descriptionPremium | string | Fertile | Human-readable description of fertility status for day |
next_period | object | {…} | Estimated start of the next period and how many days away it is |
next_period.datePremium | string | 2024-01-29 | Estimated date of the next menstrual period |
next_period.days_from_last_periodPremium | number | 28 | Days from last period to expected next period |
cycle_phases | object | {…} | The phases of the cycle with their length and what happens in each |
cycle_phases.follicular_phase | object | {…} | From the first day of the period to ovulation |
cycle_phases.follicular_phase.duration_daysPremium | number | 14 | Duration of follicular phase in days |
cycle_phases.follicular_phase.descriptionPremium | string | From first day of period to ovulation | Description of the follicular phase |
cycle_phases.ovulation | object | {…} | The day the egg is released |
cycle_phases.ovulation.duration_daysPremium | number | 1 | Duration of ovulation phase in days |
cycle_phases.ovulation.descriptionPremium | string | Egg is released from ovary | Description of the ovulation phase |
cycle_phases.luteal_phase | object | {…} | From ovulation to the start of the next period |
cycle_phases.luteal_phase.duration_daysPremium | number | 14 | Duration of luteal phase in days |
cycle_phases.luteal_phase.descriptionPremium | string | From ovulation to next period | Description of the luteal phase |
current_status | object | {…} | Where today falls in the cycle, and whether it is a fertile day |
current_status.current_phasePremium | string | Menstruation | Current phase of menstrual cycle relative to today |
current_status.is_fertilePremium | boolean | false | Whether the user is currently in the fertile window |
current_status.days_until_ovulationPremium | number | -701 | Days until ovulation from today (negative if past) |
current_status.days_until_next_periodPremium | number | -687 | Days until next period from today (negative if past) |
disclaimer | string | This calculator provides estimates only. Actual ovulation may vary. Consult a healthcare provider for medical advice. | Medical disclaimer regarding calculator accuracy |
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This skill is not part of VerveKit. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- Fertility Tracking
- Build fertility tracking applications with accurate ovulation predictions based on cycle length and last period date
- Conception Planning
- Calculate conception probability windows and most fertile days to help users plan or prevent pregnancy
- Menstrual Health
- Create menstrual health apps with ovulation tracking, fertile window identification, and cycle insights
- Family Planning
- Provide family planning tools with science-based ovulation calculations and fertility awareness features
Other ways to use Ovulation Calculator Skill
Set up Ovulation Calculator Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.
Related
More in Lifestyle: