Are there any powershell commandlets for reading free/busy information in exchange 2007/2010? I have been unable to find any.
I believe to do that you need to use Exchange Web Services. There's a EWS managed API you can call from PowerShell, but it is just a library, and you need to figure out what you need to do basically yourself from documentation.
This guy does some PowerShell and EWS stuff: http://gsexdev.blogspot.com