BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/shadcn/ui full calendar/full-calendar

Full Calendar

shadcn-ui-full-calendar/full-calendar
FreeBlock

A full calendar component for scheduling events.

Install it

npx shadcn@latest add https://calendar.jeraidi.dev/r/full-calendar.json

Source

src/features/calendar/contexts/calendar-context.tsxcalendar.jeraidi.dev/r/full-calendar.json · first 6 KB
1"use client";
2
3import type React from "react";
4import { createContext, useContext, useState } from "react";
5import { useLocalStorage } from "@/features/calendar/hooks";
6import type { IEvent, IUser } from "@/features/calendar/interfaces";
7import type { TCalendarView, TEventColor } from "@/features/calendar/types";
8
9interface ICalendarContext {
10 selectedDate: Date;
11 view: TCalendarView;
12 setView: (view: TCalendarView) => void;
13 agendaModeGroupBy: "date" | "color";
14 setAgendaModeGroupBy: (groupBy: "date" | "color") => void;
15 use24HourFormat: boolean;
16 toggleTimeFormat: () => void;
17 setSelectedDate: (date: Date | undefined) => void;
18 selectedUserId: IUser["id"] | "all";
19 setSelectedUserId: (userId: IUser["id"] | "all") => void;
20 badgeVariant: "dot" | "colored";
21 setBadgeVariant: (variant: "dot" | "colored") => void;
22 selectedColors: TEventColor[];
23 filterEventsBySelectedColors: (colors: TEventColor) => void;
24 filterEventsBySelectedUser: (userId: IUser["id"] | "all") => void;
25 users: IUser[];
26 events: IEvent[];
27 addEvent: (event: IEvent) => void;
28 updateEvent: (event: IEvent) => void;
29 removeEvent: (eventId: number) => void;
30 clearFilter: () => void;
31}
32
33interface CalendarSettings {
34 badgeVariant: "dot" | "colored";
35 view: TCalendarView;
36 use24HourFormat: boolean;
37 agendaModeGroupBy: "date" | "color";
38}
39
40const DEFAULT_SETTINGS: CalendarSettings = {
41 badgeVariant: "colored",
42 view: "day",
43 use24HourFormat: true,
44 agendaModeGroupBy: "date",
45};
46
47const CalendarContext = createContext({} as ICalendarContext);
48
49export function CalendarProvider({
50 children,
51 users,
52 events,
53 badge = "colored",
54 view = "day",
55}: {
56 children: React.ReactNode;
57 users: IUser[];
58 events: IEvent[];
59 view?: TCalendarView;
60 badge?: "dot" | "colored";
61}) {
62 const [settings, setSettings] = useLocalStorage<CalendarSettings>(
63 "calendar-settings",
64 {
65 ...DEFAULT_SETTINGS,
66 badgeVariant: badge,
67 view: view,
68 },
69 );
70
71 const [badgeVariant, setBadgeVariantState] = useState<"dot" | "colored">(
72 settings.badgeVariant,
73 );
74 const [currentView, setCurrentViewState] = useState<TCalendarView>(
75 settings.view,
76 );
77 const [use24HourFormat, setUse24HourFormatState] = useState<boolean>(
78 settings.use24HourFormat,
79 );
80 const [agendaModeGroupBy, setAgendaModeGroupByState] = useState<
81 "date" | "color"
82 >(settings.agendaModeGroupBy);
83
84 const [selectedDate, setSelectedDate] = useState(new Date());
85// … truncated

What it pulls in

npm packages

  • motion
  • date-fns
  • re-resizable
  • zod
  • react-hook-form
  • @hookform/resolvers
  • class-variance-authority
  • clsx
  • cmdk
  • framer-motion
  • lucide-react

Other registry items

  • alert-dialog
  • avatar
  • badge
  • button
  • calendar
  • command
  • dialog
  • dropdown-menu
  • form
  • input
  • label
  • popover
  • scroll-area
  • select
  • skeleton
  • sonner
  • switch
  • textarea
  • toggle
  • tooltip
  • tabs
  • https://calendar.jeraidi.tech/r/avatar-group.json
  • https://calendar.jeraidi.tech/r/day-picker.json
  • https://calendar.jeraidi.tech/r/date-time-picker.json
  • https://calendar.jeraidi.tech/r/responsive-modal.json
  • https://calendar.jeraidi.tech/r/button-group.json

Files it writes

  • src/features/calendar/contexts/calendar-context.tsx
  • src/features/calendar/contexts/dnd-context.tsx
  • src/features/calendar/dialogs/add-edit-event-dialog.tsx
  • src/features/calendar/dialogs/delete-event-dialog.tsx
  • src/features/calendar/dialogs/event-details-dialog.tsx
  • src/features/calendar/dialogs/events-list-dialog.tsx
  • src/features/calendar/dnd/draggable-event.tsx
  • src/features/calendar/dnd/droppable-area.tsx
  • src/features/calendar/dnd/resizable-event.tsx
  • src/features/calendar/header/calendar-header.tsx
  • src/features/calendar/header/view-tabs.tsx
  • src/features/calendar/header/date-navigator.tsx
  • src/features/calendar/header/filter.tsx
  • src/features/calendar/header/today-button.tsx
  • src/features/calendar/header/user-select.tsx
  • src/features/calendar/settings/settings.tsx
  • src/features/calendar/skeletons/calendar-header-skeleton.tsx
  • src/features/calendar/skeletons/calendar-skeleton.tsx
  • src/features/calendar/skeletons/day-view-skeleton.tsx
  • src/features/calendar/skeletons/month-view-skeleton.tsx
  • src/features/calendar/skeletons/week-view-skeleton.tsx
  • src/features/calendar/skeletons/year-view-skeleton.tsx
  • src/features/calendar/views/agenda-view/agenda-events.tsx
  • src/features/calendar/views/month-view/calendar-month-view.tsx
  • src/features/calendar/views/month-view/day-cell.tsx
  • src/features/calendar/views/month-view/event-bullet.tsx
  • src/features/calendar/views/month-view/month-event-badge.tsx
  • src/features/calendar/views/week-and-day-view/calendar-day-view.tsx
  • src/features/calendar/views/week-and-day-view/calendar-time-line.tsx
  • src/features/calendar/views/week-and-day-view/calendar-week-view.tsx
  • src/features/calendar/views/week-and-day-view/day-view-multi-day-events-row.tsx
  • src/features/calendar/views/week-and-day-view/event-block.tsx
  • src/features/calendar/views/week-and-day-view/render-grouped-events.tsx
  • src/features/calendar/views/week-and-day-view/week-view-multi-day-events-row.tsx
  • src/features/calendar/views/year-view/calendar-year-view.tsx
  • src/features/calendar/calendar.tsx
  • src/features/calendar/calendar-body.tsx
  • src/features/calendar/constants.ts
  • src/features/calendar/animations.ts
  • src/features/calendar/helpers.ts

Facts

Registry
shadcn/ui full calendar
Type
registry:block
Access
Free
Files written
46
Licence
MIT
First indexed
2026-08-02
Last confirmed
today

Go to the source

calendar.jeraidi.dev yassir-jeraidi/full-calendar on GitHub Raw registry item This item as JSON
BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex