Final Fantasy XV UNCOVERED!
Python (335 bytes)
t=raw_input().replace(*': ').split();x='PMCE'.index(t[2][0]);t[0]=int(t[0])+x;print '%s:%s PM PDT' % tuple(t[:1]);x=t[0]*60+int(t[1]);print ['%s minutes until the pre-show!'%(360-x),'Pre-show started %s minutes ago; UNCOVERED is starting in %s minutes!'%((x-360),(420-x)), 'UNCOVERED started %s minutes ago!'%(x-420)][(x>360)+(x>420)]
Output:
1:00 MDT
2:00 PM PDT
240 minutes until the pre-show!
6:00 CDT
8:00 PM PDT
UNCOVERED started 60 minutes ago!
6:50 PDT
6:50 PM PDT
Pre-show started 50 minutes ago; UNCOVERED is starting in 10 minutes!
Lua, 357 335 332 bytes
Thanks to @Katenkyo for chopping off 22 bytes.
Golfed:
h,m,t=(...):match("(%d+):(%d+) (.)")f=tonumber h=(f(h)-("PMCE"):find(t))%12+1m=f(m)print("It is "..h..":"..m.." PM PDT.")a=" minutes"b="UNCOVERED"n=(6-h)*60-m r=h<6 and n..a.." until the pre-show!"or h<7 and"Pre-show started "..m..a.." ago; "..b.." is starting in "..(n+60)..a.."!"or b.." started "..(m+(h-7)*60)..a.." ago!"print(r)
(Try it online)
Ungolfed:
n = "7:10 CST"
h,m,t = n:match("(%d+):(%d+) (.)")
h = (tonumber(h) - ("PMCE"):find(t))%12 + 1
m = tonumber(m)
print("It is "..h..":"..m.." PM PDT.")
n = (6-h)*60-m
if h<6 then
r=n.." minutes until the pre-show!"
elseif h<7 then
r="Pre-show started "..m.." minutes ago; UNCOVERED is starting in "..(n+60).." minutes!"
else
r="UNCOVERED started "..(m+(h-7)*60).." minutes ago!"
end
print(r)