VayuUI

BigCalendar

A full-featured calendar with month, week, and day views.

Usage

April 2026

Sun
Mon
Tue
Wed
Thu
Fri
Sat
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
import { BigCalendar, CalendarEvent } from "@/components/ui/bigcalendar"

const events: CalendarEvent[] = [
  {
    id: 1,
    title: "Team Standup",
    start: new Date(2026, 1, 16, 9, 0),
    end: new Date(2026, 1, 16, 9, 30),
    color: "blue",
  },
];

<BigCalendar
  events={events}
  defaultView="month"
  onEventClick={(e) => console.log(e)}
  onDateClick={(d) => console.log(d)}
/>

Features

  • 3 Views: Month, Week, Day — switch with built-in toolbar
  • Events: Color-coded, multi-day, all-day, overflow indicators
  • Navigation: Today / Prev / Next with keyboard support
  • Compound API: Override Toolbar, MonthView, WeekView, DayView individually
  • Custom Renderer: Pass renderEvent for fully custom event rendering
  • Zero Dependencies: Pure React + CSS Grid, no third-party calendar library

BigCalendar Props

PropTypeDefaultDescription
eventsCalendarEvent[][]Events to display
defaultDateDatenew Date()Initial date
dateDateControlled current date
defaultViewCalendarView'month'Initial view
viewCalendarViewControlled view
onDateChange(date: Date) => voidNavigation callback
onViewChange(view: CalendarView) => voidView switch callback
onEventClick(event: CalendarEvent) => voidEvent click handler
onDateClick(date: Date) => voidDate cell click handler
weekStartsOn0 | 100 = Sunday, 1 = Monday
renderEvent(event: CalendarEvent) => ReactNodeCustom event renderer

CalendarEvent

FieldTypeRequiredDescription
idstring | numberUnique identifier
titlestringEvent title
startDateStart date/time
endDateEnd date/time
colorstringblue, green, red, amber, purple, pink, primary
allDaybooleanAll-day event
descriptionstringOptional description

Event Colors

ColorPreview
blue🔵 Blue accent
green🟢 Green accent
red🔴 Red accent
amber🟡 Amber accent
purple🟣 Purple accent
pink🩷 Pink accent
primary🎨 Theme primary

On this page