GuidesComponentsApp UI components

PeriodCalendar

Calendar-based visualization for host-supplied period intervals

  • Stable unknown
  • Release candidate since 1.16.1-rc.3
  • Development since 1.16.1-dev.2111+9796905

PeriodCalendar composes the shared Calendar component and marks inclusive date ranges supplied by the host application. The app remains responsible for collecting and storing the data.

import { PeriodCalendar, type PeriodDateRange } from "@ovok/native/ui";

const periods: PeriodDateRange[] = [
  { startDate: "2026-05-03", endDate: "2026-05-07" },
];

<PeriodCalendar
  periods={periods}
  selectedDate={selectedDate}
  onDateSelect={setSelectedDate}
  locale="en-GB"
/>

The start and end dates are inclusive. Overlapping and adjacent intervals are merged for display. The shared calendar provides navigation, selection, localization, accessibility, and theme/slot handling. This component does not infer cycle length, predict future periods or fertility windows, persist health data, request platform permissions, or provide medical advice.

PropTypeDefaultDescription
periodsreadonly PeriodDateRange[]requiredHost-supplied { startDate, endDate } intervals
periodLabelstringPeriodComplete accessible marker and legend label; supply translated text when needed
labelForPeriodDate(date: Date) => stringperiodLabelOptional date-specific accessible marker label
showLegendbooleantrueShow the marker legend
Calendar propsCalendarProps except markers and getMarkerForDate—Selection, month, locale, bounds, theme, and slots

Last updated on