diff --git a/src/Event/TermReferenceTreeTermsEvent.php b/src/Event/TermReferenceTreeTermsEvent.php
new file mode 100644
index 0000000..17a6147
--- /dev/null
+++ b/src/Event/TermReferenceTreeTermsEvent.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace Drupal\term_reference_tree\Event;
+
+use Drupal\Component\EventDispatcher\Event;
+
+/**
+ * Term reference tree terms event.
+ */
+class TermReferenceTreeTermsEvent extends Event {
+
+  /**
+   * Term recerence tree event name.
+   */
+  const EVENT_NAME = 'term_reference_tree_terms';
+
+  /**
+   * Terms.
+   *
+   * @var array
+   */
+  public array $terms;
+
+  /**
+   * Term reference tree terms event constructor.
+   *
+   * @param array $terms
+   *   Terms.
+   */
+  public function __construct(array $terms) {
+    $this->terms = $terms;
+  }
+
+  /**
+   * Get terms.
+   *
+   * @return array
+   *   Terms.
+   */
+  public function getTerms(): array {
+    return $this->terms;
+  }
+
+  /**
+   * Set terms.
+   *
+   * @param array $terms
+   *   Terms.
+   */
+  public function setTerms(array $terms) {
+    $this->terms = $terms;
+  }
+
+}
diff --git a/term_reference_tree.module b/term_reference_tree.module
index 9e5e870..d16a452 100644
--- a/term_reference_tree.module
+++ b/term_reference_tree.module
@@ -10,6 +10,7 @@ use Drupal\Core\Render\Element;
 use Drupal\Core\Template\Attribute;
 use Drupal\taxonomy\Entity\Term;
 use Drupal\taxonomy\TermInterface;
+use Drupal\term_reference_tree\Event\TermReferenceTreeTermsEvent;
 use Drupal\term_reference_tree\Plugin\Field\FieldWidget\TermReferenceTree;
 
 /**
@@ -219,6 +220,11 @@ function template_preprocess_checkbox_tree_label(array &$variables) {
 function _term_reference_tree_get_term_hierarchy($tid, $vid, array &$allowed, $filter, $label, array $default = []) {
   $terms = _term_reference_tree_get_children($tid, $vid);
 
+  $event = new TermReferenceTreeTermsEvent($terms);
+  $event_dispatcher = \Drupal::service('event_dispatcher');
+  $event_dispatcher->dispatch($event, TermReferenceTreeTermsEvent::EVENT_NAME);
+  $terms = $event->getTerms();
+
   $result = [];
 
   if ($filter != '') {
