diff --git a/includes/date_api_filter_handler.inc b/includes/date_api_filter_handler.inc
index 5526c84..8544acb 100644
--- a/includes/date_api_filter_handler.inc
+++ b/includes/date_api_filter_handler.inc
@@ -72,6 +72,16 @@ class date_api_filter_handler extends views_handler_filter_numeric {
     return $options;
   }
 
+  function operators() {
+    $operators = parent::operators();
+    $operators['contains'] = array(
+      'title' => t('Contains'),
+      'short' => t('contains'),
+      'values' => 1,
+    );
+    return $operators;
+  }
+
   /**
    * Make sure our custom options get exported.
    * Handle the options we know about, pass the rest to the parent plugin.
@@ -464,6 +474,13 @@ class date_api_filter_handler extends views_handler_filter_numeric {
             $sql_parts[] = $this->date_filter('max', $query_field, '>');
             $sql = implode(' OR ', array_filter($sql_parts));
             break;
+          case 'contains':
+            $query_field['field']['fullname'] = str_replace($field['table_name'] .'_', $table_alias .'.', $field['fromto'][0]);
+            $sql_parts[] = $this->date_filter('value', $query_field, '<=');
+            $query_field['field']['fullname'] = str_replace($field['table_name'] .'_', $table_alias .'.', $field['fromto'][1]);
+            $sql_parts[] = $this->date_filter('value', $query_field, '>=');
+            $sql = implode(' AND ', array_filter($sql_parts));
+            break;
           default:
             $sql = $this->date_filter('value', $query_field, $this->operator);
             break;
