In plain English
A website that gathers Lithuanian community events in Denmark into one place. Instead of checking six different organizations, people see everything on one calendar with a map and can add events to their own. (Now retired.)
End-to-end · Solo build · Discontinued
Ecalendy
A community events platform for Lithuanians in Denmark. Aggregates 6 organizations' Google Calendars into one searchable interface with grid and list views, an interactive map, one-click calendar export, and full Lithuanian language support. The site is still live and serving the existing event feeds, but I'm no longer actively maintaining it.

Browse the calendar
Lithuanian community events in Denmark, one place
Aggregated from 6 organizations' Google Calendars. Grid, list, and map views. Free, no signup. Still live, no longer actively maintained.
By the numbers
Status
Live · discontinued
Site serving, not actively maintained
Organizations
6
LYS, Credo, Embassy, DLB, AI Workshops, LP
Refresh
Daily 06:00 UTC
Vercel Cron + 1h ISR revalidation
Stack cost
Free
Vercel free tier, no DB
Why I built this
As president of the Lithuanian Youth Society in Denmark, I saw that Lithuanian events in Copenhagen were scattered across different organizations' Google Calendars, Facebook pages, and websites. Nobody had a single place to see everything. I built Ecalendy to aggregate all events into one searchable, filterable interface that the entire community can use.
How it works
Aggregate from 6 organizations
Fetches events from LYS, Credo choir, Lithuanian Embassy, DLB community, AI Workshops CPH, and Lithuanian Professionals, all via Google Calendar API. AllEvents.in scraper serves as a fallback source.
Geocode and enrich
Smart address parsing extracts street names using Danish patterns (gade, vej, stræde, allé), geocodes via Nominatim with rate limiting and caching. Events get keyword-based fallback images when no photo is available.
Browse, search, and filter
Desktop shows card grid with holographic shimmer effects; mobile shows a compact list. Filter by organization, language (Lithuanian or English), and month. Real-time text search across titles and descriptions.
Export to your calendar
One-click export to Google Calendar via URL intent, or download .ics files for Apple Calendar / Outlook. Lithuanian characters (ąčęėįšųūž) are properly encoded.
Integrated organizations
LYS · Lietuvių Jaunimo Draugija
Lithuanian
Choras Credo
Lithuanian
LR Ambasada Danijoje
Lithuanian
Danijos Lietuvių Bendruomenė
Lithuanian
AI Workshops CPH
English
Lithuanian Professionals in CPH
English
Key features
Grid + list views
Desktop card grid with holographic shimmer; mobile compact list, CSS-based responsive switching
Interactive map
Leaflet map with color-coded organization markers, popups, legend, and unmapped count indicator
Smart geocoding
Multi-strategy address parsing with Danish street patterns, Nominatim fallback, and in-memory caching
Lithuanian localization
Full Lithuanian UI with proper grammatical cases (nominative + genitive months), weekday names, and date formatting
Calendar export
Google Calendar URL intent + ICS download with UTF-8 Lithuanian character support
PWA installable
Add to home screen on iOS/Android, dark theme default, custom geometric logo icon
Tech stack
Frontend
Maps
react-leaflet with dynamic imports for SSR safety, CartoDB dark/light tiles
Data Sources
6 Google Calendars + AllEvents.in scraper as fallback
Infrastructure
ISR (1h revalidation), Vercel Cron (daily 06:00 UTC), file-based event cache
Under the hood
It pulls events from all six organisations at once and refreshes itself automatically every morning, so if one calendar is down the rest still come through and nobody has to update anything by hand.
All the searching and filtering happens instantly in your browser because everything is already loaded, so flipping between organisations, languages, and months feels immediate.
Brand & creative
Marketing posters and animated creative
Two brand posters and an animated 9:16 creative generated with Pomelli, Google's AI brand toolkit.
Brand poster
Value propCommon questions
Is the site still up?+
Yes. renginiukalendorius.vercel.app is live and the daily 06:00 UTC cron still fetches new events. I just stopped adding features and onboarding new organizations.
Why is it discontinued?+
It served its purpose for a while, but the underlying audience is small (Lithuanian community in Copenhagen) and most of the organizations stopped using their public Google Calendars. The build is solid; the user need shrunk.
Can I add my organization to it?+
In theory yes, in practice no longer maintained. The integration is one config entry per org plus a Google Calendar API key, but I'm not actively onboarding new ones. If you really want it back, fork the repo.
Is the source open?+
Yes, the GitHub repo at AuriDevcourse/renginiukalendorius is public. You'd need a Google Calendar API key and an org config to run your own.
What did it cost to run?+
Nothing. Vercel free tier, no database, no paid APIs. Google Calendar API and Nominatim geocoding are both free at this volume.
Is the design any good?+
I'm proud of the holographic shimmer cards and the Leaflet map with color-coded org markers. The Lithuanian-language UI with proper grammatical cases (Balandis vs Balandžio depending on context) was a small detail nobody noticed but I'd do again.
What I learned
- ·Building for a real community gives you honest feedback you never get from projects nobody uses.
- ·A solid build can still outlive its audience. The site worked well, but the small community moved on, and that is a product lesson, not a code one.
- ·Getting the small language details right, like the correct Lithuanian month forms, made it feel genuinely made for the community even if almost nobody consciously noticed.
Why I stopped
Honest accounting. Sometimes the right call is to let a project keep serving its current users without forcing it forward.
Audience shrunk
The Lithuanian-in-Copenhagen community is small. Most of the orgs I onboarded stopped publishing on Google Calendar (moved to Facebook Events, Luma, or stopped publishing publicly altogether). Aggregating empty calendars isn't a product.
Single-community ceiling
Generalising to other diaspora communities in Denmark (Latvian, Estonian, Polish, etc) was the obvious next move. Each would need org outreach, calendar config, language localisation. Not the right project for me right now.
Replaced by lighter alternatives
For my own use, I now lean on a Notion calendar that links to events. Less polished, but doesn't require six orgs to keep publishing in the same place.
Keeping it live anyway
The site costs nothing to run on Vercel free tier. The cron still fires daily and serves the orgs that DO publish. Better to leave it up for them than tear it down on principle.