r"
#### NEGATIONS ####
#Busy ∂
\b(
#wrapper
(?:(?:from|is|i|am|at|on|it|do|to|for|a|make|the
|that|day|time|month|exactly
|call|meeting|lunch|breakfast|brunch)[ ])*
(?:
#negative words
(?:busy|can'?t|can[ ]?n?ot|unavailable|except)
#negated positive words
|(?:not|∆)[ ] (?:be|∆)?[ ]? (?:available|free|around|do|able)
)
#wrapper
[ ]?(?:(?:from|is|i|am|at|on|it|do|to|for|a|make|the
|that|day|time|month|exactly
|call|meeting|lunch|breakfast|brunch)[ ])*
#wrapper gets one free word
(?:[ ]? (?:\S+) [ ]?)?
#Repeat wrapper so free word can be anywhere in continuation
[ ]?(?:(?:from|is|i|am|at|on|it|do|to|for|a|make|the
|that|day|time|month|exactly
|call|meeting|lunch|breakfast|brunch)[ ])*
[ ]?(∂|then|at[ ]that[ ]time)
|
#∂ Busy
#reverse the above after everything else
∆
#am doing|at X at|on ∂
| ( ( (\b(?:am|are|will[ ]be)\b[ ])
(at|on|doing|\S+ing|OOO|out[ ]of[ ]office)[ ]
#"Have a" is a special case.