Last week wasn't as productive as I wished. Nevertheless, here's my report.
I tried to continue on storing EPG data, but unfortunately came across bug 539969 quickly.
Furthermore, all registered devices together with their channels.conf and timers are stored in GConf and are restored when the daemon is started again. That means that the daemon is actually usable and you don't have to re-compile the code to add a new timer. I extended the sample client, written in Python, too. It makes use of all the D-Bus interfaces of the daemon.
I haven't decided what I'm going to do next week, yet. This mostly depends on Zaheer's review that he did during the last week. So I might spend next week fixing issues Zaheer pointed out or continuing hacking on the EPG stuff, if possible. If that's not possible I'm going to start writing a separate GUI application that accesses the daemon through D-Bus. With that application it should be easy for users to scan for channels and schedule recordings.