diff --git a/lib/Controller/EpisodeController.php b/lib/Controller/EpisodeController.php
index 64181bfb6ac1167e05fc8e27236790815a9ac9e0..4de9679fc2ddb718dbcd54b10cbac8eedf077b42 100644
--- a/lib/Controller/EpisodeController.php
+++ b/lib/Controller/EpisodeController.php
@@ -67,10 +67,10 @@ class EpisodeController extends Controller {
 	 */
 	 public function create(int $id, string $imgurl, string $author,
 	 	string $title, string $pubdate, string $duration, string $playtime,
-		string $lastplayed, string $enclosure): DataResponse {
+		string $lastplayed, string $enclosure, string $description): DataResponse {
  		return new DataResponse($this->service->create($id, $imgurl, $author,
 			$title, $pubdate, $duration, $playtime, $lastplayed, $enclosure,
-			$this->userId));
+			$description, $this->userId));
  	}
 
 	/**
@@ -78,11 +78,12 @@ class EpisodeController extends Controller {
 	 */
 	public function update(int $id, string $imgurl, string $author,
 		string $title, string $pubdate, string $duration, string $playtime,
-		string $lastplayed, string $enclosure): DataResponse {
+		string $lastplayed, string $enclosure, string $description): DataResponse {
 		return $this->handleNotFound(function () use ($id, $imgurl, $author,
 			$title, $pubdate, $duration, $playtime, $lastplayed, $enclosure) {
 			return $this->service->update($id, $imgurl, $author, $title, $pubdate,
-				$duration, $playtime, $lastplayed, $enclosure, $this->userId);
+				$duration, $playtime, $lastplayed, $enclosure, $description,
+				$this->userId);
  		});
  	}
 
diff --git a/lib/Db/Episode.php b/lib/Db/Episode.php
index 470478f7fb9743e3b94bbef5b49902b3b6acb176..9d063e7c291759b8e141efd514436d738ae22dc0 100644
--- a/lib/Db/Episode.php
+++ b/lib/Db/Episode.php
@@ -36,6 +36,7 @@ class Episode extends Entity implements JsonSerializable {
 	protected $playtime;
 	protected $lastplayed;
 	protected $enclosure;
+	protected $description;
 	protected $userId;
 
 	public function jsonSerialize(): array {
@@ -49,6 +50,7 @@ class Episode extends Entity implements JsonSerializable {
 			'playtime' => $this->playtime,
 			'lastplayed' => $this->lastplayed,
 			'enclosure' => $this->enclosure,
+			'description' => $this->description,
 		];
 	}
 }
diff --git a/lib/Migration/Version000100Date20210201162900.php b/lib/Migration/Version000100Date20210201162900.php
index 5cd3ada805872a008f6838a55e3fbeee87ef2cf7..bec04cceac7774b25f9be4a1e142fbd70736b3b2 100644
--- a/lib/Migration/Version000100Date20210201162900.php
+++ b/lib/Migration/Version000100Date20210201162900.php
@@ -54,6 +54,8 @@ class Version000100Date20210201162900 extends SimpleMigrationStep {
 		$schema = $schemaClosure();
 		$table = $schema->getTable('shows');
 		$table->addColumn('lastpub', 'string');
+		$table = $schema->getTable('episodes');
+		$table->addColumn('description', 'string');
 		return $schema;
 	}
 }
