Last year, I blogged about why I make my work calendar public. It is useful to have a public website where people can see if I'm free or busy.
But the version I created relied on Google Calendar which, sadly, isn't that great. It doesn't look wonderful, especially on small screens, and is limited to only one calendar feed.
So I used the mighty power of Open Source to build my own! https://edent.tel/calendar
It uses two cool components. First, the DHTMLX Scheduler tool - a GPL-licensed project to make beautiful web calendars.
Secondly, Open Web Calendar by Nicco Kunzmann. It takes multiple ICS feeds and transforms them into a format suitable for the scheduler.
With a little bit of prodding and poking, I was able to create a responsive web calendar which shows my personal, work, social, and group calendars all at once.
There are a few snags. The project uses Python Flask - which meant learning a new programming paradigm. I might try to rewrite parts of it to use PHP. Because I'm using someone else's code, I've hacked away parts which aren't of use to me - let's hope nothing was load bearing! Similarly, as it's a small personal project, there are no tests. There are a few aesthetic touches I'd like to make - but it is quite serviceable. I also need to set up a better way to deploy it rather than FTP'ing files and restarting Flask.
But, for a weekend of sporadic hacking, I'm quite pleased with the result! The code is available on my GitLab.
Privacy and Risks
All the entries on my various calendars are set to private. That means if you send me a meeting invite, your details shouldn't appear on the page.
This co-mingles my personal and work calendars. Because I don't want someone booking a meeting when I've got an evening Zumba class. Is there a risk that you knowing that I'm busy from 19:30 to 21:56 reveals the train journey I'm taking?
If something is in both my personal and work calendar - it shows up as a double booking. Should I merge these?
Could advertisers mine my data to better target me? It's not very granular, and I block adverts.
If someone annoying wants to meet with me, it's harder to fob them off with "my diary's chockablock."
When I jet off to an exotic foreign country (*sobs in pandemic*) will it be obvious what timezone I'm in based on my appointments?
By opening up this data, am I participating in a destructive form of "quantified self"? Will people judge me / themselves on how busy I am?