diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 1aac6f0..d84293e 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -81,7 +81,6 @@ function onGlobalKeydown(e: KeyboardEvent) {
case "p": router.push("/projects"); break;
case "r": router.push("/rules"); break;
case "g": router.push("/graph"); break;
- case "l": router.push("/calendar"); break;
case "x": router.push("/trash"); break;
}
return;
@@ -190,12 +189,6 @@ onUnmounted(() => {
p
Projects
-
- g
- +
- l
- Calendar
-
g
+
diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts
index c0aa114..93ffbea 100644
--- a/frontend/src/api/client.ts
+++ b/frontend/src/api/client.ts
@@ -374,72 +374,6 @@ export async function apiStreamPost(
}
}
-// ---------------------------------------------------------------------------
-// Calendar events
-// ---------------------------------------------------------------------------
-
-export interface EventEntry {
- id: number;
- uid: string;
- title: string;
- start_dt: string;
- end_dt: string | null;
- all_day: boolean;
- description: string;
- location: string;
- color: string;
- recurrence: string | null;
- caldav_uid: string;
- project_id: number | null;
- user_id: number;
- created_at: string | null;
- updated_at: string | null;
-}
-
-export interface EventCreatePayload {
- title: string;
- start_dt: string;
- end_dt?: string;
- all_day?: boolean;
- description?: string;
- location?: string;
- color?: string;
- recurrence?: string;
- project_id?: number;
-}
-
-export interface EventUpdatePayload {
- title?: string;
- start_dt?: string;
- end_dt?: string;
- all_day?: boolean;
- description?: string;
- location?: string;
- color?: string;
- recurrence?: string | null;
- project_id?: number;
-}
-
-export async function listEvents(from: string, to: string): Promise
{
- return apiGet(`/api/events?from=${encodeURIComponent(from)}&to=${encodeURIComponent(to)}`);
-}
-
-export async function createEvent(payload: EventCreatePayload): Promise {
- return apiPost('/api/events', payload);
-}
-
-export async function getEvent(id: number): Promise {
- return apiGet(`/api/events/${id}`);
-}
-
-export async function updateEvent(id: number, payload: EventUpdatePayload): Promise {
- return apiPatch(`/api/events/${id}`, payload);
-}
-
-export async function deleteEvent(id: number): Promise {
- return apiDelete(`/api/events/${id}`);
-}
-
// ─── API Keys ─────────────────────────────────────────────────────────────────
export interface ApiKeyEntry {
diff --git a/frontend/src/components/AppHeader.vue b/frontend/src/components/AppHeader.vue
index a61689e..06e41b3 100644
--- a/frontend/src/components/AppHeader.vue
+++ b/frontend/src/components/AppHeader.vue
@@ -47,7 +47,6 @@ router.afterEach(() => {
Dashboard
Browse
- Calendar
Projects
Rulebooks
@@ -93,7 +92,6 @@ router.afterEach(() => {
- Upcoming · 7 days
-
-
-
- {{ fmtEvent(e) }}
- {{ e.title }}
-
-
-
Nothing scheduled.
-
-
This week
✓ {{ data.week_stats.completed_this_week }} done
@@ -241,11 +220,6 @@ function fmtEvent(e: UpcomingEvent): string {
.proj-more { display: inline-block; margin-top: 0.6rem; font-size: 0.78rem; color: var(--color-primary); text-decoration: none; }
.rail-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 12px; padding: 0.7rem 0.85rem; margin-bottom: 1.25rem; }
-.evt-row { display: flex; gap: 0.6rem; padding: 0.3rem 0; border-bottom: 1px solid var(--color-border); font-size: 0.85rem; }
-.evt-row:last-child { border-bottom: none; }
-.evt-when { color: var(--color-muted); white-space: nowrap; }
-.evt-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
-.rail-empty { margin: 0; color: var(--color-muted); font-size: 0.85rem; }
.stats { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.9rem; }
.stats-sub { color: var(--color-muted); font-size: 0.78rem; }
.proj-stats { display: flex; flex-direction: column; gap: 0.1rem; padding: 0.4rem 0.45rem; }
diff --git a/frontend/src/views/KnowledgeView.vue b/frontend/src/views/KnowledgeView.vue
index 201c125..307813b 100644
--- a/frontend/src/views/KnowledgeView.vue
+++ b/frontend/src/views/KnowledgeView.vue
@@ -1,15 +1,11 @@