Jason raises some interesting points about implementing the system, but there are always similar issues when doing time tracking. In any case, implementing this would be very feasible. I would recommend writing a plugin that is a packet interceptor (notes on doing this in the plugin dev guide of the 2.2 beta). You would listen for presence packets and then log the info to the database. You could even listen for different away states. For example, employees could enter “on break” or “at lunch” as special presence messages (or built in to a custom client). You could then log that info as well. Having a unified notion of presence lets you do all kinds of cool things, including time tracking.