diff --git a/lib/Service/EpisodeService.php b/lib/Service/EpisodeService.php
index f5bb1509000aff570b11d9f32dd245797e4a7133..0ab449d631423381ce1280de27fe6cdce1265cc4 100644
--- a/lib/Service/EpisodeService.php
+++ b/lib/Service/EpisodeService.php
@@ -67,7 +67,7 @@ class EpisodeService {
 	}
 
 	public function create($id, $imgurl, $author, $title, $pubdate, $duration,
-		$playtime, $lastplayed, $enclosure, $userId) {
+		$playtime, $lastplayed, $enclosure, $description, $userId) {
 		$episode = new Episode();
 		$episode->setId($id);
 		$episode->setImgurl($imgurl);
@@ -78,12 +78,13 @@ class EpisodeService {
 		$episode->setPlaytime($playtime);
 		$episode->setLastplayed($lastplayed);
 		$episode->setEnclosure($enclosure);
+		$episode->setDescription($description);
 		$episode->setUserId($userId);
 		return $this->mapper->insert($episode);
 	}
 
 	public function update($id, $imgurl, $author, $title, $pubdate, $duration,
-	 	$playtime, $lastplayed, $enclosure, $userId) {
+	 	$playtime, $lastplayed, $enclosure, $description, $userId) {
 		try {
 			$episode = $this->mapper->find($id, $userId);
 			$episode->setImgurl($imgurl);
@@ -94,6 +95,7 @@ class EpisodeService {
 			$episode->setPlaytime($playtime);
 			$episode->setLastplayed($lastplayed);
 			$episode->setEnclosure($enclosure);
+			$episode->setDescription($description);
 			return $this->mapper->update($episode);
 		} catch (Exception $e) {
 			$this->handleException($e);
diff --git a/src/components/Table.vue b/src/components/Table.vue
index 2912315a5cbf114b75c74c4a7f86bab04de91b19..cd9ac18d1adfab052e5ccd9fb94dfc7fd8712e24 100644
--- a/src/components/Table.vue
+++ b/src/components/Table.vue
@@ -42,7 +42,7 @@
 				v-for="(episode, idx) in episodes"
 				:key="idx">
 				<td class="iconColumn">
-					<div v-lazy:background-image="episode.imgURL"
+					<div v-lazy:background-image="episode.imgURL || episode.imgurl"
 						class="episodeImage"
 						@click="doPlay(episode)">
 						<div :class="episodePlaying(episode.id) ? 'pause' : 'play'" />
@@ -96,8 +96,8 @@
 				<td
 					class="dateColumn"
 					@click="changeRoute(`/browse/show/${episode.podcast_id}/${episode.id}`)">
-					<span :title="readableDate(episode.inserted)">
-						{{ readableTimeAgo(episode.inserted) }}
+					<span :title="readableDate(episode.pubdate)">
+						{{ readableTimeAgo(episode.pubdate) }}
 					</span>
 				</td>
 			</tr>
@@ -165,6 +165,10 @@ export default {
 			episodeDescription = episodeDescription
 				.replace(/\n/g, '')
 				.replace('<br />', '')
+				.replace('<ul>', ' ')
+				.replace('<li>', '')
+				.replace('</ul>', ' ')
+				.replace('</li>', '')
 			return episodeDescription
 		},
 		readableDate(datetime) {
diff --git a/src/router.js b/src/router.js
index 7e39f106f1d5286b1abb740d0706c63aed932225..9c6a9d6780d2fbad74a1b09101cd3503abac4698 100644
--- a/src/router.js
+++ b/src/router.js
@@ -29,7 +29,7 @@ import BrowseAll from './views/BrowseAll'
 import Show from './views/Show'
 import Episode from './views/Episode'
 import Browse from './views/Browse'
-import NotImplemented from './views/NotImplemented'
+import Listening from './views/Listening'
 
 Vue.use(Router)
 
@@ -43,7 +43,7 @@ const router = new Router({
 		},
 		{
 			path: '/listening',
-			component: NotImplemented,
+			component: Listening,
 			name: 'LISTENING',
 		},
 		{
diff --git a/src/services/EpisodeApi.js b/src/services/EpisodeApi.js
index 6303885e6e8d3bd7e50496a40c6f09d2718f9da3..d4aee08cbaeceedfa8b423cad13921989bc9e48f 100644
--- a/src/services/EpisodeApi.js
+++ b/src/services/EpisodeApi.js
@@ -35,9 +35,15 @@ export class EpisodeApi {
 	addEpisode(episode) {
 		episode = {
 			id: episode.id,
-			imgurl: episode.smallImageURL,
+			imgurl: episode.imgURL,
 			title: episode.title,
-			author: episode.author,
+			author: '1084',
+			pubdate: episode.pubdate,
+			duration: '1234',
+			playtime: '',
+			lastplayed: '',
+			enclosure: episode.enclosure,
+			description: episode.description,
 		}
 		axios.defaults.headers.requesttoken = requesttoken
 		return axios.post(this.url('/episodes'), episode)
diff --git a/src/store/episode.js b/src/store/episode.js
index 2b0899c097f8c2412f66bc2f659f099e9096733d..bd47efbffa7237b19e876f8a0c33315a6404abe3 100644
--- a/src/store/episode.js
+++ b/src/store/episode.js
@@ -29,7 +29,7 @@ export default {
 		episodes: [],
 	},
 	getters: {
-		episodesQueue: state => {
+		getEpisodes: state => {
 			return state.episodes
 		},
 		episodeById: state => (id) => {
diff --git a/src/store/player.js b/src/store/player.js
index 5699b538a7cb3240bbb517e275f254cf6b93ee04..45de344df40cd494241f1bb6a56f8d6b0c52170a 100644
--- a/src/store/player.js
+++ b/src/store/player.js
@@ -152,6 +152,7 @@ export default {
 				context.commit('setEpisodeId', episode.id)
 				context.commit('setPausing', false)
 				context.commit('setPlaying', true)
+				context.dispatch('addEpisode', episode)
 				player.doPlay(episode.enclosure)
 			}
 		},
diff --git a/src/views/NotImplemented.vue b/src/views/Listening.vue
similarity index 56%
rename from src/views/NotImplemented.vue
rename to src/views/Listening.vue
index 4f292adcce77a69d671b33eca101bf5cd1272b27..087985f509eb868a39e38048043c2112a4845bda 100644
--- a/src/views/NotImplemented.vue
+++ b/src/views/Listening.vue
@@ -19,23 +19,59 @@
   - along with this program. If not, see <http://www.gnu.org/licenses/>.
   -
   -->
-
 <template>
-	<EmptyContent icon="icon-error">
-		Error loading site
-		<template #desc>
-			Feature not yet implemented
-		</template>
-	</EmptyContent>
+	<div>
+		<div class="podcastSectionHeader listening">
+			<h1>Currently listening</h1>
+		</div>
+		<Table
+			:episodes="episodes"
+			@doPlay="doPlay" />
+	</div>
 </template>
 
 <script>
-import EmptyContent from '@nextcloud/vue/dist/Components/EmptyContent'
+import Table from '../components/Table'
+import { mapGetters, mapActions } from 'vuex'
 
 export default {
-	name: 'NotImplemented',
+	name: 'Listening',
 	components: {
-		EmptyContent,
+		Table,
+	},
+	computed: {
+		...mapGetters([
+			'getEpisodes',
+			'episodePlaying',
+		]),
+		episodes() {
+			const list = [
+				...this.getEpisodes,
+			]
+			return list
+		},
+	},
+	methods: {
+		...mapActions([
+			'pauseEpisode',
+			'playEpisode',
+		]),
+		doPlay(episode) {
+			if (this.episodePlaying(episode.id)) {
+				this.pauseEpisode()
+			} else {
+				this.playEpisode(episode)
+			}
+		},
 	},
 }
 </script>
+
+<style lang="scss">
+
+.listening {
+	padding-top: 30px;
+	padding-left: 30px;
+}
+
+</style>