diff --git a/date_admin.inc b/date_admin.inc
index ceac118..cc26f1d 100644
--- a/date_admin.inc
+++ b/date_admin.inc
@@ -466,6 +466,18 @@ function _date_field_settings_form($field, $instance, $has_data) {
       ),
     ),
   );
+  $form['todate_toggle'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Disable "Show End Date" checkbox'),
+    '#default_value' => isset($settings['todate_toggle']) ? $settings['todate_toggle'] : FALSE,
+    '#disabled' => $has_data,
+    '#description' => t('Shows (optional) end date instead of hiding it behind a toggle checkbox.'),
+    '#states' => array(
+      'invisible' => array(
+        'input[name="field[settings][enddate_get]"]' => array('checked' => FALSE),
+      ),
+    ),
+  );
   $description = t('Select the timezone handling method for this date field.');
   $form['tz_handling'] = array(
     '#type' => 'select',
diff --git a/date_api/date.css b/date_api/date.css
index 4fdbc08..9599cbf 100644
--- a/date_api/date.css
+++ b/date_api/date.css
@@ -216,7 +216,8 @@ div.date-calendar-day span.year {
 
 /* Admin styling */
 .form-item.form-item-instance-widget-settings-input-format-custom,
-.form-item.form-item-field-settings-enddate-required {
+.form-item.form-item-field-settings-enddate-required,
+.form-item.form-item-field-settings-todate-toggle {
   margin-left: 1.3em;
 }
 
diff --git a/date_elements.inc b/date_elements.inc
index 246d24c..dd374f3 100644
--- a/date_elements.inc
+++ b/date_elements.inc
@@ -297,7 +297,7 @@ function date_combo_element_process($element, &$form_state, $form) {
     '#type' => 'checkbox',
     '#default_value' => $show_todate,
     '#weight' => -20,
-    '#access' => $field['settings']['todate'] == 'optional',
+    '#access' => isset($field['settings']['todate_toggle']) ? empty($field['settings']['todate_toggle']) : $field['settings']['todate'] == 'optional',
     '#prefix' => '<div class="date-float">',
     '#suffix' => '</div>',
   );
