Alter dummy content created with Devel Generate

Use this pattern with entity hooks to check if the entity is created with Devel Generate.

function calendar_custom_node_presave(\Drupal\Core\Entity\EntityInterface $entity) {
  $devel_generate = \Drupal::moduleHandler()->moduleExists('devel_generate');

  // Check for devel_generate details.
  if ($devel_generate && isset($entity->devel_generate)) {
    // List of date fields to check.
    $date_fields = ['field_date', 'field_posted', 'field_event_date', 'field_datetime_range', 'field_smart_date'];

    // Reference current date and "2 months ago" marker.
    $now = new \Drupal\Core\Datetime\DrupalDateTime();
    $two_months_ago = clone $now;
    $two_months_ago->modify('-2 months');

    foreach ($date_fields as $field_name) {
      if ($entity->hasField($field_name) && !$entity->get($field_name)->isEmpty()) {
        $date_value = (int) $entity->get($field_name)->first()->getValue()['value'];

        if ($field_name == 'field_smart_date') {
          $date = new \Drupal\Core\Datetime\DrupalDateTime('@' . $date_value);
        }
        else {
          $date = new \Drupal\Core\Datetime\DrupalDateTime($date_value);
        }

        if ($date < $two_months_ago) {
          $date->modify('+1 year');
        }

        $start_date = $date->format('Y-m-d\TH:i:s');
        $date->modify('+1 hour');
        $end_date = $date->format('Y-m-d\TH:i:s');
        $entity->set($field_name, ['value' => $start_date, 'end_value' => $end_date]);
      }
    }
  }
}