ForwardWidgets
Widgets for Douban and Trakt watchlists plus personalized recommendations, live TV streaming including PlutoTV, Yatu ra…
A modern, open-source Full Calendar alternative for React. Month, week, day, and year views with drag-and-drop, horizon…
A powerful, full-featured yet lightweight and highly pluggable React calendar component library built with TypeScript, Tailwind CSS 4, and shadcn/ui. The core is small — ~40 KB minified (≈13 KB gzipped) — with opt-in plugins for recurring events, agenda views, and more, so you only ship what you use. Built for high-performance scheduling with RFC 5545 recurring events, resource management, and drag-and-drop interactions.
Elegant month view with seamless event transitions
ilamy Calendar is free and open source. If you'd like to support its development:
Opt-in via the recurrence plugin (plugins={[recurrencePlugin()]} from @ilamy/calendar/plugins/recurrence).
.ics files with strict RFC 5545 compliance.plugins prop, each from its own subpath: @ilamy/calendar/plugins/recurrence (RFC 5545 recurring events) and @ilamy/calendar/plugins/agenda (agenda list view).dayjs.tz with automatic DST handling.@dnd-kit.Install the library and its peer dependencies using your preferred package manager:
# npm npm install @ilamy/calendar dayjs # bun bun add @ilamy/calendar dayjs # pnpm pnpm add @ilamy/calendar dayjs
Note: This library requires React 19+ and Tailwind CSS 4+. Peers:
dayjs,react,react-dom,tailwindcss(v4),tailwindcss-animate.dayjsis in the command above because the calendar's API usesdayjsobjects and shares your app's instance/locale.
import { IlamyCalendar } from '@ilamy/calendar';
const MyApp = () => {
const events = [
{
id: '1',
title: 'Project Kickoff',
start: '2026-05-01T10:00:00Z',
end: '2026-05-01T11:30:00Z',
color: 'blue'
}
];
return (
<div style={{ height: '800px' }}>
<IlamyCalendar
events={events}
initialView="week"
onEventClick={(event) => console.log('Clicked:', event)}
/>
</div>
);
};
@ilamy/calendar ships no CSS. Components use the conventional shadcn/ui token classes (bg-background, text-muted-foreground, bg-primary, border-border, …), so your design system supplies the look. Point Tailwind at the package so it generates the utilities (Tailwind v4 ignores node_modules by default — adjust the relative depth to your stylesheet):
@source "../node_modules/@ilamy/calendar/dist";
If you already use shadcn, the tokens are defined and you're done. Otherwise, define the standard shadcn theme tokens (--background, --primary, --border, --ring, --card, …) so the calendar inherits your palette.
The core ships no plugins. Add capabilities through the plugins prop, each imported from its own subpath:
import { IlamyCalendar } from '@ilamy/calendar';
import { recurrencePlugin } from '@ilamy/calendar/plugins/recurrence';
import { agendaPlugin } from '@ilamy/calendar/plugins/agenda';
<IlamyCalendar
events={events}
plugins={[recurrencePlugin(), agendaPlugin({ window: 'week' })]}
/>
@ilamy/calendar/plugins/recurrence — RFC 5545 recurring-event expansion and scoped edit/delete. Also re-adds rrule/recurrenceId/exdates to CalendarEvent.@ilamy/calendar/plugins/agenda — an agenda (upcoming-events list) view scoped to a window.Explore the examples directory for complete implementation patterns:
For comprehensive guides, API references, and interactive demos, visit ilamy.dev.
MIT © Sujeet Kc
more like this
Widgets for Douban and Trakt watchlists plus personalized recommendations, live TV streaming including PlutoTV, Yatu ra…
search projects, people, and tags