Tasker does this built in based on your availability. You can set Availability to No, Yes, or any as well as select what calendar (I use the exchange one, in case you want to know if it works with that), as well as filter by location, title, and description (I believe, I only use it for the "availability" side).
I also own Locale, and this one feature is what is going to get me to switch. Also, my phone sped up quite a lot by removing all the local plugins I had running. each of the 4 plugins was using 12MB of memory, and local used 25-50 on top of that. I think its great, but Tasker seems to be more feature packed than locale.
Please note, it may be because I haven't set it up as well, but Tasker works quite differently. There is no "default" situation. after a "situation" (context in Tasker) is ended, it reverts settings to what they were before that context started. I had my dock set to turn the keylock off, and my headphones to turn it on, and no matter what order I ended those contexts, it always ended with the key lock off. however, If you use the variables tasks in Tasker, I think you can get around this. I do think this is however mainly due to how I have it set up.