shadcn examples svg logo
484

Command Palette

Search for a command to run...

Sign inGet All Access

Shadcn Minimal Calendar

Minimal Calendar App is a full-page personal calendar block with an editorial, borderless layout centered on the screen: a compact day summary with serif typography on the left and an airy month grid with no cell borders on the right. The selected day sits in a filled circle in the default Shadcn UI theme color, and every day that holds a to-do or an event gets a small dot under its number, derived straight from the data. A working month dropdown and a Create dialog that adds to-dos to the selected day keep the controls functional, and the to-do and event lists follow whichever day you click. Built with Shadcn UI components and Tailwind classes, dark mode ready and responsive down to phones. Use it in React, or take the matching Vuejs or Svelte version.

Pro
Minimal Calendar App preview
Get Unlimited Access to All Examples & Blocks.
Unlock everything with a single payment. Get lifetime access to all content. You will also receive free access to all new examples.

An Editorial Take on the Calendar

Most calendar blocks look like software. This one looks like a well set magazine page: no table borders, generous whitespace, a large two-digit day number, and serif type for the human parts, the weekday, the to-dos, the events. The structure is a simple two-column split centered on the screen, a narrow day summary on the left and the month grid breathing on the right, with the avatar and greeting sitting quietly in the top corner.

The restraint is the point. The grid draws no boxes, so two treatments do all the talking: a filled circle in the default theme color for the selected day, and small warm dots under the days that actually hold something.

Day Selection Drives Everything

Click any day in the grid and the left column follows: the oversized day number, the serif weekday name, the To-Do List, and the Upcoming Events all re-render for that date. Days with nothing planned get a quiet empty state instead of a blank hole, so the layout never collapses.

The month name at the top left is a real control too. It opens a dropdown of all twelve months, and switching months re-flows the grid, trims trailing weeks so short months do not drag empty rows, and resets the selection to the first day.

Dots That Mean Something

Every marker on the grid is earned. The dot under a day number is computed from the data: if a day has at least one to-do or event, it gets a dot, and if not, it stays clean. There are no decorative highlights pretending to be information, which keeps the calendar honest at a glance.

Because the dots derive from state rather than a hardcoded list, they react to the user. Add a to-do through the Create dialog and the dot appears under that day immediately; move to a month with no records and the grid empties out.

The Create Flow

The Create button in the top corner opens a Shadcn UI Dialog with a title, a time, and three pastel color swatches. Saving appends the to-do to the currently selected day, it appears in the list in the tone you picked, and the day earns its dot on the grid in the same render.

The month name is a control too: it opens a dropdown of all twelve months, and switching re-flows the grid, trims trailing weeks so short months do not drag empty rows, and resets the selection to the first day.

Fitting It Into Your Product

Grab the code from the Code tab or install the block with the shadcn CLI. Typography leans on your project's heading and serif stacks, and surfaces use theme tokens, so the block adapts to dark mode and to your palette with no extra work. On phones the columns stack, the grid tightens its spacing, and the day circles scale down while staying tappable.

If you need a denser, more application-like calendar, the event calendars category holds sidebar and multi-view variants. This minimal block also ships for Vuejs on shadcn-vue and for Svelte on shadcn-svelte with the same layout and interactions.

Frequently Asked Questions

Is this Shadcn minimal calendar free to use?
The preview is free to explore. The source code and the shadcn CLI install unlock on the Pro plan, like the other calendar blocks on the site.
Are the month dropdown and Create button functional?
Yes. The month name opens a twelve month dropdown that re-renders the grid, and the Create dialog adds a to-do with a time and color to the selected day, updating both the list and the dot on the grid.
How do the dots under the day numbers work?
They are derived from the data: any day with at least one to-do or event gets a small dot, computed from React state. Creating a to-do through the dialog adds the dot to that day instantly.
Does the serif typography require loading a new font?
No. The block uses the font-serif utility, which falls back to your project's configured serif stack, so it renders instantly and you can swap in any serif you like through Tailwind's theme.
Can I use this calendar with Vuejs or Svelte?
Yes. The same minimal calendar is published for Vuejs on shadcn-vue and for Svelte on shadcn-svelte with the same day selection, range pills, and create flow.