diff --git a/symposion/schedule/admin.py b/symposion/schedule/admin.py
index 50f252c3..4a8c376e 100644
--- a/symposion/schedule/admin.py
+++ b/symposion/schedule/admin.py
@@ -3,18 +3,43 @@ from django.contrib import admin
 from symposion.schedule.models import Schedule, Day, Room, SlotKind, Slot, SlotRoom, Presentation, Session, SessionRole
 
 
-admin.site.register(Schedule)
-admin.site.register(Day)
-admin.site.register(Room)
-admin.site.register(SlotKind)
-admin.site.register(
-    Slot,
-    list_display=("day", "start", "end", "kind")
-)
-admin.site.register(
-    SlotRoom,
-    list_display=("slot", "room")
-)
+class DayInline(admin.StackedInline):
+    model = Day
+    extra = 2
+
+
+class SlotKindInline(admin.StackedInline):
+    model = SlotKind
+
+
+class ScheduleAdmin(admin.ModelAdmin):
+    model = Schedule
+    inlines = [DayInline, SlotKindInline, ]
+
+
+class SlotRoomInline(admin.TabularInline):
+    model = SlotRoom
+    extra = 1
+
+
+class SlotAdmin(admin.ModelAdmin):
+    list_filter = ("day", "kind")
+    list_display = ("day", "start", "end", "kind", "content")
+    inlines = [SlotRoomInline, ]
+
+
+class RoomAdmin(admin.ModelAdmin):
+    inlines = [SlotRoomInline, ]
+
+
+class PresentationAdmin(admin.ModelAdmin):
+    model = Presentation
+    list_filter = ("section", "cancelled", "slot")
+
+
+admin.site.register(Schedule, ScheduleAdmin)
+admin.site.register(Room, RoomAdmin)
+admin.site.register(Slot, SlotAdmin)
 admin.site.register(Session)
 admin.site.register(SessionRole)
-admin.site.register(Presentation)
+admin.site.register(Presentation, PresentationAdmin)