diff --git a/lib/screen/pages/timetable/weekView.dart b/lib/screen/pages/timetable/weekView.dart
index 2bf04e2..c4baefb 100644
--- a/lib/screen/pages/timetable/weekView.dart
+++ b/lib/screen/pages/timetable/weekView.dart
@@ -44,9 +44,69 @@ class _WeekViewState extends State<WeekView> {
   Widget build(BuildContext context) {
     return TimetableView(
       laneEventsList: _buildLaneEvents(widget.value),
-      onEventTap: (TableEvent event) {},
+      onEventTap: (TableEvent event) {
+
+        try {
+          GetTimetableResponseObject timetableData = widget.value.getTimetableResponse.result.firstWhere((element) => element.id == event.eventId);
+          GetSubjectsResponseObject subject = widget.value.getSubjectsResponse.result.firstWhere((subject) => subject.id == timetableData.su[0]['id']);
+          GetRoomsResponseObject room = widget.value.getRoomsResponse.result.firstWhere((room) => room.id == timetableData.ro[0]['id']);
+
+          showModalBottomSheet(context: context, builder: (context) => Column(
+            children: [
+              Padding(
+                padding: EdgeInsets.symmetric(vertical: 30),
+                child: Center(
+                  child: Column(
+                    children: [
+                      Icon(Icons.info),
+                      SizedBox(height: 10),
+                      Text("${subject.alternateName} - (${subject.longName})", style: const TextStyle(fontSize: 30)),
+                      Text("${Jiffy(event.startTime).format("HH:mm")} - ${Jiffy(event.endTime).format("HH:mm")}", style: const TextStyle(fontSize: 15)),
+                    ],
+                  ),
+                ),
+              ),
+
+              Expanded(
+                child: ListView(
+                  children: [
+                    ListTile(
+                      leading: const Icon(Icons.notifications_active),
+                      title: Text("Status: ${timetableData.code != null ? "Entfällt" : "Findet statt"}"),
+                    ),
+                    ListTile(
+                      leading: const Icon(Icons.room),
+                      title: Text("Raum: ${room.name}"),
+                      trailing: const Icon(Icons.house_outlined),
+                    ),
+                    ListTile(
+                      leading: const Icon(Icons.person),
+                      title: Text("Lehrkraft: (${timetableData.te[0]['name']}) ${timetableData.te[0]['longname']}"),
+                      trailing: const Icon(Icons.textsms_outlined),
+                    ),
+                    ListTile(
+                      leading: const Icon(Icons.abc),
+                      title: Text("Typ: ${timetableData.activityType}"),
+                    ),
+                    ListTile(
+                      leading: const Icon(Icons.people),
+                      title: Text("Klasse(n): ${timetableData.kl.map((e) => e['name']).join(", ")}"),
+                    )
+                  ],
+                ),
+              )
+            ],
+          ));
+
+
+        } on StateError {
+          return;
+        }
+      },
       timetableStyle: CustomTableStyle(context),
-      onEmptySlotTap: (int laneIndex, TableEventTime start, TableEventTime end) => {},
+      onEmptySlotTap: (int laneIndex, TableEventTime start, TableEventTime end) => {
+
+      },
     );
   }
 
@@ -79,7 +139,7 @@ class _WeekViewState extends State<WeekView> {
                   startTime: parseTime(0800),
                   endTime: parseTime(1500),
                   padding: const EdgeInsets.all(5),
-                  backgroundColor: Theme.of(context).disabledColor,
+                  backgroundColor: Colors.indigoAccent,
                   location: "\n${holidayInfo.longName}",
                 )
               ]),
@@ -94,10 +154,8 @@ class _WeekViewState extends State<WeekView> {
       //Every Day
 
       List<TableEvent> events = List<TableEvent>.generate(
-          timetable.result.where((element) => element.date == day).length,
-              (index) {
+          timetable.result.where((element) => element.date == day).length, (index) {
             GetTimetableResponseObject tableEvent = timetable.result.where((element) => element.date == day).elementAt(index);
-
             GetSubjectsResponseObject subject = subjects.result.firstWhere((subject) => subject.id == tableEvent.su[0]['id']);
 
             return TableEvent(
@@ -108,6 +166,7 @@ class _WeekViewState extends State<WeekView> {
               endTime: parseTime(tableEvent.endTime),
               padding: const EdgeInsets.all(5),
               backgroundColor: getEventColor(
+                tableEvent.code ?? "",
                 currentDay.add(Duration(hours: parseTime(tableEvent.startTime).hour, minutes: parseTime(tableEvent.startTime).minute)),
                 currentDay.add(Duration(hours: parseTime(tableEvent.endTime).hour, minutes: parseTime(tableEvent.endTime).minute)),
               ),
@@ -161,7 +220,9 @@ class _WeekViewState extends State<WeekView> {
     return TableEventTime(hour: input.hour, minute: input.minute);
   }
 
-  Color getEventColor(DateTime startTime, DateTime endTime) {
+  Color getEventColor(String? code, DateTime startTime, DateTime endTime) {
+    if(code == "cancelled") return Colors.deepPurple;
+    if(code == "irregular") return Colors.blueAccent;
     if(endTime.isBefore(DateTime.now())) return Colors.grey;
     if(startTime.isAfter(DateTime.now())) return Theme.of(context).primaryColor;
     return Colors.redAccent;