Skip to main content
Give an event a recurrence rule and expand it into concrete occurrences for the range you’re showing with expandRecurringEvents. The calendar doesn’t expand recurrences itself, so you control the window (and can memoize it).
import { Calendar, expandRecurringEvents } from "react-native-super-calendar";

const events = [
  // Every weekday standup, 20 occurrences:
  {
    title: "Standup",
    start,
    end,
    recurrence: { freq: "weekly", weekdays: [1, 2, 3, 4, 5], count: 20 },
  },
];

const visible = expandRecurringEvents(events, rangeStart, rangeEnd);

<Calendar /* ... */ events={visible} />;
Rules support:
  • freq"daily", "weekly", "monthly", or "yearly".
  • interval — every N periods (e.g. every 2 weeks).
  • count — stop after N occurrences.
  • until — stop on or before a date.
  • weekdays — which days, for weekly rules (0 = Sunday).
Each occurrence keeps the original duration and fields; non-recurring events pass through unchanged.
Compute the range from the visible window. onChangeDateRange gives you the [start, end] of what’s on screen each time the user pages — a good trigger to re-expand (and to fetch from a server).