diff --git a/admin/splashify.admin.when.inc b/admin/splashify.admin.when.inc
index dcc6d2d..21a12a4 100644
--- a/admin/splashify.admin.when.inc
+++ b/admin/splashify.admin.when.inc
@@ -57,7 +57,35 @@ function splashify_admin_when_form($form, &$form_state) {
       'weekly' => t('Weekly'),
     ),
   );
-  
+
+  $form['desktop']['splashify_when_desktop_date_enable'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enable a start and end date'),
+    '#default_value' => variable_get('splashify_when_desktop_date_enable', FALSE),
+  );
+
+  $form['desktop']['splashify_when_desktop_date_start'] = array(
+    '#type' => 'date_select',
+    '#title' => t('What is the start date for this splash page?'),
+    '#default_value' => variable_get('splashify_when_desktop_date_start', date('Y-m-d H:i')),
+    '#states' => array(
+      'visible' => array(
+        ':input[name="splashify_when_desktop_date_enable"]' => array('checked' => TRUE),
+      )      
+    ),
+  );
+
+  $form['desktop']['splashify_when_desktop_date_end'] = array(
+    '#type' => 'date_select',
+    '#title' => t('What is an end date for this splash page?'),
+    '#default_value' => variable_get('splashify_when_desktop_date_end', date('Y-m-d H:i')),
+    '#states' => array(
+      'visible' => array(
+        ':input[name="splashify_when_desktop_date_enable"]' => array('checked' => TRUE),
+      )      
+    ),
+  );
+
   $form['roles'] = array(
     '#type' => 'fieldset',
     '#title' => t('Display for roles'),
@@ -128,6 +156,34 @@ function splashify_admin_when_form($form, &$form_state) {
         ),
       );
 
