Open Formats Are Nice: iCal

January 25th, 2011
ical, programming, python, tech
A while ago I decided that I wanted my schedule to show up on google calendar so I could look at one calendar that had both my events and julia's events. So I wrote something to convert it into ical format, and set my scripts to run that whenever I changed the calendar. At the time, this turned out not to be very helpful: google would load my calendar feed but then wouldn't make updates. So I left it alone for a year.

Now my situation changes: I have a mac. So I open up ical, import my feed, import julia's google calendar feed, and everything just works [1]. The reason this all worked is that google advertised support of someone else's open format, ical, so that when I wanted google calendar support that's what I implemented. If they had instead chosen to write their own format or something, I would have needed to start all over to get ical integration and might never have taken the time.


[1] Actually, it doesn't. I hadn't implemented all-day events properly, so I had to tweak my feed generation scripts.

Comment via: substack

Recent posts on blogs I like:

Shoshannah Tekofsky on how AI agents suck at personality tests, don't express surprise, and lie to themselves

Can you introduce yourself for people who don’t know who you are?

via Thing of Things February 11, 2026

2025-26 New Year review

This is an annual post reviewing the last year and setting intentions for next year. I look over different life areas (work, health, parenting, effectiveness, etc) and analyze my life tracking data. Highlights include a minimal group house, the usefulness…

via Victoria Krakovna January 19, 2026

Why I Don't Think My Braces Were Worth It

A couple weeks ago, I got my braces off. I kind of wish I had never had them, though. When I was younger, two of my teeth were sticking out, and they looked kind of funny. I thought that my teeth were just fine, and I didn't want to get braces. But s…

via Anna Wise's Blog Posts January 3, 2026

more     (via openring)