diff --git a/src/components/layout/Header.svelte b/src/components/layout/Header.svelte
index af03cf38b..d8c731462 100644
--- a/src/components/layout/Header.svelte
+++ b/src/components/layout/Header.svelte
@@ -71,6 +71,11 @@ $: mapsDropdownLinks = [
url: "/communities/map",
icon: "communities" as MobileNavIconName,
},
+ {
+ title: $_("nav.eventMap"),
+ url: "/events/map",
+ icon: "map" as MobileNavIconName,
+ },
] satisfies DropdownLink[];
$: statsDropdownLinks = [
diff --git a/src/lib/i18n/locales/en.json b/src/lib/i18n/locales/en.json
index e43db0d0e..acfeca0f2 100644
--- a/src/lib/i18n/locales/en.json
+++ b/src/lib/i18n/locales/en.json
@@ -19,6 +19,7 @@
"menu": "Menu",
"merchantMap": "Merchant Map",
"communityMap": "Community Map",
+ "eventMap": "Event Map",
"dashboard": "Dashboard",
"taggerLeaderboard": "Tagger Leaderboard",
"communityLeaderboard": "Community Leaderboard",
diff --git a/src/lib/types.ts b/src/lib/types.ts
index aabf8989d..24107346f 100644
--- a/src/lib/types.ts
+++ b/src/lib/types.ts
@@ -465,6 +465,16 @@ export type Place = {
"osm:note"?: string;
};
+export type EventMapEvent = {
+ id: number;
+ lat: number;
+ lon: number;
+ name: string;
+ website: string;
+ starts_at: string;
+ ends_at: string | null;
+};
+
// Worker progress tracking
export interface ProgressUpdate {
percent: number;
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index c2d6f7277..2af3432ce 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -106,7 +106,7 @@ export let data;
{#if $isLoading}