I have a little bit of an obsession with calendars, mostly generated ones via a variety of tools. I don’t do well with pen-and-paper for this sort of things, and one of these days I will write the Grand Unified Todo Manager To Rule Them All (which will also eat emails, Calendars and probably a few other things along the way). As a result, what can be considered my ‘full calendar’ is currently actually 7 separate calendars, feeding data from a variety of sources (e.g. Facebook events, Meetup, Tailgate), in addition to the bits that I manually type in, and that tends to change every few months. This means that “sharing my calendar with my partner” is distinctly less simple than it really should be, as I’d like to avoid inflicting this particular aspect of my choices on them. A few conversations over the holiday period indicated that this isn’t unique to me, and that apparently other technological folks have this problem. Solutions like “just copy everything twice” and manual item-by-item conversations apparently abound, and I for one would like to kill these workarounds.
Enter Sked: Sked lets you add all your calendars (Google ones and arbitrary iCalendar feeds so far) and then define new ‘merged calendars’ that combine some subset of those. It also lets you share only the “I’m busy then” parts of a calendar. Additionally, the “merged calendars” can be edited in the future—I don’t need to tell the people I shared with I’m using a new source, or that I’ve decided they should get more/less of my data, I can just edit their access. It also does such shiny things as give you a preview of what a particular shared calendar looks like.
Source is in the usual place, comments and patches welcomed. As a side note, this is my first project using Django 2.0 (and as a result Python 3) and I’m very happy with the incremental ‘like the 1.X releases, only better’ approach to their work.