List of events in core

System events

boot, system
first event triggered. Triggered before plugins have been loaded.
plugins_boot, system
triggered just after the plugins are loaded. Rarely used. init, system is used instead.
init, system
plugins tend to use this event for initialization (extending views, registering callbacks, etc.)

ready, system

pagesetup, system
called just before the first content is produced. Is triggered by elgg_view().
shutdown, system
triggered after the page has been sent to the user. Expensive operations could be done here and not make the user wait. Note: Depending upon your server configuration the PHP output might not be shown until after the process is completed. This means that any long-running processes will still delay the page load.

log, systemlog

upgrade, system

upgrade, upgrade

activate, plugin
return false to prevent activation of the plugin.
deactivate, plugin
return false to prevent deactivation of the plugin.
init:cookie, <name>
return false to override setting a cookie.

User events

login, user
triggered during login. Returning false prevents the user from logging
logout, user
triggered during logout. Returning false should prevent the user from logging out.
validate, user
when a user registers, the user’s account is disabled. This event is triggered to allow a plugin to determine how the user should be validated (for example, through an email with a validation link).
profileupdate, user
user has changed profile
profileiconupdate, user
user has changed profile icon
ban, user
return true to ban user
unban, user
return true to unban user

make_admin, user

remove_admin, user

Relationship events

create, <relationship>
called after the relationship has been created. Returning false deletes the relationship that was just created.
delete, <relationship>
called before the relationship is deleted. Return false to prevent it from being deleted.
join, group
user joined a group
leave, group
user left a group

Entity events

create, <entity type>
called for user, group, object, and site entities after creation. Return true or entity is deleted.
update, <entity type>
called after group update and return false to delete group. Called after object update and return false to delete the object. Called after site update and return false to delete site. Called after user update and returning false deletes the user. Called before entity update and returning false prevents update.
delete, <entity type>
called before entity deletion and returning false prevents deletion.
disable, <entity type>
return false to prevent disable
enable, <entity type>
return false to prevent enable

Metadata events

create, metadata
called after the metadata has been created. Return false to delete the metadata that was just created.
update, metadata
called after the metadata has been updated. Return false to delete the metadata. (That doesn’t sound like a good idea)
delete, metadata
called before metadata is deleted. Return false to prevent deletion.

Annotation events

annotate, <entity type>
called before the annotation has been created. Return false to prevent annotation of this entity.
create, annotation
called after the annotation has been created. Return false to delete the annotation.
update, annotation
called after the annotation has been updated. Return false to delete the annotation. (That doesn’t sound like a good idea)
delete, annotation
called before annotation is deleted. Return false to prevent deletion.

Notes

Because of bugs in the Elgg core, some events may be thrown more than once on the same action. update, object is an example of an event that is thrown twice.