A read-only, view-only calendar component for React applications with day, week, and month views. This lightweight component allows you to display events in a clean, modern interface inspired by the FluentUI design system.
Website: https://fluentui-calendar.pages.dev/
- Multiple Views: Seamlessly switch between day, week, and month views
- Event Display: Shows events with times and titles in all views
- Navigation: Easily navigate between days, weeks, or months
- Clickable Events: Events can optionally link to URLs when clicked
- Current Day Highlighting: Automatically highlights the current day
- Responsive Design: Works across different screen sizes
- Read-Only: View-only component - no editing capabilities
- Lightweight: Focused on displaying events without unnecessary complexity
npm install fluentui-react-calendar
import Calendar from 'fluentui-react-calendar';
function App() {
// Events object - keys are date strings in DD-MM-YYYY format
const events = {
"21-04-2025": [
{
"time": "09:00",
"event": "Morning meeting",
"link": "https://meeting.example.com/morning" // link is optional
},
{
"time": "14:30",
"event": "Client presentation"
// No link provided - will not be clickable
}
],
"22-04-2025": [
{
"time": "10:00",
"event": "Project kickoff",
"link": "https://projects.example.com/kickoff"
}
]
};
return (
<div className="app">
<Calendar events={events} />
</div>
);
}
Prop | Type | Required | Description |
---|---|---|---|
events |
Object | Yes | An object containing events organized by date. The key format should be "DD-MM-YYYY" (e.g., "21-04-2025"). |
Property | Type | Required | Description |
---|---|---|---|
time |
String | Yes | Time of the event in 24-hour format (e.g., "09:00", "14:30") |
event |
String | Yes | Title or description of the event |
link |
String | No | Optional URL that will open when the event is clicked |
- Displays an entire month in a traditional calendar grid
- Shows up to 2 events per day with a "+more" indicator for additional events
- Clicking on a day navigates to the day view for that date
- Displays 7 days in a row
- Shows up to 4 events per day with a "+more" indicator for additional events
- Clicking on a day navigates to the day view for that date
- Shows all events for a single day organized by hour
- Events are placed in their respective time slots
- This is a view-only calendar - it does not support adding, editing, or deleting events
- Events are displayed in chronological order
- The current day is automatically highlighted
- Time is displayed in 12-hour format with AM/PM indicators
const events = {
"21-04-2025": [
{
"time": "09:00",
"event": "Morning meeting",
"link": "https://meeting.example.com/morning"
},
{
"time": "14:33",
"event": "Client presentation",
"link": "https://presentation.example.com/client"
},
{
"time": "16:00",
"event": "Project deadline",
"link": "https://projects.example.com/deadline"
}
],
"22-04-2025": [
{
"time": "10:00",
"event": "Project kickoff",
"link": "https://projects.example.com/kickoff"
}
]
}
- All modern browsers (Chrome, Firefox, Safari, Edge)
- Internet Explorer 11 (with appropriate polyfills)
This project is licensed under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.