Tomi Chen

notion-ics

January 2022 Source Live on the web

Web Miscellaneous

notion-ics is an simple SvelteKit-based site that generates an ICS calendar from a Notion database. ICS (otherwise known as iCalendar) is an Internet standard for storing and sharing calendar information, such as events. I created this project to mirror schedules in Notion to Google Calendar.

Why?

Like a lot of people, I use Notion to organize my life. I use it to keep track of projects, take notes, and schedule tasks. However, I also use Google Calendar for events, so I wanted a way to view my tasks from Notion in my Google Calendar.

Stack

notion-ics uses the Notion API to generate an iCalendar file from a Notion database, serving it using SvelteKit. The iCal calendar is created with ical-generator.

Using SvelteKit might be a little overkill considering I just need a single serverless function, but I was familiar with it. I also love how you can host it on any platform by using their adapters, so it’s easy to switch platforms if necessary.

Challenges and Lessons Learned

I tried to make it easily configurable so others could fork the repo and set something similar up for themselves. However, thinking of different cases and knowing which configuration parameters are needed is not trivial! I’d like to think I struck a good balance, but I’m not too concerned either way since it works for me (and that’s all it needs to do).