Changing Jabber status based on my calendar

Eileen Brown writes about the new Office Communicator:

you know, its the little things that make such a difference. Like the fact that my status automatically turns to busy – (a blue no entry sign) when my Outlook calendar is marked with a meeting

Bingo! Wow, what a nice feature that really is – especially useful in the workplace, let alone at home. So, how can I emulate it in my IM clients? Let’s start with (what I hope are) some facts:

  • my preferred client, Psi, does not support plug-ins
  • although we use Outlook at work, I have a Python script which extracts my Outlook calendar into the iCalendar (.ics) file format
  • Miranda and Exodus, among other popular Jabber clients, support plug-ins
  • a third-party (such as a bot) can’t trigger a change in another user’s status

So then. What can be done? For the clients without a plugin architecture, I don’t think there’s anything that can be done (this kind of thing is too niche to become an accepted patch although of course you could build your own if you were a sado-masochist). For the others though, there’s a real chance that this could become quite a useful feature.

I can’t see, by the way, how Office Communitor isn’t going to be massively popular in businesses all around the world.

Published by

4 thoughts on “Changing Jabber status based on my calendar”

  1. Yes, a modular design of components that work together to act as one client to the outside world, is something that would be pretty nice to have. As a workaround, you could implement a proxy that injects the special ‘in a meeting’ presences towards the server, and let the real client in the dark about it. You may also need to intercept and process the presence packets from the real client.

    I’ve started work on something like this, which actually does both above mentioned solutions. Due to changes in priorities it is now waiting to be worked on again, however…

  2. That’s a very interesting idea.

    At the very least it should be possible to hack a normal HTTP or SOCKS proxy to perform the calendar/status checking for the client. This would mean that it would actually work on every client, plus could lead to future extensibility for other related tasks.

    A Jabber-specific proxy would probably be better, but I think for at least getting started then hacking something that already exists is a reasonable thing to do.

  3. This is where DBUS support would come in handy. The calendar app sends an event message over DBUS, and any local applications receive it and act on it. In this case Psi would preferabbly need a plugin to listen on the calendar’s channel over DBUS.

    Another possibility would be to put the calendar app on the Jabber network and using the remote control JEP, set your other client’s status to away.

    For a quick hack DBUS is probably the way to go, and is supposedly being worked on. A Jabberfied calendar would be to sexy to live without though:

    Calendar app: “Hey, I’m busy. Is there a better time for you?”, “I’m still busy, but I’m open…”

    Ah, the things that can be done.

  4. Nolan, you’re right, DBUS support would make it very easy indeed!

    Only the day after I made this post I read the remote-control JEP and saw Remko’s screenshots – this looks very cool and probably the easiest thing to do (presuming that other clients would be likely to have remote control support before they have a DBUS plugin). This would be really cool to have.

Comments are closed.