diff --git a/b_asic/GUI/main_window.py b/b_asic/GUI/main_window.py
index 5daf997f7c5c9ff184a96ef320c9fdcf213a3c0a..88d7b626a75ee5903c00c6da07a74d62bc2049b0 100644
--- a/b_asic/GUI/main_window.py
+++ b/b_asic/GUI/main_window.py
@@ -212,6 +212,12 @@ class SFGMainWindow(QMainWindow):
         self._zoom_to_fit_action.triggered.connect(self._zoom_to_fit)
         self._ui.view_menu.addAction(self._zoom_to_fit_action)
 
+        # Toggle full screen
+        self._fullscreen_action = QAction(get_icon('full-screen'), "Toggle full screen")
+        self._fullscreen_action.setCheckable(True)
+        self._fullscreen_action.triggered.connect(self._toggle_fullscreen)
+        self._ui.view_menu.addAction(self._fullscreen_action)
+
         # Non-modal dialogs
         self._keybindings_page = None
         self._about_page = None
@@ -384,6 +390,15 @@ class SFGMainWindow(QMainWindow):
 
         self._update_recent_file_list()
 
+    def _toggle_fullscreen(self, event=None):
+        """Callback for toggling full screen mode."""
+        if self.isFullScreen():
+            self.showNormal()
+            self._fullscreen_action.setIcon(get_icon('full-screen'))
+        else:
+            self.showFullScreen()
+            self._fullscreen_action.setIcon(get_icon('full-screen-exit'))
+
     def _update_recent_file_list(self):
         settings = QSettings()
 
diff --git a/b_asic/gui_utils/icons.py b/b_asic/gui_utils/icons.py
index fb83e1f219b99bf8e4affc6f868ca4adb8c5cc6f..4433c8f3c0c958204a8107bb6d91b4cd9021f6dc 100644
--- a/b_asic/gui_utils/icons.py
+++ b/b_asic/gui_utils/icons.py
@@ -29,6 +29,8 @@ ICONS = {
     'faq': 'mdi6.frequently-asked-questions',
     'sim': 'mdi6.chart-line',
     'reorder': ('msc.graph-left', {'rotated': -90}),
+    'full-screen': 'mdi6.fullscreen',
+    'full-screen-exit': 'mdi6.fullscreen-exit',
 }
 
 
diff --git a/b_asic/scheduler_gui/main_window.py b/b_asic/scheduler_gui/main_window.py
index 5b4d2f591cc7d76c1513b94b2bef9fd6bd3c31f0..b65233d31b2516a48ede6d14f51a6699f0ff1664 100644
--- a/b_asic/scheduler_gui/main_window.py
+++ b/b_asic/scheduler_gui/main_window.py
@@ -148,10 +148,12 @@ class ScheduleMainWindow(QMainWindow, Ui_MainWindow):
         self.actionReorder.triggered.connect(self._action_reorder)
         self.actionReorder.setIcon(get_icon('reorder'))
         self.actionStatus_bar.triggered.connect(self._toggle_statusbar)
-        self.actionPlot_schedule.triggered.connect(self._plot_schedule)
         self.actionPlot_schedule.setIcon(get_icon('plot-schedule'))
-        self.actionZoom_to_fit.triggered.connect(self._zoom_to_fit)
+        self.actionPlot_schedule.triggered.connect(self._plot_schedule)
         self.actionZoom_to_fit.setIcon(get_icon('zoom-to-fit'))
+        self.actionZoom_to_fit.triggered.connect(self._zoom_to_fit)
+        self.actionToggle_full_screen.setIcon(get_icon('full-screen'))
+        self.actionToggle_full_screen.triggered.connect(self._toggle_fullscreen)
         self.actionUndo.setIcon(get_icon('undo'))
         self.actionRedo.setIcon(get_icon('redo'))
         self.splitter.splitterMoved.connect(self._splitter_moved)
@@ -756,6 +758,15 @@ class ScheduleMainWindow(QMainWindow, Ui_MainWindow):
         """Callback for toggling the status bar."""
         self.statusbar.setVisible(self.actionStatus_bar.isChecked())
 
