diff --git a/Aladdin.php b/Aladdin.php
index 15a6d26d5fd7c90bc2ad19c894c4f472d8f27f00..5fe04f14c56a2386d529df111344622cd5410e56 100644
--- a/Aladdin.php
+++ b/Aladdin.php
@@ -9,7 +9,7 @@ require_once __DIR__ . "/models/BrainstormVote.php";
  * @author  Florian Bieringer <florian.bieringer@uni-passau.de>
  * @version 1.0
  */
-class Aladdin extends StudIPPlugin implements StandardPlugin {
+class Aladdin extends StudIPPlugin implements StandardPlugin, SystemPlugin {
 
     public function __construct()
     {
@@ -20,6 +20,7 @@ class Aladdin extends StudIPPlugin implements StandardPlugin {
             if (stripos(Request::get("page"), "plugins.php/aladdin") !== false && isset($data['Aladdin'])) {
                 $brainstorm = new Brainstorm($data['Aladdin']['brainstorm_id']);
                 if ($GLOBALS['perm']->have_studip_perm("autor", $brainstorm['seminar_id'])) {
+
                     $newtime = $brainstorm['chdate'];
                     foreach ($brainstorm->children as $child) {
                         if ($child['chdate'] > $newtime) {
@@ -40,7 +41,7 @@ class Aladdin extends StudIPPlugin implements StandardPlugin {
                         $template->set_attribute("brainstorm", $brainstorm);
                         $output['html'] = $template->render();
                         $output['lasttime'] = $newtime;
-                        UpdateInformation::setInformation("Aladdin.updateSubbrainstorms", $output);
+                        UpdateInformation::setInformation("Aladdin", $output);
                     }
                 }
             }
diff --git a/assets/application.js b/assets/application.js
index 7af5981755b610d091ba7f78fd69cd8082fb9940..12aeca31f367bc44b9629c5a08898175e501759a 100644
--- a/assets/application.js
+++ b/assets/application.js
@@ -69,7 +69,21 @@ STUDIP.Aladdin = {
     }
 };
 $(document).ready(function() {
+    if (jQuery(".subbrainstorms").length > 0) {
+        STUDIP.JSUpdater.register(
+            'Aladdin',
+            STUDIP.Aladdin.updateSubbrainstorms,
+            function () {
+                return {
+                    "brainstorm_id": jQuery(".subbrainstorms").data("brainstorm_id")
+                }
+            }
+        );
+    }
     $('div.brainstorm textarea').autoResize();
+    STUDIP.dialogReady(function () {
+        $('.aladdin-datetimepicker').datetimepicker();
+    });
 });
 
 jQuery(document).on("click", ".brainstorm form.voting input[type=image]", STUDIP.Aladdin.vote_brainstorm);
diff --git a/assets/style.less b/assets/style.less
index 4ab34616197ac821271ac5da46460934dd3da377..2c84d227757ea9df8bad181a2c9eeb90f6f2e69d 100644
--- a/assets/style.less
+++ b/assets/style.less
@@ -98,9 +98,13 @@
                 color: #000;
             }
         }
+        &.inactive {
+            header, .question {
+                opacity: 0.5;
+            }
+        }
     }
     .brainstorm_body {
-        background: url("@{icon-path}/black/arr_1right.png") no-repeat 10px 13px;
         border: thin solid @content-color-80;
         padding: 10px;
         padding-left: 30px;
diff --git a/controllers/lamp.php b/controllers/lamp.php
index f1be0c6b855402eacbb8f17d9a70c8c43068b233..2afba19189b358e8caf66eadb2a7886afdbc5d0a 100644
--- a/controllers/lamp.php
+++ b/controllers/lamp.php
@@ -11,7 +11,11 @@ class LampController extends PluginController {
 
     public function index_action() {
         Navigation::activateItem("/course/brainstorm");
-        $this->brainstorms = Brainstorm::findBySQL("seminar_id = ? AND range_id IS NULL ORDER BY title ASC ", array(Context::get()->id));
+        if ($GLOBALS['perm']->have_studip_perm('tutor', Context::get()->id)) {
+            $this->brainstorms = Brainstorm::findBySQL("seminar_id = ? AND range_id IS NULL ORDER BY title ASC ", array(Context::get()->id));
+        } else {
+            $this->brainstorms = Brainstorm::findBySQL("seminar_id = ? AND range_id IS NULL AND (`start` IS NULL OR `start` < UNIX_TIMESTAMP()) ORDER BY title ASC ", array(Context::get()->id));
+        }
     }
 
     public function edit_action($brainstorm_id = null) {
@@ -47,6 +51,7 @@ class LampController extends PluginController {
             $data['user_id'] = User::findCurrent()->id;
             $data['range_id'] = $this->parent ? $this->parent->getId() : null;
             $data['seminar_id'] = $this->parent ? $this->parent['seminar_id'] : Context::get()->id;
+            $data['start'] = strtotime($data['start']) ?: null;
 
             $this->brainstorm->setData($data);
             $this->brainstorm->store();
diff --git a/migrations/01_init_plugin.php b/migrations/01_init_plugin.php
new file mode 100755
index 0000000000000000000000000000000000000000..1c516e0c20332877bdb945eb9eee5ab05ba0f588
--- /dev/null
+++ b/migrations/01_init_plugin.php
@@ -0,0 +1,19 @@
+<?php
+
+class InitPlugin extends Migration {
+
+    public function up() {
+        DBManager::get()->exec("
+            ALTER TABLE `brainstorms`
+            ADD COLUMN `start` int(11) DEFAULT NULL AFTER `text`
+        ");
+    }
+
+    public function down() {
+        DBManager::get()->exec("
+            ALTER TABLE `brainstorms`
+            DROP COLUMN `start`
+        ");
+    }
+
+}
diff --git a/plugin.manifest b/plugin.manifest
index 625f905176e3aed1c846e801115c951f94ffd25e..2156eefca7aba67640b380bff65a9b5d0a3414e8 100644
--- a/plugin.manifest
+++ b/plugin.manifest
@@ -1,8 +1,8 @@
 pluginname=Aladdin
 pluginclassname=Aladdin
 origin=intelec
-version=2.3
-studipMinVersion=4.0
+version=2.4
+studipMinVersion=4.6
 studipMaxVersion=5.1.99
 dbscheme=install.sql
 uninstalldbscheme=uninstall.sql
diff --git a/views/lamp/_linked_brainstorm.php b/views/lamp/_linked_brainstorm.php
index 974845a77956c525ca7ab19f8a55ff0a33553b69..13323675a7e99e6b69593f21f81c0254a42a8093 100644
--- a/views/lamp/_linked_brainstorm.php
+++ b/views/lamp/_linked_brainstorm.php
@@ -1,24 +1,45 @@
-<article class='linked_brainstorm' id="brainstorm_<?= $brainstorm->id ?>">
-    <div style="float: right;">
-        <?= date("G:i d.m.Y", $brainstorm['mkdate']) ?>
-    </div>
-    <a href="<?= $controller->url_for('lamp/brainstorm/' . $brainstorm->id) ?>">
-        <h1><?= htmlReady($brainstorm->title) ?></h1>
+<article class='linked_brainstorm studip<?= $brainstorm->start > time() ? ' inactive' : '' ?>'
+         id="brainstorm_<?= $brainstorm->id ?>">
+    <header>
+        <h1>
+            <a href="<?= $controller->url_for('lamp/brainstorm/' . $brainstorm->id) ?>">
+            <?= htmlReady($brainstorm->title) ?>
+            </a>
+        </h1>
+        <nav>
+            <? if ($brainstorm->start > 0 && $GLOBALS['perm']->have_studip_perm('tutor', $brainstorm['seminar_id'])) : ?>
+                <?= sprintf(dgettext("aladdin","(startet am %s Uhr)"), date("d.m.Y G:i", $brainstorm['start'])) ?>
+            <? endif ?>
+        </nav>
+    </header>
+    <a href="<?= $controller->url_for('lamp/brainstorm/' . $brainstorm->id) ?>" class="question">
+
         <div class="body">
             <?= formatReady($brainstorm->text) ?>
         </div>
     </a>
     <? if ($GLOBALS['perm']->have_studip_perm("tutor", Context::get()->id) || $GLOBALS['user']->id === $brainstorm['user_id']) : ?>
-        <a class="edit"
-           href="<?= PluginEngine::getLink(
-                 $plugin,
-                 [],
-                 "lamp/edit/" . $brainstorm->getId()
-                 ) ?>" data-dialog="size=auto;reload-on-close">
-            <?= Icon::create("edit", "clickable")->asImg(20) ?>
-        </a>
-        <a class="delete" href="<?= PluginEngine::getLink($plugin, array(), "lamp/delete/".$brainstorm->getId()) ?>" onClick="return window.confirm('<?= dgettext("aladdin","Wirklich löschen?") ?>');">
-            <?= Icon::create("trash", "clickable")->asImg(20) ?>
-        </a>
+        <div class="center">
+            <?= \Studip\LinkButton::create(
+                dgettext("aladdin","Bearbeiten"),
+                PluginEngine::getURL(
+                    $plugin,
+                    [],
+                    "lamp/edit/" . $brainstorm->getId()
+                ),
+                ['data-dialog' => "size=auto;reload-on-close"]
+            ) ?>
+            <?= \Studip\LinkButton::create(
+                dgettext("aladdin","Löschen"),
+                PluginEngine::getURL(
+                    $plugin,
+                    [],
+                    "lamp/delete/" . $brainstorm->getId()
+                ),
+                [
+                    'data-confirm' => dgettext("aladdin","Wirklich löschen?")
+                ]
+            ) ?>
+        </div>
     <? endif ?>
 </article>
diff --git a/views/lamp/edit.php b/views/lamp/edit.php
index 50c6a37df963b88d75da68d7571d806c4c33505d..9fff647ebb534634c492a429319642a944206eec 100644
--- a/views/lamp/edit.php
+++ b/views/lamp/edit.php
@@ -15,6 +15,7 @@
                 <?= dgettext("aladdin",'Titel') ?>
                 <input type="text"
                        name="brainstorm[title]"
+                       required
                        value="<?= htmlReady($brainstorm['title']) ?>"
                        placeholder="<?= dgettext("aladdin","Frage oder Thema") ?>">
             </label>
@@ -23,6 +24,7 @@
         <label>
             <?= dgettext("aladdin",'Text') ?>
             <textarea name="brainstorm[text]"
+                      required
                       placeholder="<?= dgettext("aladdin","Um was soll's gehen?") ?>"><?= htmlReady($brainstorm['text']) ?></textarea>
         </label>
     </fieldset>
@@ -36,6 +38,7 @@
                 <?= _("Startet am") ?>
                 <input type="text"
                        name="brainstorm[start]"
+                       class="aladdin-datetimepicker"
                        value="<?= $brainstorm['start'] ? date("d.m.Y H:i", $brainstorm['start']) : "" ?>">
             </label>
         </div>