Currently when creating actions for internal events, it is not possible to include the maintenance status in the conditions for that action, unlike for trigger based events. This is a problem since this means we get a bunch of high priority alerts when maintenance is performed.
To give a little background: we have a host-group representing set of servers, where the actual servers are dynamically started and stopped according to load; a separate job takes care of detecting stopped hosts an marking them as not-monitored. Now, we need an alert if the number of servers ever goes to 0. For that we have a health item on each server (1 = healthy, 0 = bad), and then an aggregate host with an item grpsum["<host-group-of-the-servers>", <health-item>, last, 0], as well as a trigger on this grpsum item. The trigger will fire if all hosts have a health of 0 and there is at least one host; but if there are no (monitored) hosts in the host-group (all machines were stopped) then the grpsum item unfortunately goes into "not supported" state. Hence a separate action has been set up for this internal event. And just like actions for trigger based events, we need to be able to suppress this action when the host-group is put into maintenance.