+      $form['mobile']['splashify_when_mobile_date_enable'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Enable a start and end date'),
+        '#default_value' => variable_get('splashify_when_mobile_date_enable', FALSE),
+      );
+
+      $form['mobile']['splashify_when_mobile_date_start'] = array(
+        '#type' => 'date_select',
+        '#title' => t('What is the start date for this splash page?'),
+        '#default_value' => variable_get('splashify_when_mobile_date_start', date('Y-m-d H:i')),
+        '#states' => array(
+          'visible' => array(
+            ':input[name="splashify_when_mobile_date_enable"]' => array('checked' => TRUE),
+          )      
+        ),
+      );
+
+      $form['mobile']['splashify_when_mobile_date_end'] = array(
+        '#type' => 'date_select',
+        '#title' => t('What is an end date for this splash page?'),
+        '#default_value' => variable_get('splashify_when_mobile_date_end', date('Y-m-d H:i')),
+        '#states' => array(
+          'visible' => array(
+            ':input[name="splashify_when_mobile_date_enable"]' => array('checked' => TRUE),
+          )      
+        ),
+      );
+
       $form['mobile']['options']['splashify_when_mobile_test'] = array(
         '#type' => 'checkbox',
         '#title' => t('Test Mobile'),
diff --git a/splashify.display.inc b/splashify.display.inc
index e74e8c2..cb7bbaa 100644
--- a/splashify.display.inc
+++ b/splashify.display.inc
@@ -35,6 +35,9 @@ function splashify_init() {
 
   $only_anonymous = $config['only_anonymous'];
   $when_frequency = $config['when_frequency'];
+  $when_date_enable = $config['when_date_enable'];
+  $when_start = $config['when_start'];
+  $when_end = $config['when_end'];
   $where_page = $config['where_page'];
   $where_listpages = $config['where_listpages'];
   $where_opposite = $config['where_opposite'];
@@ -139,10 +142,18 @@ function splashify_init() {
     $when_frequency = 'always';
   }
   elseif ($splash_correct_page) {
+    // If a date range is enabled, check that first.
+    if ($when_date_enable) {
+      $now = new DateTime();
+      $start = new DateTime($when_start);
+      $end = new DateTime($when_end);
+      $splash_display = ($now >= $start && $now <= $end);
+    }
+    else {
+      $splash_display = TRUE;
+    }
     // We need to show the splash page on this page. Do one last check.
     $parsed_url = parse_url($base_url);
-    // We passed all of the tests...display the splash page!
-    $splash_display = TRUE;
   }
 
   // If we shouldn't display the splash, end the code here.
@@ -389,6 +400,9 @@ function _splashify_get_config() {
 
       // Get the mobile admin settings.
       $when_frequency = variable_get('splashify_when_mobile_frequency', 'never');
+      $when_date_enable = variable_get('splashify_when_mobile_date_enable', FALSE);
+      $when_start = variable_get('splashify_when_mobile_date_start', date('Y-m-d H:i')); 
+      $when_end = variable_get('splashify_when_mobile_date_end', date('Y-m-d H:i')); 
       $where_page = variable_get('splashify_where_mobile_page', 'home');
       $where_listpages = variable_get('splashify_where_mobile_listpages', '');
       $where_opposite = variable_get('splashify_where_mobile_opposite', FALSE);
@@ -405,6 +419,9 @@ function _splashify_get_config() {
   if (!$do_mobile) {
     // Get the desktop admin settings.
     $when_frequency = variable_get('splashify_when_desktop_frequency', 'never');
+    $when_date_enable = variable_get('splashify_when_desktop_date_enable', FALSE);
+    $when_start = variable_get('splashify_when_desktop_date_start', date('Y-m-d H:i')); 
+    $when_end = variable_get('splashify_when_desktop_date_end', date('Y-m-d H:i')); 
     $where_page = variable_get('splashify_where_desktop_page', 'home');
     $where_listpages = variable_get('splashify_where_desktop_listpages', '');
     $where_opposite = variable_get('splashify_where_desktop_opposite', FALSE);
@@ -437,6 +454,9 @@ function _splashify_get_config() {
   return array(
     'only_anonymous' => $only_anonymous,
     'when_frequency' => $when_frequency,
+    'when_date_enable' => $when_date_enable,
+    'when_start' => $when_start,
+    'when_end' => $when_end,
     'when_mobile_test' => $force_mobile,
     'when_roles' => $when_roles,
     'when_roles_options' => $when_roles_options,
@@ -466,4 +486,4 @@ function splashify_display_ajax() {
 
   echo drupal_render(node_view($node, 'full'));
   drupal_exit();
-}
\ No newline at end of file
+}
diff --git a/splashify.install b/splashify.install
index ea76706..3f46395 100644
--- a/splashify.install
+++ b/splashify.install
@@ -75,6 +75,8 @@ function splashify_uninstall() {
 
   // Desktop variables.
   variable_del('splashify_when_desktop_frequency');
+  variable_del('splashify_when_desktop_date_start');
+  variable_del('splashify_when_desktop_date_end');
   variable_del('splashify_where_desktop_page');
   variable_del('splashify_where_desktop_listpages');
   variable_del('splashify_where_desktop_opposite');
@@ -87,9 +89,11 @@ function splashify_uninstall() {
   variable_del('splashify_when_roles_options');
 
   // Mobile variables.
-  variable_del('splashify_when_mobile');;
+  variable_del('splashify_when_mobile');
   variable_del('splashify_when_mobile_test');
   variable_del('splashify_when_mobile_frequency');
+  variable_del('splashify_when_mobile_date_start');
+  variable_del('splashify_when_mobile_date_end');
   variable_del('splashify_where_mobile_page');
   variable_del('splashify_where_mobile_listpages');
   variable_del('splashify_where_mobile_opposite');
@@ -97,4 +101,6 @@ function splashify_uninstall() {
   variable_del('splashify_what_mobile_content');
   variable_del('splashify_what_mobile_pagetitle');
   variable_del('splashify_how_mobile_mode');
+
+  variable_del('splashify_date_status');
 }
diff --git a/splashify.module b/splashify.module
index 147b5e3..52d208f 100644
--- a/splashify.module
+++ b/splashify.module
@@ -150,6 +150,43 @@ function splashify_libraries_info() {
 }
 
 /**
+ * Implements hook_cron().
+ */
+function splashify_cron() {
+  $config = _splashify_get_config();
+  // We don't need to run this script if there is no date range.
+  if (!$config['when_date_enable']) {
+    return;
+  }
+  $prev_status = variable_get('splashify_date_status', FALSE);
+  $now = new DateTime();
+  $start = new DateTime($config['when_start']);
+  $end = new DateTime($config['when_end']);
+  if ($now < $start) {
+    // If the date range hasn't started.
+    $new_status = 'not_started';
+  }
+  elseif ($now >= $start && $now < $end) {
+    // If we're already in the middle of the range.
+    $new_status = 'started';
+  }
+  elseif ($now >= $end) {
+    // If the end of the range has passed.
+    $new_status = 'ended';
+  }
+  if ($new_status != $prev_status) {
+    // Ensure the appropriate splash configuration is loaded.
+    cache_clear_all(NULL, 'page');
+    drupal_set_message(t('Status for splashify date set from !old to !new', array(
+      '!old' => $prev_status,
+      '!new' => $new_status,
+    )));
+    // Update the current status to reference on next cron run.
+    variable_set('splashify_date_status', $new_status);
+  }
+}
+
+/**
  * Gets the version of jStorage library.
  */
 function _splashify_jstorage_version($library, $version) {
