---
title: "Event listening"
slug: "event-listening"
abstract: "Example of how an event is triggered."
---
# Event listening

You can create new event types that can be used for historical reporting. The creation of a new event type is initiated by the configuration of a [new trigger](https://doc.sitecore.com/ch/en/developers/cloud-dev/create-a-trigger.html "Create a trigger"). Relating a trigger with an action of type **Reporting channel** will create a new event type found in the event filter results of the **Chart** component.

> [!note]
> When a trigger reacts to an event, it only executes its actions if its conditions are met.

If you modify a relation between two entities, the change event is only produced on the changed entity's side. In other words, if a trigger condition is set to observe an entity's relation, the trigger *only* executes if the relation is updated from the referenced entity's side. This is important when configuring a trigger condition.

For example, to configure a trigger that executes each time an asset is removed from a collection, you set the trigger condition to observe the *M.Asset* entity definition, specifically the *CollectionToAsset* relation. In this case, if the asset is removed from the collection from the asset's side, the trigger executes; however, if the asset is removed from the collection's side, the trigger doesn't execute.

![A unidirectional relation between an asset and a collection.](https://doc.sitecore.com/api/markdown-image/ch/en/developers/cloud-dev/images/uni-directional_relation.png)

For a trigger to execute when an asset is removed from a collection, regardless of the source of change, the trigger condition must include both the *M.Asset* entity definition and the *M.Collection* entity definition, each specifying the *CollectionToAsset* relation.

![A bi-directional relation between an asset and a collection.](https://doc.sitecore.com/api/markdown-image/ch/en/developers/cloud-dev/images/bi-directional_relation.png)

Some properties such as `CalculatedStartDate`, `CalculatedStopDate`, `CalculatedDuration`, and `CalculatedPercentage` are updated automatically in response to predecessor-related changes when task dependencies are involved.

During these high-volume dependency-driven recalculations, trigger execution and command handlers are disabled, and the update is recorded as the `PropertiesUpdatedInBulk` audit event type.