diff --git a/scheduler.admin.inc b/scheduler.admin.inc
index 7ed60d2..29cbf40 100644
--- a/scheduler.admin.inc
+++ b/scheduler.admin.inc
@@ -38,12 +38,12 @@ function _scheduler_form_node_type_form_alter(array &$form, FormStateInterface $
   $form['scheduler']['publish']['scheduler_publish_enable'] = array(
     '#type' => 'checkbox',
     '#title' => t('Enable scheduled publishing for this content type'),
-    '#default_value' => $type->getThirdPartySetting('scheduler', 'publish_enable', FALSE),
+    '#default_value' => $type->getThirdPartySetting('scheduler', 'publish_enable', SCHEDULER_DEFAULT_PUBLISH_ENABLE),
   );
   $form['scheduler']['publish']['scheduler_publish_touch'] = array(
     '#type' => 'checkbox',
     '#title' => t('Change content creation time to match the scheduled publish time'),
-    '#default_value' => $type->getThirdPartySetting('scheduler', 'publish_touch', FALSE),
+    '#default_value' => $type->getThirdPartySetting('scheduler', 'publish_touch', SCHEDULER_DEFAULT_PUBLISH_TOUCH),
     '#states' => array(
       'visible' => array(
         ':input[name="scheduler_publish_enable"]' => array('checked' => TRUE),
@@ -53,7 +53,7 @@ function _scheduler_form_node_type_form_alter(array &$form, FormStateInterface $
   $form['scheduler']['publish']['scheduler_publish_required'] = array(
     '#type' => 'checkbox',
     '#title' => t('Require scheduled publishing'),
-    '#default_value' => $type->getThirdPartySetting('scheduler', 'publish_required', FALSE),
+    '#default_value' => $type->getThirdPartySetting('scheduler', 'publish_required', SCHEDULER_DEFAULT_PUBLISH_REQUIRED),
     '#states' => array(
       'visible' => array(
         ':input[name="scheduler_publish_enable"]' => array('checked' => TRUE),
@@ -63,7 +63,7 @@ function _scheduler_form_node_type_form_alter(array &$form, FormStateInterface $
   $form['scheduler']['publish']['scheduler_publish_revision'] = array(
     '#type' => 'checkbox',
     '#title' => t('Create a new revision on publishing'),
-    '#default_value' => $type->getThirdPartySetting('scheduler', 'publish_revision', FALSE),
+    '#default_value' => $type->getThirdPartySetting('scheduler', 'publish_revision', SCHEDULER_DEFAULT_PUBLISH_REVISION),
     '#states' => array(
       'visible' => array(
         ':input[name="scheduler_publish_enable"]' => array('checked' => TRUE),
@@ -102,12 +102,12 @@ function _scheduler_form_node_type_form_alter(array &$form, FormStateInterface $
   $form['scheduler']['unpublish']['scheduler_unpublish_enable'] = array(
     '#type' => 'checkbox',
     '#title' => t('Enable scheduled unpublishing for this content type'),
-    '#default_value' => $type->getThirdPartySetting('scheduler', 'unpublish_enable', FALSE),
+    '#default_value' => $type->getThirdPartySetting('scheduler', 'unpublish_enable', SCHEDULER_DEFAULT_UNPUBLISH_ENABLE),
   );
   $form['scheduler']['unpublish']['scheduler_unpublish_required'] = array(
     '#type' => 'checkbox',
     '#title' => t('Require scheduled unpublishing'),
-    '#default_value' => $type->getThirdPartySetting('scheduler', 'unpublish_required', FALSE),
+    '#default_value' => $type->getThirdPartySetting('scheduler', 'unpublish_required', SCHEDULER_DEFAULT_UNPUBLISH_REQUIRED),
     '#states' => array(
       'visible' => array(
         ':input[name="scheduler_unpublish_enable"]' => array('checked' => TRUE),
@@ -117,7 +117,7 @@ function _scheduler_form_node_type_form_alter(array &$form, FormStateInterface $
   $form['scheduler']['unpublish']['scheduler_unpublish_revision'] = array(
     '#type' => 'checkbox',
     '#title' => t('Create a new revision on unpublishing'),
-    '#default_value' => $type->getThirdPartySetting('scheduler', 'unpublish_revision', FALSE),
+    '#default_value' => $type->getThirdPartySetting('scheduler', 'unpublish_revision', SCHEDULER_DEFAULT_UNPUBLISH_REVISION),
     '#states' => array(
       'visible' => array(
         ':input[name="scheduler_unpublish_enable"]' => array('checked' => TRUE),
diff --git a/scheduler.cron.inc b/scheduler.cron.inc
index 9a7eed7..ee69e4c 100644
--- a/scheduler.cron.inc
+++ b/scheduler.cron.inc
@@ -50,7 +50,7 @@ function _scheduler_publish() {
   foreach ($nodes as $nid => $node) {
     // The API calls could return nodes of types which are not enabled for
     // scheduled publishing. Do not process these.
-    if (!$node->type->entity->getThirdPartySetting('scheduler', 'publish_enable', FALSE)) {
+    if (!$node->type->entity->getThirdPartySetting('scheduler', 'publish_enable', SCHEDULER_DEFAULT_PUBLISH_ENABLE)) {
       throw new SchedulerNodeTypeNotEnabledException(sprintf("Node %d '%s' will not be published because node type '%s' is not enabled for scheduled publishing", $node->id(), $node->getTitle(), node_get_type_label($node)));
       continue;
     }
@@ -76,11 +76,11 @@ function _scheduler_publish() {
     $publish_on = $node->publish_on->value;
     $node->set('changed', $publish_on);
     $old_creation_date = $node->getCreatedTime();
-    if ($node->type->entity->getThirdPartySetting('scheduler', 'publish_touch', FALSE)) {
+    if ($node->type->entity->getThirdPartySetting('scheduler', 'publish_touch', SCHEDULER_DEFAULT_PUBLISH_TOUCH)) {
       $node->setCreatedTime($publish_on);
     }
 
-    $create_publishing_revision = $node->type->entity->getThirdPartySetting('scheduler', 'publish_revision', FALSE);
+    $create_publishing_revision = $node->type->entity->getThirdPartySetting('scheduler', 'publish_revision', SCHEDULER_DEFAULT_PUBLISH_REVISION);
     if ($create_publishing_revision) {
       $node->setNewRevision();
       // Use a core date format to guarantee a time is included.
@@ -158,7 +158,7 @@ function _scheduler_unpublish() {
   foreach ($nodes as $nid => $node) {
     // The API calls could return nodes of types which are not enabled for
     // scheduled unpublishing. Do not process these.
-    if (!$node->type->entity->getThirdPartySetting('scheduler', 'unpublish_enable', FALSE)) {
+    if (!$node->type->entity->getThirdPartySetting('scheduler', 'unpublish_enable', SCHEDULER_DEFAULT_UNPUBLISH_ENABLE)) {
       throw new SchedulerNodeTypeNotEnabledException(sprintf("Node %d '%s' will not be unpublished because node type '%s' is not enabled for scheduled unpublishing", $node->id(), $node->getTitle(), node_get_type_label($node)));
       continue;
     }
@@ -193,7 +193,7 @@ function _scheduler_unpublish() {
     $unpublish_on = $node->unpublish_on->value;
     $node->set('changed', $unpublish_on);
 
-    $create_unpublishing_revision = $node->type->entity->getThirdPartySetting('scheduler', 'unpublish_revision', FALSE);
+    $create_unpublishing_revision = $node->type->entity->getThirdPartySetting('scheduler', 'unpublish_revision', SCHEDULER_DEFAULT_UNPUBLISH_REVISION);
     if ($create_unpublishing_revision) {
       $node->setNewRevision();
       // Use a core date format to guarantee a time is included.
diff --git a/scheduler.module b/scheduler.module
index 0679442..94b8e5b 100644
--- a/scheduler.module
+++ b/scheduler.module
@@ -17,6 +17,7 @@ use Drupal\Core\Routing\RouteMatchInterface;
 
 // @todo Move constants into a class, so we do not pollute the global space,
 // and use them like this, for example: SchedulerApi::MY_CONSTANT.
+// @see https://www.drupal.org/node/2682579
 
 // The default format to use if no custom format has been configured.
 define('SCHEDULER_DATE_FORMAT', 'Y-m-d H:i:s');
@@ -35,9 +36,16 @@ define('SCHEDULER_TIME_LETTERS', 'hHgGisaA');
 
 // Specify defaults for the per-content-type settings. These should be used as
 // a consistent third parameter for calls to getThirdPartySetting().
-define('SCHEDULER_DEFAULT_PUBLISH_PAST_DATE', 'error');
-define('SCHEDULER_DEFAULT_FIELDS_DISPLAY_MODE', 'vertical_tab');
 define('SCHEDULER_DEFAULT_EXPAND_FIELDSET', 'when_required');
+define('SCHEDULER_DEFAULT_FIELDS_DISPLAY_MODE', 'vertical_tab');
+define('SCHEDULER_DEFAULT_PUBLISH_ENABLE', FALSE);
+define('SCHEDULER_DEFAULT_PUBLISH_PAST_DATE', 'error');
+define('SCHEDULER_DEFAULT_PUBLISH_REQUIRED', FALSE);
+define('SCHEDULER_DEFAULT_PUBLISH_REVISION', FALSE);
+define('SCHEDULER_DEFAULT_PUBLISH_TOUCH', FALSE);
+define('SCHEDULER_DEFAULT_UNPUBLISH_ENABLE', FALSE);
+define('SCHEDULER_DEFAULT_UNPUBLISH_REQUIRED', FALSE);
+define('SCHEDULER_DEFAULT_UNPUBLISH_REVISION', FALSE);
 
 /**
  * Implements hook_help().
@@ -85,8 +93,8 @@ function scheduler_form_node_form_alter(&$form, FormStateInterface $form_state)
   $date_formatter = \Drupal::service('date.formatter');
   /** @var \Drupal\node\NodeTypeInterface $type */
   $type = $form_state->getFormObject()->getEntity()->type->entity;
-  $publishing_enabled = $type->getThirdPartySetting('scheduler', 'publish_enable', FALSE);
-  $unpublishing_enabled = $type->getThirdPartySetting('scheduler', 'unpublish_enable', FALSE);
+  $publishing_enabled = $type->getThirdPartySetting('scheduler', 'publish_enable', SCHEDULER_DEFAULT_PUBLISH_ENABLE);
+  $unpublishing_enabled = $type->getThirdPartySetting('scheduler', 'unpublish_enable', SCHEDULER_DEFAULT_UNPUBLISH_ENABLE);
   $use_vertical_tabs = $type->getThirdPartySetting('scheduler', 'fields_display_mode', SCHEDULER_DEFAULT_FIELDS_DISPLAY_MODE) === 'vertical_tab';
 
   $date_format = \Drupal::config('scheduler.settings')->get('date_format');
@@ -99,13 +107,13 @@ function scheduler_form_node_form_alter(&$form, FormStateInterface $form_state)
 
   // A publish_on date is required if the content type option is set and the
   // node is being created or it currently has a scheduled publishing date.
-  $publishing_required = $type->getThirdPartySetting('scheduler', 'publish_required', FALSE)
+  $publishing_required = $type->getThirdPartySetting('scheduler', 'publish_required', SCHEDULER_DEFAULT_PUBLISH_REQUIRED)
     && ($node->isNew() || (!$node->isPublished() && !empty($node->publish_on->value)));
 
   // An unpublish_on date is required if the content type option is set and the
   // node is being created or the current status is published or the node is
   // scheduled to be published.
-  $unpublishing_required = $type->getThirdPartySetting('scheduler', 'unpublish_required', FALSE) && ($node->isNew() || $node->isPublished() || !empty($node->publish_on->value));
+  $unpublishing_required = $type->getThirdPartySetting('scheduler', 'unpublish_required', SCHEDULER_DEFAULT_UNPUBLISH_REQUIRED) && ($node->isNew() || $node->isPublished() || !empty($node->publish_on->value));
 
   // If either publishing or unpublishing is enabled, provide a field group to
   // wrap the scheduling fields.
@@ -318,7 +326,7 @@ function scheduler_node_validate($node, array $form, FormStateInterface $form_st
 function scheduler_node_presave(EntityInterface $node) {
   $entity = $node->type->entity;
   // If the node type is not enabled for Scheduler then do nothing.
-  if (!$entity->getThirdPartySetting('scheduler', 'publish_enable', FALSE)) {
+  if (!$entity->getThirdPartySetting('scheduler', 'publish_enable', SCHEDULER_DEFAULT_PUBLISH_ENABLE)) {
     return;
   };
 
@@ -331,7 +339,7 @@ function scheduler_node_presave(EntityInterface $node) {
 
     if ($publication_allowed && $publish_immediately && $node->publish_on->value <= REQUEST_TIME) {
       // If required, set the created date to match published date.
-      if ($entity->getThirdPartySetting('scheduler', 'publish_touch', 0)) {
+      if ($entity->getThirdPartySetting('scheduler', 'publish_touch', SCHEDULER_DEFAULT_PUBLISH_TOUCH)) {
         $node->setCreatedTime($node->publish_on->value);
       }
       $node->publish_on->value = NULL;
@@ -466,9 +474,8 @@ function scheduler_entity_extra_field_info() {
   // works for vertical tabs and separate fieldsets.
   $fields = array();
   foreach (node_type_get_types() as $type) {
-    // @todo change the FALSE to SCHEDULER_DEFAULT_... when https://www.drupal.org/node/2633870 lands.
-    $publishing_enabled = $type->getThirdPartySetting('scheduler', 'publish_enable', FALSE);
-    $unpublishing_enabled = $type->getThirdPartySetting('scheduler', 'unpublish_enable', FALSE);
+    $publishing_enabled = $type->getThirdPartySetting('scheduler', 'publish_enable', SCHEDULER_DEFAULT_PUBLISH_ENABLE);
+    $unpublishing_enabled = $type->getThirdPartySetting('scheduler', 'unpublish_enable', SCHEDULER_DEFAULT_UNPUBLISH_ENABLE);
 
     if ($publishing_enabled || $unpublishing_enabled) {
       $fields['node'][$type->get('type')]['form']['scheduler_settings'] = array(
@@ -514,8 +521,8 @@ function scheduler_preprocess_node(&$variables) {
 function scheduler_feeds_processor_targets_alter(&$targets, $entity_type, $bundle_name) {
   // Scheduler module only works on nodes.
   if ($entity_type == 'node') {
-    $publishing_enabled = $entity_type->getThirdPartySetting('scheduler', 'publish_enable', 0);
-    $unpublishing_enabled = $entity_type->getThirdPartySetting('scheduler', 'unpublish_enable', 0);
+    $publishing_enabled = $entity_type->getThirdPartySetting('scheduler', 'publish_enable', SCHEDULER_DEFAULT_PUBLISH_ENABLE);
+    $unpublishing_enabled = $entity_type->getThirdPartySetting('scheduler', 'unpublish_enable', SCHEDULER_DEFAULT_UNPUBLISH_ENABLE);
 
     if ($publishing_enabled) {
       $targets['publish_on'] = array(
diff --git a/scheduler.rules.inc b/scheduler.rules.inc
index b3419df..883e0fd 100644
--- a/scheduler.rules.inc
+++ b/scheduler.rules.inc
@@ -131,7 +131,7 @@ function scheduler_set_publish_date_action(Node $node, $date) {
   // hook_node_presave() and hook_node_update() will be executed anyway. But if
   // this action is being used to schedule a different node then we need to call
   // the functions directly here.
-  if ($node->type->entity->getThirdPartySetting('scheduler', 'publish_enable')) {
+  if ($node->type->entity->getThirdPartySetting('scheduler', 'publish_enable', SCHEDULER_DEFAULT_PUBLISH_ENABLE)) {
     $node->publish_on->value = $date;
     scheduler_node_presave($node);
     scheduler_node_update($node);
@@ -152,7 +152,7 @@ function scheduler_set_publish_date_action(Node $node, $date) {
  *   The date for unpublishing, a unix timestamp integer.
  */
 function scheduler_set_unpublish_date_action(Node $node, $date) {
-  if ($node->type->entity->getThirdPartySetting('scheduler', 'unpublish_enable')) {
+  if ($node->type->entity->getThirdPartySetting('scheduler', 'unpublish_enable', SCHEDULER_DEFAULT_UNPUBLISH_ENABLE)) {
     $node->unpublish_on->value = $date;
     scheduler_node_presave($node);
     scheduler_node_update($node);
@@ -173,7 +173,7 @@ function scheduler_set_unpublish_date_action(Node $node, $date) {
  *   The node object from which to remove the publish_on date.
  */
 function scheduler_remove_publish_date_action(Node $node) {
-  if ($node->type->entity->getThirdPartySetting('scheduler', 'publish_enable')) {
+  if ($node->type->entity->getThirdPartySetting('scheduler', 'publish_enable', SCHEDULER_DEFAULT_PUBLISH_ENABLE)) {
     $node->publish_on->value = NULL;
     scheduler_node_presave($node);
     scheduler_node_update($node);
@@ -194,7 +194,7 @@ function scheduler_remove_publish_date_action(Node $node) {
  *   The node object from which to remove the unpublish_on date.
  */
 function scheduler_remove_unpublish_date_action(Node $node) {
-  if ($node->type->entity->getThirdPartySetting('scheduler', 'unpublish_enable')) {
+  if ($node->type->entity->getThirdPartySetting('scheduler', 'unpublish_enable', SCHEDULER_DEFAULT_UNPUBLISH_ENABLE)) {
     $node->unpublish_on->value = NULL;
     scheduler_node_presave($node);
     scheduler_node_update($node);
@@ -252,7 +252,7 @@ function scheduler_rules_condition_info() {
  *   TRUE if scheduled publishing is enabled for the node type, FALSE if not.
  */
 function scheduler_condition_publishing_is_enabled(Node $node) {
-  return ($node->type->entity->getThirdPartySetting('scheduler', 'publish_enable', 0));
+  return ($node->type->entity->getThirdPartySetting('scheduler', 'publish_enable', SCHEDULER_DEFAULT_PUBLISH_ENABLE));
 }
 
 /**
@@ -264,7 +264,7 @@ function scheduler_condition_publishing_is_enabled(Node $node) {
  *   TRUE if scheduled unpublishing is enabled for the node type, FALSE if not.
  */
 function scheduler_condition_unpublishing_is_enabled(Node $node) {
-  return ($node->type->entity->getThirdPartySetting('scheduler', 'unpublish_enable', 0));
+  return ($node->type->entity->getThirdPartySetting('scheduler', 'unpublish_enable', SCHEDULER_DEFAULT_UNPUBLISH_ENABLE));
 }
 
 /**
diff --git a/src/Plugin/Validation/Constraint/SchedulerUnpublishOnConstraintValidator.php b/src/Plugin/Validation/Constraint/SchedulerUnpublishOnConstraintValidator.php
index 16d8691..2ad4c3d 100644
--- a/src/Plugin/Validation/Constraint/SchedulerUnpublishOnConstraintValidator.php
+++ b/src/Plugin/Validation/Constraint/SchedulerUnpublishOnConstraintValidator.php
@@ -19,7 +19,7 @@ class SchedulerUnpublishOnConstraintValidator extends ConstraintValidator {
    * {@inheritdoc}
    */
   public function validate($entity, Constraint $constraint) {
-    $scheduler_unpublish_required = $entity->getEntity()->type->entity->getThirdPartySetting('scheduler', 'unpublish_required');
+    $scheduler_unpublish_required = $entity->getEntity()->type->entity->getThirdPartySetting('scheduler', 'unpublish_required', SCHEDULER_DEFAULT_UNPUBLISH_REQUIRED);
     $publish_on = $entity->getEntity()->publish_on->value;
     $unpublish_on = $entity->value;
 
