# React Native Calendars — Calendar Components for Mobile Apps > A flexible set of calendar components for React Native including monthly calendars, agenda views, and timeline displays with full theming and localization support. ## Install Save in your project root: # React Native Calendars — Calendar Components for Mobile Apps ## Quick Use ```bash npm install react-native-calendars ``` ```jsx import { Calendar } from 'react-native-calendars'; console.log(day.dateString)} markedDates={{ '2025-01-15': { selected: true, marked: true } }} /> ``` ## Introduction React Native Calendars by Wix provides production-ready calendar UI components for iOS and Android. It handles date rendering, scrolling, marking, and theming out of the box so developers can add calendar features without building date logic from scratch. ## What React Native Calendars Does - Renders monthly calendar grids with day selection and multi-dot markers - Provides an agenda view that lists events grouped by date with sticky headers - Offers a horizontal calendar strip for compact date picking - Supports date range selection with visual highlighting between start and end dates - Includes a timeline view for hour-by-hour scheduling interfaces ## Architecture Overview Each component is a pure React Native view built on top of FlatList or ScrollView for smooth scrolling. Date calculations use a lightweight internal date utility without heavy dependencies like Moment.js. The marking system uses a declarative object map where keys are date strings and values describe dots, periods, or selection states, keeping re-renders efficient. ## Self-Hosting & Configuration - Install via npm and import the specific component you need (Calendar, CalendarList, Agenda) - Pass a theme prop to customize colors, fonts, and spacing across all calendar views - Use markedDates to highlight specific dates with dots, periods, or custom styles - Set minDate and maxDate to restrict the navigable date range - Configure firstDay to start weeks on Monday or any other day ## Key Features - Multiple calendar layouts: month grid, scrollable list, agenda, and timeline - Declarative date marking with dots, periods, and multi-period indicators - Full theming via a single theme object that styles all sub-components - Performance-optimized scrollable calendar lists with lazy rendering - Localization support through custom month and day name configuration ## Comparison with Similar Tools - **react-native-date-picker** — date/time picker modals; Calendars provides full calendar views - **react-native-calendar-events** — reads device calendar events; Calendars is a UI component only - **Syncfusion Calendar** — commercial calendar with more features; Calendars is free and open source - **Flash Calendar** — newer alternative focused on performance; Calendars has a larger ecosystem ## FAQ **Q: Does it support recurring event markers?** A: Not built-in. Generate the markedDates object with your recurrence logic and pass it to the component. **Q: Can I customize the day cell rendering?** A: Yes. Use the dayComponent prop to replace the default day cell with your own React component. **Q: How does it handle different locales?** A: Pass monthNames and dayNames arrays in your locale, or use LocaleConfig to set names globally. **Q: Is the Agenda view performant with thousands of items?** A: It uses a virtualized list internally, so it handles large datasets well. Pre-compute your items object for best results. ## Sources - https://github.com/wix/react-native-calendars - https://wix.github.io/react-native-calendars/docs/Intro --- Source: https://tokrepo.com/en/workflows/asset-955816e3 Author: AI Open Source