Calendar

A calendar places events against time itself: the position of a block says when it happens, and its size says how long it lasts. Orvain's Calendar family ships three views of one component, a day behind a thirteen-hour axis with a line that tracks the current time, a week of seven day-of-week columns where overlapping events stack in a ranked order, and a month grid with out-of-month days hatched, today badged, and event chips that truncate to fit their cell. Five headers sit on top of any of them: one with notifications and an overflow menu, one with a filter, one with search and a month picker, one with a tear-off today tile and quick add, and one with a scrolling strip of days.

Overlap is the problem the whole component is arranged around. Two events at ten o'clock have to share a column without either one disappearing, and once five of them start at ten the view must choose between shrinking every card past reading and hiding some behind a count. A month cell cannot express duration at all, which makes the month view a density map rather than a schedule: it answers which days are busy, and anyone hunting for a clash has to be sent to the week or the day.

Daily

Best for

Day schedules, dispatch boards, appointment logs

Anatomy

Search and Add Event header · date nav and view switcher · a 13-hour time axis · a live current-time line

Team calendar

Search the day, add an event, or click an empty slot to book it.

April 26, 2026
7am
8am
9am
10am
11am
12pm
1pm
2pm
3pm
4pm
5pm
6pm
7pm
Focus blockFocus
Design reviewReview
1:1 with Amelia1:1
Engineering standupStandup
Fifteen minutes, camera optional
Release cutRelease
v2.4 branches at noon
Incident reviewIncident
Team lunchTable for eight · 12:30
Leaf and Grain
Design reviewReview
Orvain UI · every Tuesday
Design critique
Pricing page, round two
Current time 11:32 AM

Weekly

Best for

Team rosters, booking grids, multi-day planning

Anatomy

Seven day-of-week columns · a today marker · overlapping event cards ranked by a z-index ladder

Team calendar

Search the week, add an event, or click an empty slot to book it.

Apr 26 - May 2, 2026
Sun26
Mon27
Tue28
Wed29
Thu30
Fri1
Sat2
7am
8am
9am
10am
11am
12pm
1pm
2pm
3pm
4pm
5pm
6pm
7pm
Focus blockFocus
1:1 with Amelia1:17:00
Design reviewReview
Incident reviewIncident
Release cutRelease
Focus blockFocus
Engineering standupStandup10:00
Design reviewReview
Incident reviewIncident
1:1 with Amelia1:1
Design reviewReview
Incident reviewIncident1:00
Postmortem for the 03:12 outage
Focus blockFocus
1:1 with Amelia1:12:00
Design reviewReview
Design reviewOrvain UI · every Tuesday
Alexandria office
Focus blockFocus
1:1 with Amelia1:14:00
Design reviewReview
Focus blockFocus
1:1 with Amelia1:15:00
Design reviewReview
Focus blockFocus
1:1 with Amelia1:16:00
Design reviewReview
Focus blockFocus
1:1 with Amelia1:17:00
Design reviewReview
Focus blockFocus
Current time 1:28 PM

Monthly

Best for

Availability overviews, editorial calendars, billing cycles

Anatomy

A five-to-six row month grid · out-of-month hatch fill · a today badge · truncating event chips

Team calendar

Search the month, add an event, or open a day to see its hours.

April 2026
Sun
Mon
Tue
Wed
Thu
Fri
Sat
29
30
31
1
2
3
4
Focus
5
6
Review
7
8
9
1:19:30
10
11
12
13
14
Release11:00
15
16
17
18
19
20
Incident2:00
21
22
23
24
25
Review4:30
26
Standup8:15
27
28
29
30
1
2

Header with actions

Best for

Team calendars, shared schedules, workspaces with notifications

Anatomy

Prev/next pair · range with a Today link back · sliding Daily/Weekly/Monthly switch · Manage calendars, notifications and an overflow menu

Apr 20 - 26, 2026

Header with filter

Best for

Filtered schedules, event-type views, booking calendars

Anatomy

Range framed by its own arrows · Today link · sliding view switch · Filter with a count badge and event-type panel

Apr 20 - 26, 2026

Best for

Archives, long-range planning, calendars people search more than browse

Anatomy

Range with a month-and-year picker · sliding view switch · Filter · a search field whose funnel turns into a clear button

Apr 20 - 262026

Header with date tile

Best for

Personal planners, booking apps, dashboards that open on today

Anatomy

A tear-off today tile · range over a Today caption · search that opens in place · Today button group · view menu · Add Event quick-add

Apr 20 - 26, 2026Today

Header with day strip

Best for

Mobile agendas, class timetables, picking a day without a month grid

Anatomy

Range over a rule · flush Daily/Weekly/Monthly group · a scrolling strip of days whose week lights up around the pick

Apr 20 - 26, 2026
Mar
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Apr
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
May
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Sun
01

Using Calendar

Reach for it when

  • Schedules where a clash is the thing to spot: rooms, staff, equipment.
  • Dispatch and appointment work driven by the current hour, where a now line says where you are in the day.
  • A month-at-a-glance read of how loaded the coming weeks are.
  • A team's week, where each day or resource holds its own column.

Reach for something else when

  • Choosing a date for a form field. A date picker is smaller, and the events would only be noise around the answer.
  • Work carrying no real time, such as a backlog. A board orders by stage and a list by priority.
  • Long spans with dependencies between them. A Gantt chart shows a six-week task and what it blocks; a month grid cannot.
02

Where it shows up

01

Clinic day

Appointments down an hour axis, with the current-time line telling the front desk how far behind the morning has slipped. The day view is the only one where a fifteen-minute gap is visible as a gap.

02

Team roster

A week of shifts, a column per day, so the hole on Thursday afternoon is obvious before anyone adds up hours. Overlapping shifts stack in order instead of hiding one another.

03

Publishing month

Scheduled posts across a month, where the question is whether next week is overloaded rather than what time anything goes out. Chips truncate, because the title is a label here, not the content.

04

Room availability

Bookable space shown as the hours already taken. Whoever is booking reads the empty space, so free time has to be as legible as busy time, not just the absence of a card.

03

Questions

What is the difference between a calendar and a date picker?

A date picker is an input. It exists to return a date to a form and closes as soon as it has one. A calendar is a view: it shows what already occupies the time, stays open while you work, and usually supports creating and moving events. They share a month grid, which is why they get confused, but only one of them carries a value.

How should a calendar handle overlapping events?

In day and week views, split the column into side-by-side lanes and keep the earliest event leftmost, so the layout stays stable as events are added. Cap the lanes and collapse the remainder behind a count, since four cards in one hour are already too narrow to read. In a month cell, show the chips that fit and put the rest behind a link that opens the day.

All blocks
The Orvain Dispatch

Premium components, free in your inbox.

Join the Orvain Dispatch and get production-ready components, free to keep: React and Vue code plus the Figma frame, yours to ship.

Just components, never spam. You can unsubscribe anytime.