I built NotionToCalendar.com

Notion to Calendar is an application that allows you to take your date-based databases to any calendar app you use.

It was conceived as a side project that I wanted to run in August 2022.

What does Notion to Calendar do?

Notion to Calendar collects documents from a Notion database, transforms its properties into iCal properties and exposes a URL to access the data for Calendar Apps to consume. In essence, it translates from A to B with the user's credentials.

Where does the idea come from

At the end of 2021, I saw Marcos Sorribas' tweet that inspired me to start working on the project:

https://twitter.com/MarcosSorribas/status/1456540456494436354

In August 2022, my wife was traveling for a month, which left me time to do "everything I always want to do but never have time for".

So I created a Notion Database to organize my projects.

That's when I realized how useful it would be to have the calendar view in my iPhone calendar, along with the rest of the calendars I use usually. The idea of creating Notion to Calendar was born.

Technical objectives

In terms of development, my objectives were:

  • Refining concepts: Hexagonal Architecture - All implementations are done under their own layer
  • Build with no database so I don't have to maintain that cost.
  • Testing new tools - LogSnag
  • Building a component base that can be portable for other projects - not really sure because as a designer I'm not the best.

Challenges of setting up such an application

The biggest challenge was being able to work with the Notion API.

At the time, the API changed with new versions, so I had to do several changes within the development, so I had to decouple myself from the official library and work under my own implementation.

Likewise, the types that Notion's official library gives you have many shortcomings, which took me several turns to understand what they were returning to me and make the code understand it.

Another challenge was adapting hexagonal architecture concepts to serverless environments, as well as dealing with limitations with images.

Infraestructure

This application is created with Vercel + Next.js + Tailwind.

The Login system is done with NextAuth with a bespoke adapter for Notion, the Notion SDK, and the blog runs from a specific page of a dedicated Workspace.

Use cases

Notion to Calendar users are using it to keep track of their exams, visualize calendars managed in Notion along with other normal calendars, receive native notifications on the mobile without also having Notion's, share the URL between several people to have the same information (events like Walpurgis, organized trips, content communities, etc.), have a log of when things have happened or where you have been, organize projects, manage their vacations, and many other things.

Improvements

In terms of improvements, both at a non-technical (design) and technical (field mapper, select which field is the date field, iCal importer, etc.) level, there is always something to improve.

User traction

I currently have few users, with almost daily dripping. Most of them are students from all over the world and some curious. Most of them come from the Notioners community on Twitter, where they mainly move, and from the long tail of searches.

Monetization

I was going to sell it cheap, but I decided to leave it free until I reach a mass of users. The cost 0 allows me not to have to monetize it or discard it, since other projects of the same type do not have monetization. I don't want to close it because of the opportunities that may arise.

Lessons learned

I learned that hexagonal architecture has a lot of ceremony and is overkill for small applications.

Decoupling libraries is much better.

I realised that Notion as content management system is caviar.

I will continue developing projects having it as a backend.

In addition, I discovered that almost all the ideas that come to you for a side project are probably already out there. That doesn't mean they should not be done, since you do not know the unexpected opportunities that may arise, or the twist you can give it.

I also understood that this tool can be mounted with Zapier, Make.com, and many other utilities, but the Notion API allows you to do things that neither they nor any other service do.

That's where the oportunity lies.

You can try Notion to Calendar for free.