A full-fledged calendar application with support for multiple calendars, repeated events, and best of all, dark mode. It has four view modes: year, month, week, and day. Additionally, there is a good screen reader and keyboard navigation support.

Online demo

You can try out the live version at project-ephemeris.vercel.app.

Video overview

Screenshots

Main page
Main page
Editing an event
Editing an event
Searching for events
Searching for events
Month view
Month view
Year view
Year view
Light mode
Light mode
Editing calendar
Editing calendar

Technologies used

  • Javascript ES6+
  • TypeScript
  • React
  • Next.js
  • Tailwind CSS
  • MySQL

Things learned

I am a heavy calendar user and consider myself experienced with it. Yet, it's not until I tried to design a calendar that I started to realize the complexities of a good calendar system.

There are big and gluing thins like time zones and things as inconspicuous as an algorithm for most efficiently placing overlying events on a grid.