diff --git a/modules/recurring_events_registration/config/install/recurring_events_registration.registrant.config.yml b/modules/recurring_events_registration/config/install/recurring_events_registration.registrant.config.yml
index 7be14970cc0aeb39e47a3ef9c37c65c7949fa3b2..9c2befa1889720cf9d005d63e168c29ddb345c20 100644
--- a/modules/recurring_events_registration/config/install/recurring_events_registration.registrant.config.yml
+++ b/modules/recurring_events_registration/config/install/recurring_events_registration.registrant.config.yml
@@ -1,4 +1,6 @@
 show_capacity: true
+insert_redirect_choice: current
+insert_redirect_other: ''
 use_admin_theme: false
 limit: 10
 date_format: 'F jS, Y h:iA'
diff --git a/modules/recurring_events_registration/config/schema/recurring_events_registration.schema.yml b/modules/recurring_events_registration/config/schema/recurring_events_registration.schema.yml
index 10022f2ac8c57110223ad0a8e1c0465f64e6433b..4382c197d7881c7d2a0b943203714154e58f8a18 100644
--- a/modules/recurring_events_registration/config/schema/recurring_events_registration.schema.yml
+++ b/modules/recurring_events_registration/config/schema/recurring_events_registration.schema.yml
@@ -5,6 +5,12 @@ recurring_events_registration.registrant.config:
     show_capacity:
       type: boolean
       label: 'Whether to display the remaining capacity for an event during registration'
+    insert_redirect_choice:
+      type: radios
+      label: 'Choose where registrant form redirects'
+    insert_redirect_other:
+      type: url
+      label: 'Type custom URL here'
     use_admin_theme:
       type: boolean
       label: 'Use the administration theme when managing registrations'
diff --git a/modules/recurring_events_registration/recurring_events_registration.install b/modules/recurring_events_registration/recurring_events_registration.install
index bd92862b8df37f119605d80447fb8527e5dc0421..e950bff77b0fe3dd7fff605c83f16cc4888300bf 100644
--- a/modules/recurring_events_registration/recurring_events_registration.install
+++ b/modules/recurring_events_registration/recurring_events_registration.install
@@ -514,3 +514,13 @@ function recurring_events_registration_update_8010() {
   $config->set('use_admin_theme', FALSE);
   $config->save();
 }
+
+/**
+ * Set the default redirection after registration.
+ */
+function recurring_events_registration_update_8011() {
+  $config = \Drupal::configFactory()->getEditable('recurring_events_registration.registrant.config');
+  $config->set('insert_redirect_choice', 'current');
+  $config->set('insert_redirect_other', '');
+  $config->save();
+}
diff --git a/modules/recurring_events_registration/src/Form/RegistrantForm.php b/modules/recurring_events_registration/src/Form/RegistrantForm.php
index 2a777c48965990f91b84d1bfb4a64c69e7970533..3a12cf0591e6a8b03d401fb21a0fa9ff99d3a79e 100644
--- a/modules/recurring_events_registration/src/Form/RegistrantForm.php
+++ b/modules/recurring_events_registration/src/Form/RegistrantForm.php
@@ -20,6 +20,7 @@ use Drupal\Component\Datetime\TimeInterface;
 use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
 use Drupal\content_moderation\ModerationInformation;
 use Drupal\Component\Render\FormattableMarkup;
+use Drupal\Core\Routing\TrustedRedirectResponse;
 use Drupal\recurring_events_registration\NotificationService;
 
 /**
@@ -546,7 +547,27 @@ class RegistrantForm extends ContentEntityForm {
       $this->messenger->addMessage(new FormattableMarkup($this->notificationService->parseTokenizedString($message), []));
     }
 
-    $form_state->setRedirectUrl(Url::fromRoute('<current>'));
+    $redirect_choice = $this->config('recurring_events_registration.registrant.config')->get('insert_redirect_choice');
+    switch ($redirect_choice) {
+
+      case 'instance':
+        $form_state->setRedirect('entity.eventinstance.canonical', ['eventinstance' => $event_instance->id()]);
+        break;
+
+      case 'series':
+        $form_state->setRedirect('entity.eventseries.canonical', ['eventseries' => $event_series->id()]);
+        break;
+
+      case 'other':
+        $url = $this->config('recurring_events_registration.registrant.config')->get('insert_redirect_other');
+        $response = new TrustedRedirectResponse(Url::fromUri($url)->toString());
+        $form_state->setResponse($response);
+        break;
+
+      default:
+        $form_state->setRedirectUrl(Url::fromRoute('<current>'));
+        break;
+    }
 
     // @todo Remove when https://www.drupal.org/node/3173241 drops.
     if ($this->moderationInformation) {
diff --git a/modules/recurring_events_registration/src/Form/RegistrantSettingsForm.php b/modules/recurring_events_registration/src/Form/RegistrantSettingsForm.php
index 113aa2173fca1f6fe6fcb996fc9823c488738c75..c493770fa3466503a41300148681f95daf3a575d 100644
--- a/modules/recurring_events_registration/src/Form/RegistrantSettingsForm.php
+++ b/modules/recurring_events_registration/src/Form/RegistrantSettingsForm.php
@@ -111,6 +111,8 @@ class RegistrantSettingsForm extends ConfigFormBase {
   public function submitForm(array &$form, FormStateInterface $form_state) {
     $config = $this->config('recurring_events_registration.registrant.config')
       ->set('show_capacity', $form_state->getValue('show_capacity'))
+      ->set('insert_redirect_choice', $form_state->getValue('insert_redirect_choice'))
+      ->set('insert_redirect_other', $form_state->getValue('insert_redirect_other'))
       ->set('use_admin_theme', $form_state->getValue('use_admin_theme'))
       ->set('limit', $form_state->getValue('limit'))
       ->set('date_format', $form_state->getValue('date_format'))
@@ -172,6 +174,32 @@ class RegistrantSettingsForm extends ConfigFormBase {
       '#default_value' => $config->get('show_capacity'),
     ];
 
+    $form['process']['insert_redirect_choice'] = [
+      '#type' => 'radios',
+      '#title' => $this->t('Choose where registrant form redirects'),
+      '#default_value' => $config->get('insert_redirect_choice'),
+      '#options' => [
+        'current' => $this->t('Current page where form appears'),
+        'instance' => $this->t('Event instance page'),
+        'series' => $this->t('Event series page'),
+        'other' => $this->t('Custom URL'),
+      ],
+    ];
+
+    $form['process']['insert_redirect_other'] = [
+      '#type' => 'url',
+      '#title' => $this->t('Type custom URL here'),
+      '#default_value' => $config->get('insert_redirect_other'),
+      '#states' => [
+        'visible' => [
+          ':input[name="insert_redirect_choice"]' => ['value' => 'other'],
+        ],
+        'required' => [
+          ':input[name="insert_redirect_choice"]' => ['value' => 'other'],
+        ],
+      ],
+    ];
+
     $form['display'] = [
       '#type' => 'details',
       '#title' => $this->t('Registrant Display'),