I use Ring Scheduler & Auto Ring ( by developer farproc ).
I typically do the following with Ring Scheduler.
Mon-Sun: 11:00pm turn the phone into silent mode.
Mon-Fri: 5:00am turn the phone into normal mode - I get up around 5:30am.
Sat-Sun: 8:30am turn the phone into normal mode.
Mon-Fri: 9:00am turn the phone into vibrate mode ( am in the office ).
Mon-Fri: 5:30pm turn the phone into normal mode ( am on the train home at this time ).
I use Auto Ring to automatically ring or sound notification for any contact starred in my phone contact list, regardless of what mode the phone is current in. It will resume the same mode after the call or notification has ended.
Both apps are free.
I use Juice Defender Ultimate to turn my smart phone into a phone and have it wake at certain times for 2 or 5 minutes to allow apps to sync. I also allow certain apps to override the JD settings.