diff --git a/locales/index.d.ts b/locales/index.d.ts
index 3ffa4025983cc4dec649a1cf9c0ea6c1bf71cf14..d2d72d1078a4de7e1825fdefdae03fb4124c2ba3 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -11464,6 +11464,14 @@ export interface Locale extends ILocale {
      * List of scheduled notes
      */
     "schedulePostList": string;
+    /**
+     * Post on
+     */
+    "postOn": string;
+    /**
+     * Scheduled Notes
+     */
+    "scheduledNotes": string;
 }
 declare const locales: {
     [lang: string]: Locale;
diff --git a/packages/frontend/src/components/MkNoteSimple.vue b/packages/frontend/src/components/MkNoteSimple.vue
index 924262d62e22ea79dd228d5b91f3a60d14b3cb50..a369d84783570e35f3fd028222b5b758ec06106a 100644
--- a/packages/frontend/src/components/MkNoteSimple.vue
+++ b/packages/frontend/src/components/MkNoteSimple.vue
@@ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 			<div v-show="note.cw == null || showContent">
 				<MkSubNoteContent :hideFiles="hideFiles" :class="$style.text" :note="note" :expandAllCws="props.expandAllCws"/>
 				<div v-if="note.isSchedule" style="margin-top: 10px;">
-					<MkButton :class="$style.button" inline @click.stop.prevent="editScheduleNote()"><i class="ti ti-eraser"></i> {{ i18n.ts.deleteAndEdit }}</MkButton>
+					<MkButton :class="$style.button" inline @click.stop.prevent="editScheduleNote()"><i class="ti ti-eraser"></i> {{ i18n.ts.edit }}</MkButton>
 					<MkButton :class="$style.button" inline danger @click.stop.prevent="deleteScheduleNote()"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
 				</div>
 			</div>
diff --git a/packages/frontend/src/components/MkScheduleEditor.vue b/packages/frontend/src/components/MkScheduleEditor.vue
index 60a60bed283a01921ff964efe808ee74b53ec13c..f40d37c96204866e6c9f96cb97a7eeb3a3ac37b0 100644
--- a/packages/frontend/src/components/MkScheduleEditor.vue
+++ b/packages/frontend/src/components/MkScheduleEditor.vue
@@ -7,7 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 <div style="padding: 8px 16px;">
 	<section>
 		<MkInput v-model="atDate" small type="date" class="input">
-			<template #label>{{ i18n.ts._poll.deadlineDate }}</template>
+			<template #label>{{ i18n.ts.postOn }}</template>
 		</MkInput>
 		<MkInput v-model="atTime" small type="time" class="input">
 			<template #label>{{ i18n.ts._poll.deadlineTime }}</template>
diff --git a/packages/frontend/src/navbar.ts b/packages/frontend/src/navbar.ts
index 6f236dc89e79ddcb0aa79bf2f60bce0632882ca1..2bcb69b145100493fd8bce75c0b966527219ab21 100644
--- a/packages/frontend/src/navbar.ts
+++ b/packages/frontend/src/navbar.ts
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: AGPL-3.0-only
  */
 
-import { computed, reactive } from 'vue';
+import { computed, defineAsyncComponent, reactive } from 'vue';
 import { clearCache } from './scripts/clear-cache.js';
 import { instance } from './instance.js';
 import { $i } from '@/account.js';
@@ -74,6 +74,18 @@ export const navbarItemDef = reactive({
 		show: computed(() => $i != null && !$i.movedTo),
 		to: '/following-feed',
 	},
+	scheduledNotes: {
+		title: i18n.ts.scheduledNotes,
+		icon: 'ti ti-calendar-event',
+		show: computed(() => $i != null),
+		action: (ev) => {
+			const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkSchedulePostListDialog.vue')), {}, {
+				closed: () => {
+					dispose();
+				},
+			});
+		},
+	},
 	lists: {
 		title: i18n.ts.lists,
 		icon: 'ti ti-list',
diff --git a/sharkey-locales/en-US.yml b/sharkey-locales/en-US.yml
index 4e462edda73126bdb6c94015947b38d72e798a05..54fdf444d379c28538b5491c3144b38f358e5223 100644
--- a/sharkey-locales/en-US.yml
+++ b/sharkey-locales/en-US.yml
@@ -422,6 +422,8 @@ selectFollowRelationship: "Select a follow relationship..."
 
 schedulePost: "Schedule a note"
 schedulePostList: "List of scheduled notes"
+postOn: "Post on"
+scheduledNotes: "Scheduled Notes"
 
 _permissions:
   "read:notes-schedule": "View your list of scheduled notes"