diff --git a/build/screenshots/dark/hotkeys.png b/build/screenshots/dark/hotkeys.png
index 36ec0debb736aff9d2406eb2d29b918933b52cf5..33fcb95245df7392078cabef35d101e91dece8f4 100644
Binary files a/build/screenshots/dark/hotkeys.png and b/build/screenshots/dark/hotkeys.png differ
diff --git a/build/screenshots/light/hotkeys.png b/build/screenshots/light/hotkeys.png
index 03c559865e281c187dd2ce96715ed59c78ee293e..dbb43ff292f2be7d8b368d7c3591b7dac598be91 100644
Binary files a/build/screenshots/light/hotkeys.png and b/build/screenshots/light/hotkeys.png differ
diff --git a/src/main/java/de/deadlocker8/budgetmaster/hotkeys/GeneralHotKey.java b/src/main/java/de/deadlocker8/budgetmaster/hotkeys/GeneralHotKey.java
index 4c0a1bf08d736b661c8d4e3af3f7958b8f399c3e..163b6d689acff64a26f14e13b59c3efe7d8da613 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/hotkeys/GeneralHotKey.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/hotkeys/GeneralHotKey.java
@@ -6,6 +6,7 @@ import java.text.MessageFormat;
 
 public enum GeneralHotKey implements HotKey
 {
+	TRANSACTION_OVERVIEW("hotkeys.transactions.overview", false),
 	CREATE_TRANSACTION("hotkeys.transactions.new.normal", false),
 	CREATE_TRANSFER_TRANSACTION("hotkeys.transactions.new.transfer", false),
 	CREATE_TRANSACTION_FROM_TEMPLATE("hotkeys.transactions.new.template", false),
diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties
index d12aa066d7d26dceb50ddbd82a991938d824a017..e0063406b2b32211d411f180c27be9c512804598 100644
--- a/src/main/resources/languages/base_de.properties
+++ b/src/main/resources/languages/base_de.properties
@@ -472,6 +472,8 @@ home.first.use.home=Los geht's!
 
 # hotkeys
 hotkeys.general=Allgemein
+hotkeys.transactions.overview=Buchungsübersicht
+hotkeys.transactions.overview.key=o
 hotkeys.transactions.new.normal=Neue Buchung anlegen
 hotkeys.transactions.new.normal.key=n
 hotkeys.transactions.new.transfer=Neue Umbuchung anlegen
diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties
index ae04163426a6069adff6de7721fd8d0bebf1c242..f6240de858e012118ee36a5461d71f8c2357c008 100644
--- a/src/main/resources/languages/base_en.properties
+++ b/src/main/resources/languages/base_en.properties
@@ -473,6 +473,8 @@ home.first.use.home=Let''s go!
 
 # hotkeys
 hotkeys.general=General
+hotkeys.transactions.overview=Transaction overview
+hotkeys.transactions.overview.key=o
 hotkeys.transactions.new.normal=Create a transaction
 hotkeys.transactions.new.normal.key=n
 hotkeys.transactions.new.transfer=Create a transfer
diff --git a/src/main/resources/static/js/hotkeys.js b/src/main/resources/static/js/hotkeys.js
index 4c873f11401f0e8e1b97b507ff51855aa6ee055d..6f6f7534cf4d7e5cc67e0e6dc85bb657bdaae50e 100644
--- a/src/main/resources/static/js/hotkeys.js
+++ b/src/main/resources/static/js/hotkeys.js
@@ -47,6 +47,14 @@ Mousetrap.bind('esc', function()
     }
 });
 
+Mousetrap.bind('o', function()
+{
+    if(areHotKeysEnabled())
+    {
+        window.location.href = rootURL + '/transactions';
+    }
+});
+
 let saveTransactionOrTemplateButton = document.getElementById('button-save-transaction');
 if(saveTransactionOrTemplateButton !== null)
 {
diff --git a/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java b/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java
index a42244274196c1c9031c64e97d99e46b298138df..a3ae28a9591293b76918a0db4870bda5cc9dd602 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java
@@ -137,4 +137,16 @@ class HotkeyTest extends SeleniumTestBase
 		List<WebElement> transactionsRows = driver.findElements(By.cssSelector(".transaction-container .hide-on-med-and-down.transaction-row-top"));
 		assertThat(transactionsRows).hasSize(2);
 	}
+
+	@Test
+	void hotkey_openTransactionOverview()
+	{
+		driver.findElement(By.tagName("body")).sendKeys("o");
+
+		WebDriverWait wait = new WebDriverWait(driver, 5);
+		wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".headline-date")));
+
+		// assert
+		assertThat(driver.getCurrentUrl()).endsWith("/transactions");
+	}
 }
\ No newline at end of file