diff --git a/scheduler.admin.inc b/scheduler.admin.inc
index 8fad8e8..4600d73 100644
--- a/scheduler.admin.inc
+++ b/scheduler.admin.inc
@@ -250,7 +250,8 @@ function theme_scheduler_timecheck($variables) {
   global $user;
 
   $now = $variables['now'];
-  $date_default_timezone = variable_get('date_default_timezone', date_default_timezone_get());
+  //@todo revisit this when date module is being ported
+  $date_default_timezone = \Drupal::config('date')->get('default_timezone');
 
   $t_options = array(
     // For @utc specify 'GMT' as the timezone (4th parameter) so that no
@@ -271,7 +272,7 @@ function theme_scheduler_timecheck($variables) {
     . '<p>' . t('Your server\'s time is @utc. In most cases this should match <a href="https://www.google.com/search?q=Greenwich%20Mean%20Time">Greenwich Mean Time (GMT) / Coordinated Universal Time (UTC)</a>', $t_options) . '</p>'
     . '<p>' . t('The website default timezone is @date_default_timezone (@date_default_code) which is offset from GMT by @date_default_offset hours. This timezone can be <a href="@admin_regional_settings">changed by admin users</a> with the appropriate access.', $t_options) . '</p>';
 
-  if (variable_get('configurable_timezones', 1)) {
+  if (\Drupal::config('??')->get('configurable_timezones')) {
     $output .= '<p>' . t('Your local time is @localtime (@daylight_saving). You can change this via your <a href="@user_account">user account</a>.', $t_options) . '</p>';
     if (empty($user->timezone)) {
       $output .= '<p>' . t('Note: The user timezone has not been stored, so defaulting to the website timezone.') . '</p>';
diff --git a/scheduler.cron.inc b/scheduler.cron.inc
index 11db472..49ee897 100644
--- a/scheduler.cron.inc
+++ b/scheduler.cron.inc
@@ -54,11 +54,11 @@ function _scheduler_publish() {
     // Update timestamps.
     $n->changed = $n->publish_on;
     $old_creation_date = $n->created;
-    if (variable_get('scheduler_publish_touch_' . $n->type, 0) == 1) {
+    if (\Drupal::config('scheduler.schema')->get('publish_touch_' . $n->type))
       $n->created = $n->publish_on;
     }
 
-    $create_publishing_revision = variable_get('scheduler_publish_revision_' . $n->type, 0) == 1;
+    $create_publishing_revision = \Drupal::config('scheduler_schema')->get('scheduler_publish_revision_' . $n->type) == 1;
     if ($create_publishing_revision) {
       $n->revision = TRUE;
       // Use a core date format to guarantee a time is included.
@@ -151,7 +151,7 @@ function _scheduler_unpublish() {
     $old_change_date = $n->changed;
     $n->changed = $n->unpublish_on;
 
-    $create_unpublishing_revision = variable_get('scheduler_unpublish_revision_' . $n->type, 0) == 1;
+    $create_unpublishing_revision = \Drupal::config(scheduler.schema).get('scheduler_unpublish_revision_' . $n->type) == 1;
     if ($create_unpublishing_revision) {
       $n->revision = TRUE;
       // Use a core date format to guarantee a time is included.
diff --git a/scheduler.edit.inc b/scheduler.edit.inc
index 4ede51c..7f66e19 100644
--- a/scheduler.edit.inc
+++ b/scheduler.edit.inc
@@ -14,8 +14,8 @@
  * @see scheduler_form_alter()
  */
 function _scheduler_form_alter(&$form, $form_state) {
-  $publishing_enabled = variable_get('scheduler_publish_enable_' . $form['type']['#value'], 0) == 1;
-  $unpublishing_enabled = variable_get('scheduler_unpublish_enable_' . $form['type']['#value'], 0) == 1;
+  $publishing_enabled = \Drupal::config('scheduler.schema')->get('publish_enable_' . $form['type']['#value']) == 1;
+  $unpublishing_enabled = \Drupal::config('scheduler.schema')->get('unpublish_enable_' . $form['type']['#value']) == 1;
   $date_format = \Drupal::config('scheduler.settings')->get('date_format');
   $date_only_format = \Drupal::config('scheduler.settings')->get('date_only_format');
   $time_only_format = \Drupal::config('scheduler.settings')->get('time_only_format');
@@ -55,23 +55,23 @@ function _scheduler_form_alter(&$form, $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 = variable_get('scheduler_publish_required_' . $form['type']['#value'], 0) == 1
+  $publishing_required = \Drupal::config('scheduler.schema')->get('publish_required_' . $form['type']['#value']) == 1;
     && (empty($node->nid) || ($node->status == 0 && !empty($node->publish_on)));
 
   // 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 = variable_get('scheduler_unpublish_required_' . $form['type']['#value'], 0) == 1
+  $unpublishing_required = \Drupal::config('scheduler.schema')->get('unpublish_required_' . $form['type']['#value'], 0) == 1
     && (empty($node->nid) || $node->status == 1 || !empty($node->publish_on));
-
-  $use_vertical_tabs = variable_get('scheduler_use_vertical_tabs_' . $form['type']['#value'], 1);
+  //@todo investigate the vertical_tabs yml files
+  $use_vertical_tabs = \Drupal::config('vertical_tabs')->get('use_vertical_tabs_' . $form['type']['#value']);
   $fieldset_extended = (
     (isset($defaults->publish_on) && $defaults->publish_on != 0)
     || (isset($defaults->unpublish_on) && $defaults->unpublish_on != 0)
     || $publishing_required
     || $unpublishing_required
-    || variable_get('scheduler_expand_fieldset_' . $form['type']['#value'], 0)
-  );
+    //@todo find the location of yml
+    || \Drupal::config()->get('expand_fieldset_' . $form['type']['#value'])
 
   $form['scheduler_settings'] = array(
     '#type' => 'fieldset',
diff --git a/scheduler.module b/scheduler.module
index d629434..510bbc7 100644
--- a/scheduler.module
+++ b/scheduler.module
@@ -186,8 +186,8 @@ function scheduler_form_alter(&$form, $form_state) {
   // that the user has permission to use Scheduler.
   if (!empty($form['#node_edit_form']) && user_access('schedule (un)publishing of nodes')) {
     // Check if scheduling has been enabled for this node type.
-    $publishing_enabled = variable_get('scheduler_publish_enable_' . $form['type']['#value'], 0) == 1;
-    $unpublishing_enabled = variable_get('scheduler_unpublish_enable_' . $form['type']['#value'], 0) == 1;
+    $publishing_enabled = \Drupal::config('scheduler.schema')->get('publish_enable_' . $form['type']['#value']) == 1;
+    $unpublishing_enabled = \Drupal::config('scheduler.schema')->get('unpublish_enable_' . $form['type']['#value']) == 1;
     if ($publishing_enabled || $unpublishing_enabled) {
       module_load_include('inc', 'scheduler', 'scheduler.edit');
       _scheduler_form_alter($form, $form_state);
@@ -407,12 +407,6 @@ function scheduler_node_load($nodes, $types) {
     $nodes[$nid]->publish_on = $record->publish_on;
     $nodes[$nid]->unpublish_on = $record->unpublish_on;
     $row = array();
-    // @todo This seems unneeded and is confusing. It is not certain that this
-    //   node is either published or unpublished, probably it isn't or the
-    //   'publish_on' property wouldn't be set in the first place. Remove this
-    //   for the D8 version.
-    $row['published'] = $record->publish_on ? date(variable_get('date_format_long', 'l, F j, Y - H:i'), $record->publish_on) : NULL;
-    $row['unpublished'] = $record->unpublish_on ? date(variable_get('date_format_long', 'l, F j, Y - H:i'), $record->unpublish_on) : NULL;
     // Add duplicates of the scheduling properties on $node->scheduler for
     // backwards compatibility with the D5 and D6 versions of Scheduler. Please
     // do not rely on these properties in new code, access them directly on
@@ -461,7 +455,7 @@ function scheduler_node_validate($node, $form, &$form_state) {
     if ($publishtime === FALSE) {
       form_set_error('publish_on', t("The 'publish on' value does not match the expected format of %time", array('%time' => format_date(REQUEST_TIME, 'custom', $date_format))));
     }
-    elseif ($publishtime && variable_get('scheduler_publish_past_date_' . $node->type, 'error') == 'error' && $publishtime < REQUEST_TIME) {
+    elseif ($publishtime && \Drupal::config('scheduler.schema')->get('publish_past_date_' . $node->type) == 'error' && $publishtime < REQUEST_TIME) {
       form_set_error('publish_on', t("The 'publish on' date must be in the future"));
     }
   }
@@ -482,7 +476,7 @@ function scheduler_node_validate($node, $form, &$form_state) {
 
   // The unpublish-on 'required' form attribute may not be set in some cases,
   // but a value must be entered if also setting a publish-on date.
-  if (variable_get('scheduler_unpublish_required_' . $node->type) && !empty($node->publish_on) && empty($node->unpublish_on)) {
+  if (\Drupal::config('scheduler.schema')->get('unpublish_required_' . $node->type) && !empty($node->publish_on) && empty($node->unpublish_on)) {
     form_set_error('unpublish_on', t("If you set a 'publish-on' date then you must also set an 'unpublish-on' date."));
   }
 }
@@ -507,10 +501,10 @@ function scheduler_node_presave($node) {
     $publication_allowed = _scheduler_allow($node, 'publish');
 
     // Publish the node immediately if the publication date is in the past.
-    $publish_immediately = variable_get('scheduler_publish_past_date_' . $node->type, 'error') == 'publish';
+    $publish_immediately = \Drupal::config('scheduler.schema')->get('publish_past_date_' . $node->type) == 'publish';
     if ($publication_allowed && $publish_immediately && $node->publish_on <= REQUEST_TIME) {
       // If required, set the created date to match published date.
-      if (variable_get('scheduler_publish_touch_' . $node->type, 0) == 1) {
+      if (\Drupal::config('scheduler.schema')->('publish_touch_' . $node->type) == 1) {
         $node->created = $node->publish_on;
       }
       $node->publish_on = 0;
@@ -719,9 +713,10 @@ function scheduler_field_extra_fields() {
   $fields = array();
 
   foreach (node_type_get_types() as $type) {
-    $publishing_enabled = variable_get('scheduler_publish_enable_' . $type->type, 0);
-    $unpublishing_enabled = variable_get('scheduler_unpublish_enable_' . $type->type, 0);
-    $use_vertical_tabs = variable_get('scheduler_use_vertical_tabs_' . $type->type, 1);
+    $publishing_enabled = \Drupal::config('scheduler.schema')->get('publish_enable_' . $type->type);
+    $unpublishing_enabled = \Drupal::config('scheduler.schema')->get('unpublish_enable_' . $type->type);
+    //@todo vertical_tabs yaml files
+    $use_vertical_tabs = \Drupal::config('vertical_tabs')->get('use_vertical_tabs_' . $type->type);
 
     if (($publishing_enabled || $unpublishing_enabled) && !$use_vertical_tabs) {
       $fields['node'][$type->type]['form']['scheduler_settings'] = array(
@@ -759,8 +754,8 @@ function scheduler_preprocess_node(&$variables, $hook) {
 function scheduler_feeds_processor_targets_alter(&$targets, $entity_type, $bundle_name) {
   // Scheduler module only works on nodes.
   if ($entity_type == 'node') {
-    $publishing_enabled = variable_get('scheduler_publish_enable_' . $bundle_name, 0);
-    $unpublishing_enabled = variable_get('scheduler_unpublish_enable_' . $bundle_name, 0);
+    $publishing_enabled = \Drupal::config('scheduler_schema')->get('publish_enable_' . $bundle_name);
+    $unpublishing_enabled = \Drupal::config('scheduler_schema')->get('unpublish_enable_' . $bundle_name);
 
     if ($publishing_enabled) {
       $targets['publish_on'] = array(
@@ -831,13 +826,13 @@ function scheduler_i18n_sync_options($entity_type, $bundle_name) {
   if ($entity_type == 'node') {
     $options = array();
     // $bundle_name holds the content_type.
-    if (variable_get('scheduler_publish_enable_' . $bundle_name, 0)) {
+    if (\Drupal::config('scheduler.schema')->get('publish_enable_' . $bundle_name)) {
       $options['publish_on'] = array(
         'title' => t('Publish on'),
         'description' => t('Scheduler Publish date and time'),
       );
     }
-    if (variable_get('scheduler_unpublish_enable_' . $bundle_name, 0)) {
+    if (\Drupal::config('scheduler.schema')->get('unpublish_enable_' . $bundle_name)) {
       $options['unpublish_on'] = array(
         'title' => t('Unpublish on'),
         'description' => t('Scheduler Unpublish date and time'),
diff --git a/scheduler.rules.inc b/scheduler.rules.inc
index a5b1817..806e873 100644
--- a/scheduler.rules.inc
+++ b/scheduler.rules.inc
@@ -128,7 +128,7 @@ function scheduler_set_publish_date_action($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 (variable_get('scheduler_publish_enable_' . $node->type, 0)) {
+  if (\Drupal::config('scheduler.schema')->get('publish_enable_' . $node->type)) {
     $node->publish_on = $date;
     scheduler_node_presave($node);
     scheduler_node_update($node);
@@ -148,7 +148,7 @@ function scheduler_set_publish_date_action($node, $date) {
  *   The date for unpublishing, a unix timestamp integer.
  */
 function scheduler_set_unpublish_date_action($node, $date) {
-  if (variable_get('scheduler_unpublish_enable_' . $node->type, 0)) {
+  if (\Drupal::config('scheduler.schema')->get('unpublish_enable_' . $node->type)) {
     $node->unpublish_on = $date;
     scheduler_node_presave($node);
     scheduler_node_update($node);
@@ -166,7 +166,7 @@ function scheduler_set_unpublish_date_action($node, $date) {
  *   The node object from which to remove the publish_on date.
  */
 function scheduler_remove_publish_date_action($node) {
-  if (variable_get('scheduler_publish_enable_' . $node->type, 0)) {
+  if (\Drupal::config('scheduler.schema')->get('publish_enable_' . $node->type)) {
     $node->publish_on = 0;
     scheduler_node_presave($node);
     scheduler_node_update($node);
@@ -184,7 +184,7 @@ function scheduler_remove_publish_date_action($node) {
  *   The node object from which to remove the unpublish_on date.
  */
 function scheduler_remove_unpublish_date_action($node) {
-  if (variable_get('scheduler_unpublish_enable_' . $node->type, 0)) {
+  if (\Drupal::config('scheduler_schema')->get('unpublish_enable_' . $node->type)) {
     $node->unpublish_on = 0;
     scheduler_node_presave($node);
     scheduler_node_update($node);
@@ -239,7 +239,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) {
-  return (variable_get('scheduler_publish_enable_' . $node->type, 0) == 1);
+  return (\Drupal::config('scheduler.schema')->get('publish_enable_' . $node->type) == 1);
 }
 
 /**
@@ -251,7 +251,7 @@ function scheduler_condition_publishing_is_enabled($node) {
  *   TRUE if scheduled unpublishing is enabled for the node type, FALSE if not.
  */
 function scheduler_condition_unpublishing_is_enabled($node) {
-  return (variable_get('scheduler_unpublish_enable_' . $node->type, 0) == 1);
+  return (\Drupal::config('scheduler.schema')->get('unpublish_enable_' . $node->type) == 1);
 }
 
 /**
