Do not Disturb Mode with some special conditions I am looking for a way to establish a "Do not Disturb" Mode (like on iOS) that does at least the following (on an unrooted phone):


Switches ringer and notifications to Silent (disable vibrate, vol = 0) during a special time
Lets repeated calls through (if anyone really wants to phone me)
Still allows the alarm clock to ring
Is disabled when phone is in use (e.g. display is active)
Manually enableable/disableable (for a specific time)


Cool would also be:


Enables only when I put the phone in the charger during the specific time
Does not enable when connected with my car via Bluetooth


Is there any way to achieve this? If not natively, maybe by using some application? My phone and tablet are unrooted.
It sounds like Agent fits the bill for you. Specifically, the Sleep Agent.

I do use the Agent app, though I don't use the Sleep Agent itself, so this list of features is just me going through the setup options in the app.


Set Days &amp; Times for it to activate. (defaults to 11:00 PM through 7:00 the next morning, Sunday through Thursday nights.)
Selectable whether it does 'Silence' or 'Vibrate'.
Has a whitelist of callers that are allowed to get through. (And selectable whether unknown callers get through or not.)
Can wait until plugged in before starting. 
Can auto-respond with a text saying "I'm sleeping, text 'urgent' to wake me up."
Right off your request list, it can allow repeated calls to get through.


(I use Agent mostly for the Meeting Agent: It links to the Google Calendar on my work account, and auto-silences the phone for the duration of the meeting.)