diff --git a/src/components/CalendarEventNip52StructuredMeta.tsx b/src/components/CalendarEventNip52StructuredMeta.tsx
index 1af0b7b8..fa63fe97 100644
--- a/src/components/CalendarEventNip52StructuredMeta.tsx
+++ b/src/components/CalendarEventNip52StructuredMeta.tsx
@@ -1,6 +1,5 @@
import { getNip52CalendarEventTagExtras, type CalendarEventMeta } from '@/lib/calendar-event'
import { useSmartNoteNavigation } from '@/PageManager'
-import { cn } from '@/lib/utils'
import { Event } from 'nostr-tools'
import { useMemo } from 'react'
import { useTranslation } from 'react-i18next'
@@ -9,6 +8,19 @@ import { Calendar, ExternalLink, Link2, MapPin } from 'lucide-react'
type Placement = 'beforeDescription' | 'afterDescription'
+/** [Geohash Explorer](https://geohash.softeng.co/) style URL for a geohash string. */
+function nip52GeohashSoftengUrl(geohash: string): string {
+ const h = geohash.trim()
+ return `https://geohash.softeng.co/${encodeURIComponent(h)}`
+}
+
+/** Google Maps “place” style URL from a free-text address or place name. */
+function googleMapsPlaceUrl(placeQuery: string): string {
+ const q = placeQuery.trim()
+ if (!q) return '#'
+ return `https://www.google.com/maps/place/${encodeURIComponent(q).replace(/%20/g, '+')}`
+}
+
export function CalendarEventNip52StructuredMeta({
placement,
event,
@@ -38,16 +50,34 @@ export function CalendarEventNip52StructuredMeta({
{meta.locations.length > 1 ? t('calendarNip52Locations') : t('calendarNip52Location')}
{meta.locations.length === 1 ? (
-
-
- {meta.locations[0]}
-
+
) : (
-
+
{meta.locations.map((loc, i) => (
- -
-
- {loc}
+
-
+
))}
@@ -72,11 +102,7 @@ export function CalendarEventNip52StructuredMeta({
{meta.geo.trim()}