diff --git a/src/Aggregation/Bucketing/AutoDateHistogramAggregation.php b/src/Aggregation/Bucketing/AutoDateHistogramAggregation.php
new file mode 100644
index 0000000000000000000000000000000000000000..09489f275662bb57fe89946a5160cb2396471da6
--- /dev/null
+++ b/src/Aggregation/Bucketing/AutoDateHistogramAggregation.php
@@ -0,0 +1,69 @@
+<?php
+
+/*
+ * This file is part of the ONGR package.
+ *
+ * (c) NFQ Technologies UAB <info@nfq.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace ONGR\ElasticsearchDSL\Aggregation\Bucketing;
+
+use ONGR\ElasticsearchDSL\Aggregation\AbstractAggregation;
+use ONGR\ElasticsearchDSL\Aggregation\Type\BucketingTrait;
+use ONGR\ElasticsearchDSL\BuilderInterface;
+
+/**
+ * Class representing AutoDateHistogramAggregation.
+ *
+ * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-autodatehistogram-aggregation.html
+ */
+class AutoDateHistogramAggregation extends AbstractAggregation
+{
+    use BucketingTrait;
+
+    /**
+     * Inner aggregations container init.
+     *
+     * @param string $name
+     * @param string $field
+     * @param int    $buckets
+     * @param string $format
+     */
+    public function __construct($name, $field, $buckets = null, $format = null)
+    {
+        parent::__construct($name);
+
+        $this->setField($field);
+
+        if ($buckets)
+            $this->addParameter('buckets', $buckets);
+
+        if ($format)
+            $this->addParameter('format', $format);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getArray()
+    {
+        $data = array_filter(
+            [
+                'field' => $this->getField(),
+            ]
+        );
+
+        return $data;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getType()
+    {
+        return 'auto_date_histogram';
+    }
+}
diff --git a/tests/Unit/Aggregation/Bucketing/AudoDateHistogramAggregationTest.php b/tests/Unit/Aggregation/Bucketing/AudoDateHistogramAggregationTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..bece77d306e2ba2d714f4be7dfbc64292db0171e
--- /dev/null
+++ b/tests/Unit/Aggregation/Bucketing/AudoDateHistogramAggregationTest.php
@@ -0,0 +1,110 @@
+<?php
+
+/*
+ * This file is part of the ONGR package.
+ *
+ * (c) NFQ Technologies UAB <info@nfq.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace ONGR\ElasticsearchDSL\Tests\Unit\Bucketing\Aggregation;
+
+use ONGR\ElasticsearchDSL\Aggregation\Bucketing\AutoDateHistogramAggregation;
+use ONGR\ElasticsearchDSL\Aggregation\Bucketing\TermsAggregation;
+
+class AudoDateHistogramAggregationTest extends \PHPUnit\Framework\TestCase
+{
+    /**
+     * Tests agg.
+     */
+    public function testAutoDateHistogramAggregationSetField()
+    {
+        // Case #0 terms aggregation.
+        $aggregation = new AutoDateHistogramAggregation('test_agg', 'test_field');
+
+        $result = [
+            'auto_date_histogram' => ['field' => 'test_field'],
+        ];
+
+        $this->assertEquals($aggregation->toArray(), $result);
+    }
+
+    /**
+     * Tests setSize method.
+     */
+    public function testAutoDateHistogramAggregationFormat()
+    {
+        $date = '2020-12-25';
+        // Case #1
+        $aggregation = new AutoDateHistogramAggregation('test_agg', 'test_field');
+        $aggregation->addParameter('format', $date);
+
+        $result = [
+            'auto_date_histogram' => [
+                'field' => 'test_field',
+                'format' => $date,
+
+            ],
+        ];
+
+        $this->assertEquals($aggregation->toArray(), $result);
+
+        // Case #2
+        $aggregation = new AutoDateHistogramAggregation('test_agg', 'test_field', null, $date);
+
+        $result = [
+            'auto_date_histogram' => [
+                'field' => 'test_field',
+                'format' => $date,
+            ],
+        ];
+
+        $this->assertEquals($aggregation->toArray(), $result);
+    }
+
+    /**
+     * Tests buckets.
+     */
+    public function testAutoDateHistogramAggregationBuckets()
+    {
+        // Case #1
+        $aggregation = new AutoDateHistogramAggregation('test_agg', 'wrong_field');
+        $aggregation->setField('test_field');
+
+        $aggregation->addParameter('buckets', 5);
+
+        $result = [
+            'auto_date_histogram' => [
+                'field' => 'test_field',
+                'buckets' => 5,
+            ],
+        ];
+
+        $this->assertEquals($aggregation->toArray(), $result);
+
+        // Case #2
+        $aggregation = new AutoDateHistogramAggregation('test_agg', 'wrong_field', 5);
+        $aggregation->setField('test_field');
+
+        $result = [
+            'auto_date_histogram' => [
+                'field' => 'test_field',
+                'buckets' => 5,
+            ],
+        ];
+
+        $this->assertEquals($aggregation->toArray(), $result);
+    }
+
+    /**
+     * Tests getType method.
+     */
+    public function testAutoDateHistogramAggregationGetType()
+    {
+        $aggregation = new AutoDateHistogramAggregation('foo', 'bar');
+        $result = $aggregation->getType();
+        $this->assertEquals('auto_date_histogram', $result);
+    }
+}