Plug it back in tonight or this weekend
Python 2 - 164

from datetime import*
d,t=input().split('T')
y,m,d=map(int,d.split('-'))
t=int(t[:2])
print'OMOfinfd'[(1+((10&lt;t&lt;17)==(4&lt;m&lt;11)))*(date(y,m,d).weekday()&lt;5&lt;6&lt;t&lt;19)::3]




If needed, below is a explanation of the logic in the final line:

The final line prints a slice of 'OMOfinfd' depending on the evaluation of its conditionals. 


First, evaluate the operation 1+((10&lt;t&lt;17)==(4&lt;m&lt;11)).

If the XNOR between the conditions 10&lt;t&lt;17 and 4&lt;m&lt;11 is False, this will evaluate to 1+False =&gt; 1+0 =&gt; 1. Otherwise, the operation will evaluate to 1+True =&gt; 1+1 =&gt; 2.
Finally, multiply that result of the above operation by whether the day is a weekday and whether the time is between 6am-7pm.

If this is False, either the day is a weekend or the time is between 7pm-6am, and the result will be (1|2)*0 =&gt; 0. Otherwise the result will be (1|2)*1 =&gt; 1|2.


A result of 0 will print Off, 1 will print Mid, and 2 will print On.