No extensibility framework would be complete without an event system. Events are used to reflect changes in internal state of the application, and track actions by the user. They can contain any information and additionally can be filtered based on the information itself. Special targets are used, as in the other plugin hooks, to hold this information.
Event managers are defined to contain the different event types that a given component can export. Only one event manager object is instantiated for each component, and each plugin listening to events from that component are registered on that event manager directly.
Events handlers have priorities, and can swallow events, allowing some level of complexity of event routing. This feature might not prove useful and may be removed in the future if it isn't.
Not sure if this fits here as such. Probably temporary placeholder.
<hook class="com.ximian.evolution.mail.events:1.0"> <event target="target name" id="event name" type="pass | sink" ? priority="signed integer" ? enable="target mask" ? handle="function spec"/> * </hook>