diff --git a/Civi/DataProcessor/FieldOutputHandler/DateRangeFieldOutputHandler.php b/Civi/DataProcessor/FieldOutputHandler/DateRangeFieldOutputHandler.php
index ab17661e2d451178a191876942e9b5f3a00e3d35..e5a8501dc7ca33b23c0380db53b0dc3a4151ecf8 100644
--- a/Civi/DataProcessor/FieldOutputHandler/DateRangeFieldOutputHandler.php
+++ b/Civi/DataProcessor/FieldOutputHandler/DateRangeFieldOutputHandler.php
@@ -9,6 +9,7 @@ namespace Civi\DataProcessor\FieldOutputHandler;
 use CRM_Dataprocessor_ExtensionUtil as E;
 use Civi\DataProcessor\Source\SourceInterface;
 use Civi\DataProcessor\DataSpecification\FieldSpecification;
+use DateTime;
 
 class DateRangeFieldOutputHandler extends DateFieldOutputHandler {
 
@@ -36,6 +37,8 @@ class DateRangeFieldOutputHandler extends DateFieldOutputHandler {
    */
   protected $separator;
 
+  protected bool $omitEndDate = FALSE;
+
   /**
    * Initialize the processor
    *
@@ -49,6 +52,8 @@ class DateRangeFieldOutputHandler extends DateFieldOutputHandler {
     [$this->dataSourceDateEnd, $this->dateEnd] = $this->initializeField($configuration['date_end'], $configuration['date_end_datasource'], $alias . '_date_end');
     $this->formatDateOnly = isset($configuration['format_date_only']) ? $configuration['format_date_only'] : false;
     $this->separator = isset($configuration['separator']) ? $configuration['separator'] : false;
+
+    $this->omitEndDate = isset($configuration['omit_end_date_when_same_day']) ? $configuration['omit_end_date_when_same_day'] : FALSE;
   }
 
   /**
@@ -70,6 +75,8 @@ class DateRangeFieldOutputHandler extends DateFieldOutputHandler {
       'placeholder' => E::ts('- select -'),
     ));
 
+    $form->add('checkbox', 'omit_end_date_when_same_day', E::ts('Hide end date when same day'));
+
     $form->add('text', 'format_date_only', E::ts('Format date only'), array(
       'style' => 'min-width:250px',
       'class' => 'huge',
@@ -96,6 +103,10 @@ class DateRangeFieldOutputHandler extends DateFieldOutputHandler {
         }
       }
 
+      if (isset($configuration['omit_end_date_when_same_day'])) {
+        $defaults['omit_end_date_when_same_day'] = $configuration['omit_end_date_when_same_day'];
+      }
+
       $form->setDefaults($defaults);
     }
 
@@ -123,6 +134,8 @@ class DateRangeFieldOutputHandler extends DateFieldOutputHandler {
     $configuration['date_end'] = $field;
     $configuration['date_end_datasource'] = $datasource;
 
+    $configuration['omit_end_date_when_same_day'] = isset($submittedValues['omit_end_date_when_same_day']) ? $submittedValues['omit_end_date_when_same_day'] : FALSE;
+
     foreach (array('separator', 'format_date_only') as $key) {
       $configuration[$key] = isset($submittedValues[$key]) ? $submittedValues[$key] : false;
     }
@@ -140,21 +153,52 @@ class DateRangeFieldOutputHandler extends DateFieldOutputHandler {
    */
   public function formatField($rawRecord, $formattedRecord) {
     $output = new FieldOutput($rawRecord[$this->inputFieldSpec->alias]);
+
     $rawValue = $rawRecord[$this->inputFieldSpec->alias];
     if (($this->format || $this->formatDateOnly) && $rawValue) {
       $output->formattedValue = $this->formatHelper($rawValue);
     }
 
     $output2 = new FieldOutput($rawRecord[$this->dateEnd->alias]);
+
     $rawValue2 = $rawRecord[$this->dateEnd->alias];
     if ($rawValue2) {
       if ($this->format || $this->formatDateOnly) {
         $output2->formattedValue = $this->formatHelper($rawValue2);
       }
-      if ($this->separator) {
-        $output->formattedValue .= $this->separator;
+
+      $isSameDay = FALSE;
+      if ($this->omitEndDate && isset($output->rawValue)) {
+        $startDate = new DateTime($output->rawValue);
+        $startDay = $startDate->format('Y-m-d');
+
+        $endDate = new DateTime($rawValue2);
+        $endDay = $endDate->format('Y-m-d');
+
+        if ($startDay === $endDay) {
+          $isSameDay = TRUE;
+        }
+      }
+      if ($isSameDay) {
+        if ($this->formatDateOnly && str_ends_with($rawValue2, ' 00:00:00')) {
+          return $output;
+        }
+
+        // time separator
+        if ($this->separator) {
+          $output->formattedValue .= $this->separator;
+        }
+
+        $onlyTime = preg_replace('#.+(\d{2}:\d{2})([ A-Za-z]*)$#', '$1$2', $output2->formattedValue);
+        $output->formattedValue .= $onlyTime;
+      }
+      else {
+        if ($this->separator) {
+          $output->formattedValue .= $this->separator;
+        }
+
+        $output->formattedValue .= $output2->formattedValue;
       }
-      $output->formattedValue .= $output2->formattedValue;
     }
 
     return $output;
@@ -173,7 +217,7 @@ class DateRangeFieldOutputHandler extends DateFieldOutputHandler {
    * @throws \Exception
    */
   protected function formatHelper($raw_value) {
-    $date = new \DateTime($raw_value);
+    $date = new DateTime($raw_value);
     if ($this->formatDateOnly && str_ends_with($raw_value, ' 00:00:00')) {
       $format = $this->formatDateOnly;
     }
diff --git a/templates/CRM/Dataprocessor/Form/Field/Configuration/DateRangeFieldOutputHandler.tpl b/templates/CRM/Dataprocessor/Form/Field/Configuration/DateRangeFieldOutputHandler.tpl
index b289600bcb66ff968107609596fba2bbba65e4c2..781ae05dd86aa4bc1b22274105458615129ac0b0 100644
--- a/templates/CRM/Dataprocessor/Form/Field/Configuration/DateRangeFieldOutputHandler.tpl
+++ b/templates/CRM/Dataprocessor/Form/Field/Configuration/DateRangeFieldOutputHandler.tpl
@@ -17,6 +17,11 @@
     </div>
     <div class="clear"></div>
   </div>
+  <div class="crm-section">
+    <div class="label">{$form.omit_end_date_when_same_day.label}</div>
+    <div class="content">{$form.omit_end_date_when_same_day.html}</div>
+    <div class="clear"></div>
+  </div>
   <hr >
   <div class="crm-section">
     <div class="label">{$form.format_date_only.label}</div>