You mean you want to allow guests to ONLY send PM's? Ahh, ok. I thought you wanted them to be able to receive and read as well. In that case it's pretty easy (see how we went from impossible to easy?

)... I'm sure someone will be able to do that.
You will need to hack private.php to accept messages from $bbuserinfo['userid'] == 0, and hack it a bit more to distinct between messages from users and messages from guests.
As for the calendar: You can just enable it by editing the Unregistered usergroup's permissions.