A Home Assistant custom component that tracks menstrual cycles and surfaces fertility awareness data at a glance. Designed for privacy-conscious users who want to avoid or plan pregnancy using both calendar-based predictions and physiological symptoms.
Warning
Medical Disclaimer: This is a personal home automation tool, not a medical device. Always combine with other methods for contraception and consult with a professional.
- Privacy First: All data is stored locally in your Home Assistant instance. No cloud, no subscriptions.
- Calendar Predictions: Automated 3-month forward-looking projections for periods and fertile windows.
- Advanced Mode (Symptothermal Method): Optional tracking for BBT, CM, and LH to confirm ovulation with precision.
- Goal-Oriented: Configure your goal as "Plan Pregnancy", "Avoid Pregnancy", or "Just Tracking" to receive tailored status updates.
- Service Integration: Easily log data from physical buttons, NFC tags, or custom dashboards.
- Open HACS in Home Assistant.
- Go to Integrations > Custom Repositories.
- Add
https://github.com/your-username/cyclistas an Integration. - Install Cyclist and restart Home Assistant.
- Copy the
custom_components/cyclistfolder to your<config_dir>/custom_components/directory. - Restart Home Assistant.
- Go to Settings > Devices & Services.
- Click Add Integration and search for Cyclist.
- Configure your typical Cycle Length and Period Duration.
- Set your primary Goal.
When you provide physiological data, Cyclist automatically upgrades from simple calendar estimates to data-driven confirmations.
- Basal Body Temperature (BBT): Confirm ovulation via the 3/6 rule (3 high temperatures above the previous 6).
- Cervical Mucus (CM): Identify your "Peak Day" based on high-quality fertile mucus.
- LH Test Strips: Record positive tests to identify the start of the fertile window.
sensor.cyclist_confirmed_ovulation: Shows the cycle day ovulation was confirmed via symptoms.sensor.cyclist_peak_day: Shows the day of the detected CM or LH peak.sensor.cyclist_fertility: Dynamic status (Fertile, Low, Safer).calendar.cyclist_predictions: View your future cycle projections.
Mark the start of a period. Accepts an optional date: for backdating.
Log your daily observations directly from the UI or automations.
Quickly log common symptoms (cramps, headache, etc.) for easy automation access.
Check the lovelace_example.yaml file for a complete vertical stack configuration to build your perfect cycle dashboard.
If you enjoy this integration, feel free to open an issue or pull request on GitHub!