diff --git a/Classes/Controller/LatestController.php b/Classes/Controller/LatestController.php
index d08977f29f5e6a5141837fd18deb49709e38a8b9..2221c06038c42a287cf6438602945f7fe830ee95 100644
--- a/Classes/Controller/LatestController.php
+++ b/Classes/Controller/LatestController.php
@@ -28,6 +28,7 @@ namespace SGalinski\SgNews\Controller;
 
 use SGalinski\SgNews\Domain\Model\Category;
 use SGalinski\SgNews\Domain\Model\News;
+use SGalinski\SgNews\Service\ConfigurationService;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
@@ -60,11 +61,15 @@ class LatestController extends AbstractController {
 	 * @return void
 	 * @throws \InvalidArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
+	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
 	 */
 	public function indexAction(array $newsMetaData = [], $offset = 0) {
 		$limit = ((int) $this->settings['limit']);
 		$limit = ($limit < 1 ? 1 : $limit);
 
+		$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
+		$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
+
 		$categoryUids = GeneralUtility::intExplode(',', $this->settings['categories'], TRUE);
 		$tagUids = GeneralUtility::intExplode(',', $this->settings['tags'], TRUE);
 		if ((int) $GLOBALS['TSFE']->page['doktype'] === 117 && !count($categoryUids)) {
@@ -74,7 +79,7 @@ class LatestController extends AbstractController {
 		$startTime = (int) $this->settings['starttime'];
 		$endTime = (int) $this->settings['endtime'];
 		$latestNewsEntries = $this->newsRepository->findLastUpdatedOrHighlightedNewsByCategories(
-			$limit, FALSE, $categoryUids, $offset, TRUE, $this->settings['sortBy'], $tagUids, $startTime, $endTime
+			$limit, FALSE, $categoryUids, $offset, TRUE, $sortBy, $tagUids, $startTime, $endTime
 		);
 
 		$categories = [];
@@ -102,7 +107,7 @@ class LatestController extends AbstractController {
 		if (count($newsMetaData) < $limit) {
 			$offset += $limit;
 			$maxCount = $this->newsRepository->getCountOfLastUpdatedOrHighlightedNewsByCategories(
-				FALSE, $categoryUids, TRUE, $this->settings['sortBy'], $tagUids, $startTime, $endTime
+				FALSE, $categoryUids, TRUE, $sortBy, $tagUids, $startTime, $endTime
 			);
 			if ($offset < $maxCount) {
 				$this->indexAction($newsMetaData, $offset);
diff --git a/Classes/Controller/ListByCategoryController.php b/Classes/Controller/ListByCategoryController.php
index 677a1b1f770a4f16aa0ed8ea972649e8004b1c88..48a1997b8cc37cef9408e96b3d5719f76aa9cc5e 100644
--- a/Classes/Controller/ListByCategoryController.php
+++ b/Classes/Controller/ListByCategoryController.php
@@ -27,8 +27,10 @@ namespace SGalinski\SgNews\Controller;
  ***************************************************************/
 
 use SGalinski\SgNews\Domain\Model\News;
+use SGalinski\SgNews\Service\ConfigurationService;
 use SGalinski\SgNews\Service\HeaderMetaDataService;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
 
 /**
  * Controller that handles the list rendering of a single category
@@ -72,6 +74,7 @@ class ListByCategoryController extends AbstractController {
 	 * @return void
 	 * @throws \InvalidArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
+	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
 	 */
 	public function indexAction(array $newsMetaData = [], $currentPageBrowserPage = 0) {
 		$filterByCategories = FALSE;
@@ -104,9 +107,14 @@ class ListByCategoryController extends AbstractController {
 		$headerSet = FALSE;
 		$offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage);
 
+		$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
+		$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
+		$sortDirection = $configurationService->getConfiguration('sortDirection', $this->settings);
+
 		$news = $this->newsRepository->findAllSortedNewsByCategories(
-			$categoryUids, $newsPerPage, $offset, $this->settings['sortBy'], $tagUids, $startTime, $endTime
+			$categoryUids, $newsPerPage, $offset, $sortBy, $tagUids, $startTime, $endTime, $sortDirection
 		)->toArray();
+
 		foreach ($news as $newsEntry) {
 			/** @var News $newsEntry */
 			$data = $this->getMetaDataForNews($newsEntry, $categories[$newsEntry->getPid()]);
diff --git a/Classes/Controller/OverviewController.php b/Classes/Controller/OverviewController.php
index 00fada20cc522b274ae140b70741d9d3d2e05689..12c71ffc841ab5cb8e658c497b4063d6cc418d56 100644
--- a/Classes/Controller/OverviewController.php
+++ b/Classes/Controller/OverviewController.php
@@ -29,6 +29,7 @@ namespace SGalinski\SgNews\Controller;
 use SGalinski\SgNews\Domain\Model\Category;
 use SGalinski\SgNews\Domain\Model\Tag;
 use SGalinski\SgNews\Domain\Model\News;
+use SGalinski\SgNews\Service\ConfigurationService;
 use SGalinski\SgNews\Service\HeaderMetaDataService;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Persistence\Generic\Query;
@@ -78,6 +79,7 @@ class OverviewController extends AbstractController {
 	 * @throws \InvalidArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
+	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
 	 */
 	public function overviewAction(array $newsFilter = [], $currentPageBrowserPage = 0) {
 		switch ((int) $this->settings['groupBy']) {
@@ -138,6 +140,7 @@ class OverviewController extends AbstractController {
 	 * @return void
 	 * @throws \InvalidArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
+	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
 	 */
 	protected function overviewWithCategories(
 		array $newsByCategory = [], array $allNews = [], array $newsFilter = [], $currentPageBrowserPage = 0
@@ -157,6 +160,10 @@ class OverviewController extends AbstractController {
 		$startTime = (int) $this->settings['starttime'];
 		$endTime = (int) $this->settings['endtime'];
 
+		$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
+		$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
+		$sortDirection = $configurationService->getConfiguration('sortDirection', $this->settings);
+
 		$categoryIds = [];
 		$categoriesById = [];
 		$newsMetaData = [];
@@ -171,7 +178,7 @@ class OverviewController extends AbstractController {
 				$tagIds = [(int) $newsFilter['tag']];
 			}
 			$news = $this->newsRepository->findAllSortedNewsByCategories(
-				[$categoryId], $newsLimitPerCategory, $offset, $this->settings['sortBy'], $tagIds, $startTime, $endTime
+				[$categoryId], $newsLimitPerCategory, $offset, $sortBy, $tagIds, $startTime, $endTime, $sortDirection
 			);
 			$newsMetaData[$categoryId] = [];
 			foreach ($news as $newsEntry) {
@@ -218,7 +225,7 @@ class OverviewController extends AbstractController {
 			$tagIds = [(int) $newsFilter['tag']];
 		}
 		$news = $this->newsRepository->findAllSortedNewsByCategories(
-			$categoryIds, $newsLimitPerCategory, $offset, $this->settings['sortBy'], $tagIds, $startTime, $endTime
+			$categoryIds, $newsLimitPerCategory, $offset, $sortBy, $tagIds, $startTime, $endTime, $sortDirection
 		);
 
 		foreach ($news as $newsEntry) {
@@ -279,6 +286,7 @@ class OverviewController extends AbstractController {
 	 * @return void
 	 * @throws \InvalidArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
+	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
 	 */
 	protected function overviewWithTags(
 		array $newsByTag = [], array $allNews = [], array $newsFilter = [], $currentPageBrowserPage = 0
@@ -292,6 +300,10 @@ class OverviewController extends AbstractController {
 			$tagPid = $GLOBALS['TSFE']->id;
 		}
 
+		$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
+		$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
+		$sortDirection = $configurationService->getConfiguration('sortDirection', $this->settings);
+
 		$categoryIds = NULL;
 		if ($newsFilter['category']) {
 			$categoryIds = [(int) $newsFilter['category']];
@@ -317,7 +329,7 @@ class OverviewController extends AbstractController {
 			$tagsById[$tagId] = $tag;
 
 			$news = $this->newsRepository->findAllSortedNewsByCategories(
-				$categoryIds, $newsLimitPerTag, $offset, $this->settings['sortBy'], [$tagId], $startTime, $endTime
+				$categoryIds, $newsLimitPerTag, $offset, $sortBy, [$tagId], $startTime, $endTime, $sortDirection
 			);
 			$newsMetaData[$tagId] = [];
 			foreach ($news as $newsEntry) {
@@ -362,7 +374,7 @@ class OverviewController extends AbstractController {
 
 		// Get all news by tags.
 		$news = $this->newsRepository->findAllSortedNewsByCategories(
-			$categoryIds, $newsLimitPerTag, $offset, $this->settings['sortBy'], $tagIds, $startTime, $endTime
+			$categoryIds, $newsLimitPerTag, $offset, $sortBy, $tagIds, $startTime, $endTime, $sortDirection
 		);
 		foreach ($news as $newsEntry) {
 			/** @var News $newsEntry */
@@ -435,6 +447,7 @@ class OverviewController extends AbstractController {
 	 * @throws \InvalidArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException
+	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
 	 */
 	protected function overviewWithoutCategoriesAction(
 		array $newsMetaData = [], array $newsFilter = NULL, $currentPageBrowserPage = 0
@@ -445,6 +458,10 @@ class OverviewController extends AbstractController {
 		$this->view->assign('selectedTag', $selectedTag);
 		$this->view->assign('selectedCategory', $selectedCategory);
 
+		$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
+		$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
+		$sortDirection = $configurationService->getConfiguration('sortDirection', $this->settings);
+
 		$newsPerPage = (int) $this->settings['newsLimit'];
 		$offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage);
 
@@ -496,7 +513,7 @@ class OverviewController extends AbstractController {
 		}
 
 		$news = $this->newsRepository->findAllSortedNewsByCategories(
-			$categoryIds, $newsPerPage, $offset, $this->settings['sortBy'], $tagIds, $startTime, $endTime
+			$categoryIds, $newsPerPage, $offset, $sortBy, $tagIds, $startTime, $endTime, $sortDirection
 		);
 		foreach ($news as $newsEntry) {
 			/** @var News $newsEntry */
diff --git a/Classes/Domain/Model/News.php b/Classes/Domain/Model/News.php
index 3944542967daf96383ddaf40f98c563e21ede650..38ae88a755db598228c2b101e2af1cc9b1bf9588 100644
--- a/Classes/Domain/Model/News.php
+++ b/Classes/Domain/Model/News.php
@@ -59,6 +59,11 @@ class News extends CategoryAndNews {
 	 */
 	protected $lastUpdated;
 
+	/**
+	 * @var \DateTime
+	 */
+	protected $dateEnd;
+
 	/**
 	 * @var \DateTime
 	 */
@@ -145,6 +150,20 @@ class News extends CategoryAndNews {
 		return $this->lastUpdated;
 	}
 
+	/**
+	 * @return \DateTime
+	 */
+	public function getDateEnd() {
+		return $this->dateEnd;
+	}
+
+	/**
+	 * @param \DateTime $dateEnd
+	 */
+	public function setDateEnd(\DateTime $dateEnd) {
+		$this->dateEnd = $dateEnd;
+	}
+
 	/**
 	 * @param \DateTime $creationDate
 	 * @return void
diff --git a/Classes/Domain/Repository/NewsRepository.php b/Classes/Domain/Repository/NewsRepository.php
index 2112ac5e72cfff72f9530f1a19d862b971bffa4d..f931fea680c847d7b584c47d6da4f5079ed81697 100644
--- a/Classes/Domain/Repository/NewsRepository.php
+++ b/Classes/Domain/Repository/NewsRepository.php
@@ -45,12 +45,13 @@ class NewsRepository extends AbstractRepository {
 	 * @param array $tagIds NULL, if the tag filter isn't applied, otherwise an array with the tag uids.
 	 * @param int $startTime unix timestamp of the lower limit of the news results date
 	 * @param int $endTime unix timestamp of the upper limit of the news results date
+	 * @param string $sortDirection either DESC or ASC
 	 * @return QueryResultInterface
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
 	 */
 	public function findAllSortedNewsByCategories(
 		array $categoryIds = NULL, $limit = 0, $offset = 0, $sortBy = 'date', array $tagIds = NULL,
-		$startTime = 0, $endTime = 0
+		$startTime = 0, $endTime = 0, $sortDirection = 'DESC'
 	): QueryResultInterface {
 		$query = $this->createQuery();
 
@@ -97,17 +98,23 @@ class NewsRepository extends AbstractRepository {
 			$query->setOffset($offset);
 		}
 
+		if ($sortDirection === 'ASC') {
+			$order = QueryInterface::ORDER_ASCENDING;
+		} else {
+			$order = QueryInterface::ORDER_DESCENDING;
+		}
+
 		if ($sortBy === 'date') {
 			$query->setOrderings(
 				[
-					'lastUpdated' => QueryInterface::ORDER_DESCENDING,
-					'crdate' => QueryInterface::ORDER_DESCENDING,
+					'lastUpdated' => $order,
+					'crdate' => $order,
 				]
 			);
 		} else {
 			$query->setOrderings(
 				[
-					'sorting' => QueryInterface::ORDER_ASCENDING,
+					'sorting' => $order,
 					'lastUpdated' => QueryInterface::ORDER_DESCENDING,
 					'crdate' => QueryInterface::ORDER_DESCENDING,
 				]
diff --git a/Classes/Service/ConfigurationService.php b/Classes/Service/ConfigurationService.php
new file mode 100644
index 0000000000000000000000000000000000000000..6d97ba2e7e918db947c94714b286133f15c2b4bf
--- /dev/null
+++ b/Classes/Service/ConfigurationService.php
@@ -0,0 +1,66 @@
+<?php
+
+namespace SGalinski\SgNews\Service;
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) sgalinski Internet Services (https://www.sgalinski.de)
+ *
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+use TYPO3\CMS\Core\SingletonInterface;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Extbase\Configuration\ConfigurationManager;
+use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
+use TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException;
+
+/**
+ * This service provides helper function for dealing with plugin configuration
+ */
+class ConfigurationService implements SingletonInterface {
+
+	/**
+	 * @var array
+	 */
+	protected $tsConfig;
+
+	/**
+	 * Returns the desired config value either from TypoScript settings or flexform config
+	 * If the user set 'System default' in the flexform, the value will be fetched from TS
+	 *
+	 * @param string $key
+	 * @param array $settings
+	 * @throws InvalidConfigurationTypeException
+	 * @return string
+	 */
+	public function getConfiguration($key, array $settings): string {
+		if (!$this->tsConfig) {
+			$configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class);
+			$this->tsConfig = $configurationManager->getConfiguration(ConfigurationManagerInterface::CONFIGURATION_TYPE_FULL_TYPOSCRIPT);
+		}
+		if ($settings[$key] === 'typoscript') {
+			$setting = $this->tsConfig['plugin.']['tx_sgnews.']['settings.'][$key];
+		} else {
+			$setting = $settings[$key];
+		}
+		return $setting;
+	}
+}
diff --git a/Configuration/FlexForms/Latest.xml b/Configuration/FlexForms/Latest.xml
index 2a2864db9d0468ee7d81ebbf8b89a9ce502427ab..d6609204b59dd493fa8fd4626f27cef193d3a325 100644
--- a/Configuration/FlexForms/Latest.xml
+++ b/Configuration/FlexForms/Latest.xml
@@ -79,6 +79,29 @@
 							</config>
 						</TCEforms>
 					</settings.endtime>
+
+					<settings.sortBy>
+						<TCEforms>
+							<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortBy</label>
+							<config>
+								<type>select</type>
+								<items>
+									<numIndex index="0">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
+										<numIndex index="1">typoscript</numIndex>
+									</numIndex>
+									<numIndex index="1">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.dateOfPublication</numIndex>
+										<numIndex index="1">date</numIndex>
+									</numIndex>
+									<numIndex index="2">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.orderInPageTree</numIndex>
+										<numIndex index="1">positionInTree</numIndex>
+									</numIndex>
+								</items>
+							</config>
+						</TCEforms>
+					</settings.sortBy>
 				</el>
 			</ROOT>
 		</main>
diff --git a/Configuration/FlexForms/ListByCategory.xml b/Configuration/FlexForms/ListByCategory.xml
index 4d49f27a429d193d149020d51f54caef47c760dd..a47efa178d7edd427b6bfc8502568cae31252979 100644
--- a/Configuration/FlexForms/ListByCategory.xml
+++ b/Configuration/FlexForms/ListByCategory.xml
@@ -79,6 +79,52 @@
 							</config>
 						</TCEforms>
 					</settings.endtime>
+
+					<settings.sortBy>
+						<TCEforms>
+							<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortBy</label>
+							<config>
+								<type>select</type>
+								<items>
+									<numIndex index="0">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
+										<numIndex index="1">typoscript</numIndex>
+									</numIndex>
+									<numIndex index="1">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.dateOfPublication</numIndex>
+										<numIndex index="1">date</numIndex>
+									</numIndex>
+									<numIndex index="2">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.orderInPageTree</numIndex>
+										<numIndex index="1">positionInTree</numIndex>
+									</numIndex>
+								</items>
+							</config>
+						</TCEforms>
+					</settings.sortBy>
+
+					<settings.sortDirection>
+						<TCEforms>
+							<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortOrder</label>
+							<config>
+								<type>select</type>
+								<items>
+									<numIndex index="0">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
+										<numIndex index="1">typoscript</numIndex>
+									</numIndex>
+									<numIndex index="1">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.desc</numIndex>
+										<numIndex index="1">DESC</numIndex>
+									</numIndex>
+									<numIndex index="2">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.asc</numIndex>
+										<numIndex index="1">ASC</numIndex>
+									</numIndex>
+								</items>
+							</config>
+						</TCEforms>
+					</settings.sortDirection>
 				</el>
 			</ROOT>
 		</main>
diff --git a/Configuration/FlexForms/Overview.xml b/Configuration/FlexForms/Overview.xml
index 379596990bcc564c23866cf043f704fe61f315ab..e6be473e90db4036244386b6fc7aecff7a41f568 100644
--- a/Configuration/FlexForms/Overview.xml
+++ b/Configuration/FlexForms/Overview.xml
@@ -82,6 +82,50 @@
 							</config>
 						</TCEforms>
 					</settings.endtime>
+					<settings.sortBy>
+						<TCEforms>
+							<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortBy</label>
+							<config>
+								<type>select</type>
+								<items>
+									<numIndex index="0">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
+										<numIndex index="1">typoscript</numIndex>
+									</numIndex>
+									<numIndex index="1">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.dateOfPublication</numIndex>
+										<numIndex index="1">date</numIndex>
+									</numIndex>
+									<numIndex index="2">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.orderInPageTree</numIndex>
+										<numIndex index="1">positionInTree</numIndex>
+									</numIndex>
+								</items>
+							</config>
+						</TCEforms>
+					</settings.sortBy>
+					<settings.sortDirection>
+						<TCEforms>
+							<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortOrder</label>
+							<config>
+								<type>select</type>
+								<items>
+									<numIndex index="0">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
+										<numIndex index="1">typoscript</numIndex>
+									</numIndex>
+									<numIndex index="1">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.desc</numIndex>
+										<numIndex index="1">DESC</numIndex>
+									</numIndex>
+									<numIndex index="2">
+										<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.asc</numIndex>
+										<numIndex index="1">ASC</numIndex>
+									</numIndex>
+								</items>
+							</config>
+						</TCEforms>
+					</settings.sortDirection>
 				</el>
 			</ROOT>
 		</main>
diff --git a/Configuration/TCA/Overrides/pages.php b/Configuration/TCA/Overrides/pages.php
index 81adb3e946c35e91e86435ec88787f02b7878252..53593f06a21287a9b21c7621efa56f8fd48b57ed 100644
--- a/Configuration/TCA/Overrides/pages.php
+++ b/Configuration/TCA/Overrides/pages.php
@@ -314,6 +314,17 @@ call_user_func(
 						'default' => $GLOBALS['EXEC_TIME'],
 					]
 				],
+				'tx_sgnews_date_end' => [
+					'exclude' => TRUE,
+					'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_date_end',
+					'config' => [
+						'type' => 'input',
+						'size' => '13',
+						'max' => '20',
+						'eval' => 'datetime',
+						'default' => $GLOBALS['EXEC_TIME'],
+					]
+				],
 				'tx_sgnews_location' => [
 					'exclude' => TRUE,
 					'label' => $localLangDbPath . $table . '.tx_sgnews_location',
@@ -342,7 +353,8 @@ call_user_func(
 			author;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:' . $table . '.author_formlabel,
 			author_email;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:' . $table . '.author_email_formlabel,
 			--linebreak--, lastUpdated;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:' . $table . '.lastUpdated_formlabel,
-			tx_sgnews_likes,--linebreak--,tx_sgnews_location',
+			tx_sgnews_date_end,
+			--linebreak--,tx_sgnews_likes,--linebreak--,tx_sgnews_location',
 			'canNotCollapse' => 1,
 		];
 
diff --git a/Configuration/TypoScript/Common/setup.typoscript b/Configuration/TypoScript/Common/setup.typoscript
index 2d416af6267d8f40fef20c890d1d121df4f001c9..4b35b59e307ddc2e01989c09f4cd6571907ac046 100644
--- a/Configuration/TypoScript/Common/setup.typoscript
+++ b/Configuration/TypoScript/Common/setup.typoscript
@@ -17,6 +17,7 @@ config.tx_extbase {
 						tx_sgnews_tags.mapOnProperty = tags
 						tx_sgnews_likes.mapOnProperty = likes
 						tx_sgnews_location.mapOnProperty = location
+						tx_sgnews_date_end.mapOnProperty = dateEnd
 					}
 				}
 			}
diff --git a/Configuration/TypoScript/Frontend/constants.typoscript b/Configuration/TypoScript/Frontend/constants.typoscript
index 0d95fddf9df38c00aac100c9c6910394364a7b7d..6d1bb7ae3ff7b16c4de09d6a6a306b12fad222a3 100644
--- a/Configuration/TypoScript/Frontend/constants.typoscript
+++ b/Configuration/TypoScript/Frontend/constants.typoscript
@@ -13,6 +13,9 @@ plugin.tx_sgnews {
 	settings {
 		newsLimitPerPage = 12
 		tagPid =
+
+		# sort direction (DESC / ASC)
+		sortDirection = DESC
 	}
 
 	pagebrowser.settings {
diff --git a/Configuration/TypoScript/Frontend/setup.typoscript b/Configuration/TypoScript/Frontend/setup.typoscript
index 6c371b2b1b06fa546d2e4d9b2f2e3774ce5080a8..b8727f42caa051476d4cac97b2de2c1884d4fa53 100644
--- a/Configuration/TypoScript/Frontend/setup.typoscript
+++ b/Configuration/TypoScript/Frontend/setup.typoscript
@@ -98,6 +98,9 @@ plugin.tx_sgnews {
 		# How to sort the news in general (date, positionInTree)
 		sortBy = date
 
+		# sort direction (DESC / ASC)
+		sortDirection = {$plugin.tx_sgnews.settings.sortDirection}
+
 		# The publisher value for the structured data implementation (see single view template)
 		publisher =
 
diff --git a/Resources/Private/Language/de.locallang_db.xlf b/Resources/Private/Language/de.locallang_db.xlf
index 547ef6c542ea9acd0c8c8d96d21b5f73ae0a6b03..882509d14907c02eb021c84c00ac0499f6dbe552 100644
--- a/Resources/Private/Language/de.locallang_db.xlf
+++ b/Resources/Private/Language/de.locallang_db.xlf
@@ -9,114 +9,150 @@
 			<authorEmail>stefan@sgalinski.de</authorEmail>
 		</header>
 		<body>
-		<trans-unit id="pages.subtitle.inPalette" approved="yes">
-			<source>Title</source>
-			<target>Titel</target>
-		</trans-unit>
-		<trans-unit id="pages.tabs.images" approved="yes">
-			<source>Images</source>
-			<target>Bilder</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_author" approved="yes">
-			<source>Author</source>
-			<target>Autor</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_author.inPalette" approved="yes">
-			<source>Author (use the free text field if the author not in the list)</source>
-			<target>Autor (benutze das Freitextfeld, falls der Autor nicht in der Liste ist)</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_highlighted" approved="yes">
-			<source>Highlighted / Top Element</source>
-			<target>Hervorgehoben / Top-Element</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_likes" approved="yes">
-			<source>Like Count</source>
-			<target>Anzahl der Likes</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_never_highlighted" approved="yes">
-			<source>Don't show in &quot;Latest News&quot;</source>
-			<target>Nicht in &quot;letzten News&quot; anzeigen</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_related_news" approved="yes">
-			<source>Related Elements</source>
-			<target>Verwandte Elemente</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_tags" approved="yes">
-			<source>Tags</source>
-			<target>Tags</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_teaser1_image" approved="yes">
-			<source>Teaser image</source>
-			<target>Teaser-Bild</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_teaser2_image" approved="yes">
-			<source>Single view image</source>
-			<target>Einzelansichts-Bild</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_use_image_crop" approved="yes">
-			<source>Use Image Cropping</source>
-			<target>Bild-Cropping aktivieren</target>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_location">
-			<source>Location</source>
-			<target>Ort</target>
-		</trans-unit>
-		<trans-unit id="plugin.flexForm" approved="yes">
-			<source>Settings</source>
-			<target>Einstellungen</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.categories" approved="yes">
-			<source>Categories (No Selection = all)</source>
-			<target>Kategorien (Keine Auswahl = alle)</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.enableFilter" approved="yes">
-			<source>Enable Filter</source>
-			<target>Filter aktivieren</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.endtime" approved="yes">
-			<source>Show news until</source>
-			<target>Zeige News bis</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.groupBy" approved="yes">
-			<source>Group by</source>
-			<target>Gruppiere nach</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.groupBy.I.0" approved="yes">
-			<source>None</source>
-			<target>Weder noch</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.groupBy.I.1" approved="yes">
-			<source>Categories</source>
-			<target>Kategorien</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.groupBy.I.2" approved="yes">
-			<source>Tags</source>
-			<target>Tags</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.listByCategory.categories" approved="yes">
-			<source>Categories (No Selection = current page)</source>
-			<target>Kategorien (Keine Auswahl = aktuelle Seite)</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.listByCategory.tags" approved="yes">
-			<source>Tags, if none is selected, then all will be displayed</source>
-			<target>Tags, wenn keine ausgewählt wird, dann werden alle angezeigt</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.newsLimit" approved="yes">
-			<source>News limit (depending on the view by category or in total)</source>
-			<target>News-Limit (je nach Ansicht pro Kategorie oder insgesamt)</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.newsLimitPerPage" approved="yes">
-			<source>News Limit per Page</source>
-			<target>News-Limit pro Seite</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.onlyNewsWithinThisPageSection" approved="yes">
-			<source>Only news within this page section</source>
-			<target>Nur News innerhalb dieses Seitenbereichs</target>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.starttime" approved="yes">
-			<source>Show news from</source>
-			<target>Zeige News ab</target>
-		</trans-unit>
+			<trans-unit id="pages.subtitle.inPalette" approved="yes">
+				<source><![CDATA[Title]]></source>
+				<target><![CDATA[Titel]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tabs.images" approved="yes">
+				<source><![CDATA[Images]]></source>
+				<target><![CDATA[Bilder]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_author" approved="yes">
+				<source><![CDATA[Author]]></source>
+				<target><![CDATA[Autor]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_author.inPalette" approved="yes">
+				<source><![CDATA[Author (use the free text field if the author not in the list)]]></source>
+				<target><![CDATA[Autor (benutze das Freitextfeld, falls der Autor nicht in der Liste ist)]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_date_end" approved="yes">
+				<source><![CDATA[Date until]]></source>
+				<target><![CDATA[Datum bis]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_date_start" approved="yes">
+				<source><![CDATA[Date from]]></source>
+				<target><![CDATA[Datum von]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_highlighted" approved="yes">
+				<source><![CDATA[Highlighted / Top Element]]></source>
+				<target><![CDATA[Hervorgehoben / Top-Element]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_likes" approved="yes">
+				<source><![CDATA[Like Count]]></source>
+				<target><![CDATA[Anzahl der Likes]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_location" approved="yes">
+				<source><![CDATA[Location]]></source>
+				<target><![CDATA[Ort]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_never_highlighted" approved="yes">
+				<source><![CDATA[Don't show in "Latest News"]]></source>
+				<target><![CDATA[Nicht in "letzten News" anzeigen]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_related_news" approved="yes">
+				<source><![CDATA[Related Elements]]></source>
+				<target><![CDATA[Verwandte Elemente]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_tags" approved="yes">
+				<source><![CDATA[Tags]]></source>
+				<target><![CDATA[Tags]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_teaser1_image" approved="yes">
+				<source><![CDATA[Teaser image]]></source>
+				<target><![CDATA[Teaser-Bild]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_teaser2_image" approved="yes">
+				<source><![CDATA[Single view image]]></source>
+				<target><![CDATA[Einzelansichts-Bild]]></target>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_use_image_crop" approved="yes">
+				<source><![CDATA[Use Image Cropping]]></source>
+				<target><![CDATA[Bild-Cropping aktivieren]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.flexForm" approved="yes">
+				<source><![CDATA[Settings]]></source>
+				<target><![CDATA[Einstellungen]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.asc" approved="yes">
+				<source><![CDATA[Ascending]]></source>
+				<target><![CDATA[Aufsteigend]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.dateOfPublication" approved="yes">
+				<source><![CDATA[Date of publication]]></source>
+				<target><![CDATA[Tag der Veröffentlichung]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.desc" approved="yes">
+				<source><![CDATA[Descending]]></source>
+				<target><![CDATA[Absteigend]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.orderInPageTree" approved="yes">
+				<source><![CDATA[Order in pagetree]]></source>
+				<target><![CDATA[Reihenfolge im Seitenbaum]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.sortBy" approved="yes">
+				<source><![CDATA[Sort by]]></source>
+				<target><![CDATA[Sortieren nach]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.sortOrder" approved="yes">
+				<source><![CDATA[Sort order]]></source>
+				<target><![CDATA[Sortierreihenfolge]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.systemDefault" approved="yes">
+				<source><![CDATA[System default]]></source>
+				<target><![CDATA[Systemstandard]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.categories" approved="yes">
+				<source><![CDATA[Categories (No Selection = all)]]></source>
+				<target><![CDATA[Kategorien (Keine Auswahl = alle)]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.enableFilter" approved="yes">
+				<source><![CDATA[Enable Filter]]></source>
+				<target><![CDATA[Filter aktivieren]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.endtime" approved="yes">
+				<source><![CDATA[Show news until]]></source>
+				<target><![CDATA[Zeige News bis]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.groupBy" approved="yes">
+				<source><![CDATA[Group by]]></source>
+				<target><![CDATA[Gruppiere nach]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.groupBy.I.0" approved="yes">
+				<source><![CDATA[None]]></source>
+				<target><![CDATA[Weder noch]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.groupBy.I.1" approved="yes">
+				<source><![CDATA[Categories]]></source>
+				<target><![CDATA[Kategorien]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.groupBy.I.2" approved="yes">
+				<source><![CDATA[Tags]]></source>
+				<target><![CDATA[Tags]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.listByCategory.categories" approved="yes">
+				<source><![CDATA[Categories (No Selection = current page)]]></source>
+				<target><![CDATA[Kategorien (Keine Auswahl = aktuelle Seite)]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.listByCategory.tags" approved="yes">
+				<source><![CDATA[Tags, if none is selected, then all will be displayed]]></source>
+				<target><![CDATA[Tags, wenn keine ausgewählt wird, dann werden alle angezeigt]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.newsLimit" approved="yes">
+				<source><![CDATA[News limit (depending on the view by category or in total)]]></source>
+				<target><![CDATA[News-Limit (je nach Ansicht pro Kategorie oder insgesamt)]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.newsLimitPerPage" approved="yes">
+				<source><![CDATA[News Limit per Page]]></source>
+				<target><![CDATA[News-Limit pro Seite]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.onlyNewsWithinThisPageSection" approved="yes">
+				<source><![CDATA[Only news within this page section]]></source>
+				<target><![CDATA[Nur News innerhalb dieses Seitenbereichs]]></target>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.starttime" approved="yes">
+				<source><![CDATA[Show news from]]></source>
+				<target><![CDATA[Zeige News ab]]></target>
+			</trans-unit>
 		</body>
 	</file>
-</xliff>
\ No newline at end of file
+</xliff>
diff --git a/Resources/Private/Language/locallang_db.xlf b/Resources/Private/Language/locallang_db.xlf
index a247299eef3b029d03c9913c81464fddddb1c0c8..68461c1c9c2fd04f90c06957645c6b9c5721ce95 100644
--- a/Resources/Private/Language/locallang_db.xlf
+++ b/Resources/Private/Language/locallang_db.xlf
@@ -9,87 +9,114 @@
 			<authorEmail>stefan@sgalinski.de</authorEmail>
 		</header>
 		<body>
-		<trans-unit id="pages.subtitle.inPalette">
-			<source>Title</source>
-		</trans-unit>
-		<trans-unit id="pages.tabs.images">
-			<source>Images</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_author">
-			<source>Author</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_author.inPalette">
-			<source>Author (use the free text field if the author not in the list)</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_highlighted">
-			<source>Highlighted / Top Element</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_likes">
-			<source>Like Count</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_never_highlighted">
-			<source>Don't show in &quot;Latest News&quot;</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_related_news">
-			<source>Related Elements</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_tags">
-			<source>Tags</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_teaser1_image">
-			<source>Teaser image</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_teaser2_image">
-			<source>Single view image</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_use_image_crop">
-			<source>Use Image Cropping</source>
-		</trans-unit>
-		<trans-unit id="pages.tx_sgnews_location">
-			<source>Location</source>
-		</trans-unit>
-		<trans-unit id="plugin.flexForm">
-			<source>Settings</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.categories">
-			<source>Categories (No Selection = all)</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.enableFilter">
-			<source>Enable Filter</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.endtime">
-			<source>Show news until</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.groupBy">
-			<source>Group by</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.groupBy.I.0">
-			<source>None</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.groupBy.I.1">
-			<source>Categories</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.groupBy.I.2">
-			<source>Tags</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.listByCategory.categories">
-			<source>Categories (No Selection = current page)</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.listByCategory.tags">
-			<source>Tags, if none is selected, then all will be displayed</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.newsLimit">
-			<source>News limit (depending on the view by category or in total)</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.newsLimitPerPage">
-			<source>News Limit per Page</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.onlyNewsWithinThisPageSection">
-			<source>Only news within this page section</source>
-		</trans-unit>
-		<trans-unit id="plugin.overview.flexForm.starttime">
-			<source>Show news from</source>
-		</trans-unit>
+			<trans-unit id="pages.subtitle.inPalette">
+				<source><![CDATA[Title]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tabs.images">
+				<source><![CDATA[Images]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_author">
+				<source><![CDATA[Author]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_author.inPalette">
+				<source><![CDATA[Author (use the free text field if the author not in the list)]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_date_end">
+				<source><![CDATA[Date until]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_date_start">
+				<source><![CDATA[Date from]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_highlighted">
+				<source><![CDATA[Highlighted / Top Element]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_likes">
+				<source><![CDATA[Like Count]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_location">
+				<source><![CDATA[Location]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_never_highlighted">
+				<source><![CDATA[Don't show in "Latest News"]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_related_news">
+				<source><![CDATA[Related Elements]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_tags">
+				<source><![CDATA[Tags]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_teaser1_image">
+				<source><![CDATA[Teaser image]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_teaser2_image">
+				<source><![CDATA[Single view image]]></source>
+			</trans-unit>
+			<trans-unit id="pages.tx_sgnews_use_image_crop">
+				<source><![CDATA[Use Image Cropping]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.flexForm">
+				<source><![CDATA[Settings]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.asc">
+				<source><![CDATA[Ascending]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.dateOfPublication">
+				<source><![CDATA[Date of publication]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.desc">
+				<source><![CDATA[Descending]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.orderInPageTree">
+				<source><![CDATA[Order in pagetree]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.sortBy">
+				<source><![CDATA[Sort by]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.sortOrder">
+				<source><![CDATA[Sort order]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.listByCategory.flexFrom.systemDefault">
+				<source><![CDATA[System default]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.categories">
+				<source><![CDATA[Categories (No Selection = all)]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.enableFilter">
+				<source><![CDATA[Enable Filter]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.endtime">
+				<source><![CDATA[Show news until]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.groupBy">
+				<source><![CDATA[Group by]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.groupBy.I.0">
+				<source><![CDATA[None]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.groupBy.I.1">
+				<source><![CDATA[Categories]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.groupBy.I.2">
+				<source><![CDATA[Tags]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.listByCategory.categories">
+				<source><![CDATA[Categories (No Selection = current page)]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.listByCategory.tags">
+				<source><![CDATA[Tags, if none is selected, then all will be displayed]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.newsLimit">
+				<source><![CDATA[News limit (depending on the view by category or in total)]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.newsLimitPerPage">
+				<source><![CDATA[News Limit per Page]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.onlyNewsWithinThisPageSection">
+				<source><![CDATA[Only news within this page section]]></source>
+			</trans-unit>
+			<trans-unit id="plugin.overview.flexForm.starttime">
+				<source><![CDATA[Show news from]]></source>
+			</trans-unit>
 		</body>
 	</file>
-</xliff>
\ No newline at end of file
+</xliff>
diff --git a/composer.json b/composer.json
index 652cf2361f0a20df91f4cb8d6ccd15e55330a9f8..ad0333de0a6affdbfae92afde66ac0ee8068408f 100644
--- a/composer.json
+++ b/composer.json
@@ -6,7 +6,7 @@
 	"license": [
 		"GPL-2.0-or-later"
 	],
-	"version": "5.7.1",
+	"version": "5.9.0",
 	"support": {
 	},
 	"repositories": [
diff --git a/ext_emconf.php b/ext_emconf.php
index 2968cc2cf5b6a3da99575c87078dc517db9efe35..b9766a035241d8d9ed66e14976bc61b51e7f320b 100644
--- a/ext_emconf.php
+++ b/ext_emconf.php
@@ -19,7 +19,7 @@ $EM_CONF[$_EXTKEY] = [
 	'modify_tables' => '',
 	'clearCacheOnLoad' => 0,
 	'lockType' => '',
-	'version' => '5.7.1',
+	'version' => '5.9.0',
 	'constraints' => [
 		'depends' => [
 			'typo3' => '8.7.0-9.5.99',
diff --git a/ext_tables.sql b/ext_tables.sql
index 3aab3cdb5f4a942c793a4b7e01dbf9bffcd52929..0570ef3596fe795755dff0af240de3b760dd0ea4 100644
--- a/ext_tables.sql
+++ b/ext_tables.sql
@@ -8,6 +8,7 @@ CREATE TABLE pages (
 	tx_sgnews_tags int(11) unsigned DEFAULT '0' NOT NULL,
 	tx_sgnews_likes int(11) unsigned DEFAULT '0' NOT NULL,
 	tx_sgnews_location mediumtext,
+  tx_sgnews_date_end  int(10) unsigned DEFAULT '0' NOT NULL,
 
 	KEY author (tx_sgnews_author)
 );