It works if you assume that appointment 1 starts before appointment 2 starts (or if you explicitly sort them by start time).
e.g. in J:
'a b c' =: 50 60 3 4;3 50 49 99;2 10 10 12 NB. 3 different sets of appointments
3 :'ok`nope{~0>*./-~//./:~_2]\ y' every a;b;c
┌──┬────┬──┐
│ok│nope│ok│
└──┴────┴──┘