+    def _toggle_fullscreen(self, event=None):
+        """Callback for toggling full screen mode."""
+        if self.isFullScreen():
+            self.showNormal()
+            self.actionToggle_full_screen.setIcon(get_icon('full-screen'))
+        else:
+            self.showFullScreen()
+            self.actionToggle_full_screen.setIcon(get_icon('full-screen-exit'))
+
 
 def start_scheduler(schedule: Optional[Schedule] = None) -> Schedule:
     """
diff --git a/b_asic/scheduler_gui/main_window.ui b/b_asic/scheduler_gui/main_window.ui
index a3ad6f2fa6ab5435d21aa5f3b70d0fb7d5c8b94b..4cd0225e0c344a1bf80f7d1ec90dbc8057dac8d1 100644
--- a/b_asic/scheduler_gui/main_window.ui
+++ b/b_asic/scheduler_gui/main_window.ui
@@ -211,7 +211,7 @@
     </property>
     <widget class="QMenu" name="menu_Recent_Schedule">
      <property name="title">
-      <string>&amp;Open recent</string>
+      <string>Open &amp;recent</string>
      </property>
     </widget>
     <addaction name="menu_open"/>
@@ -235,6 +235,7 @@
     <addaction name="actionPlot_schedule"/>
     <addaction name="separator"/>
     <addaction name="actionZoom_to_fit"/>
+    <addaction name="actionToggle_full_screen"/>
    </widget>
    <widget class="QMenu" name="menu_Edit">
     <property name="title">
@@ -502,7 +503,7 @@
   </action>
   <action name="menu_open">
    <property name="text">
-    <string>Open...</string>
+    <string>&amp;Open...</string>
    </property>
    <property name="toolTip">
     <string>Open previously saved schedule</string>
@@ -511,6 +512,14 @@
     <string>Ctrl+O</string>
    </property>
   </action>
+  <action name="actionToggle_full_screen">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="text">
+    <string>Toggle f&amp;ull screen</string>
+   </property>
+  </action>
  </widget>
  <resources/>
  <connections/>
diff --git a/b_asic/scheduler_gui/ui_main_window.py b/b_asic/scheduler_gui/ui_main_window.py
index d985e9ed6eeb39b63a716254ba268d74ca2838f2..66e5936d7799c78c8680d28d8048aa1b33ff478f 100644
--- a/b_asic/scheduler_gui/ui_main_window.py
+++ b/b_asic/scheduler_gui/ui_main_window.py
@@ -228,6 +228,9 @@ class Ui_MainWindow(object):
         self.actionToolbar.setObjectName("actionToolbar")
         self.menu_open = QtWidgets.QAction(MainWindow)
         self.menu_open.setObjectName("menu_open")
+        self.actionToggle_full_screen = QtWidgets.QAction(MainWindow)
+        self.actionToggle_full_screen.setCheckable(True)
+        self.actionToggle_full_screen.setObjectName("actionToggle_full_screen")
         self.menuFile.addAction(self.menu_open)
         self.menuFile.addAction(self.menu_save)
         self.menuFile.addAction(self.menu_save_as)
@@ -244,6 +247,7 @@ class Ui_MainWindow(object):
         self.menuView.addAction(self.actionPlot_schedule)
         self.menuView.addSeparator()
         self.menuView.addAction(self.actionZoom_to_fit)
+        self.menuView.addAction(self.actionToggle_full_screen)
         self.menu_Edit.addAction(self.actionUndo)
         self.menu_Edit.addAction(self.actionRedo)
         self.menu_Edit.addSeparator()
@@ -290,7 +294,7 @@ class Ui_MainWindow(object):
         item.setText(_translate("MainWindow", "Operator"))
         self.info_table.setSortingEnabled(__sortingEnabled)
         self.menuFile.setTitle(_translate("MainWindow", "&File"))
-        self.menu_Recent_Schedule.setTitle(_translate("MainWindow", "&Open recent"))
+        self.menu_Recent_Schedule.setTitle(_translate("MainWindow", "Open &recent"))
         self.menuView.setTitle(_translate("MainWindow", "&View"))
         self.menu_Edit.setTitle(_translate("MainWindow", "&Edit"))
         self.menuWindow.setTitle(_translate("MainWindow", "&Window"))
@@ -349,8 +353,11 @@ class Ui_MainWindow(object):
         )
         self.actionToolbar.setText(_translate("MainWindow", "&Toolbar"))
         self.actionToolbar.setToolTip(_translate("MainWindow", "Show/hide toolbar"))
-        self.menu_open.setText(_translate("MainWindow", "Open..."))
+        self.menu_open.setText(_translate("MainWindow", "&Open..."))
         self.menu_open.setToolTip(
             _translate("MainWindow", "Open previously saved schedule")
         )
         self.menu_open.setShortcut(_translate("MainWindow", "Ctrl+O"))
+        self.actionToggle_full_screen.setText(
+            _translate("MainWindow", "Toggle f&ull screen")
+        )