Explore your contacts' birthdays through interactive timelines, statistics, and insights.
-
🗓 Interactive Timeline — Zoomable vis.js timeline showing every contact's birthday, with hover cards and click-to-detail.
View Light Mode Dark Mode Desktop 

Mobile 

-
📅 Calendar View — Monthly calendar with birthday density, contact photos, mouse wheel navigation, and a date selector with heatmap preview.
View Light Mode Dark Mode Desktop 

Mobile 

-
📊 Rich Statistics & ☁️ Contact Cloud — Comprehensive charts for birth months, decades, years, weekdays, etc. and animated hexagonal honeycomb bubble visualization.
Statistics Dashboard Contact Cloud 

-
🔍 Smart Filters — Filter by tags, months, and name search in real-time across all views.
Active Name Search Filter Tags Filter Dropdown 

-
⏰ Upcoming Birthdays & 👥 Same Birthday — Countdown list with color-scaled urgency indicators and busiest week KPI, plus a view to discover contacts sharing the same birthday.
Upcoming Birthdays Same Birthday 

-
📋 Missing Data Audit — Identify contacts missing birthday information to keep your contact list clean.
-
🌙 Dark Mode — Full dark/light theme toggle.
-
📱 Mobile Responsive — Optimized layouts with bottom navigation for mobile devices.
-
🔒 100% Private — All data processing happens entirely in your browser. No data is ever uploaded or stored on any server.
Visit the live demo and click "Try Demo" to explore with sample data.
| View | Light Mode | Dark Mode |
|---|---|---|
| Desktop | ![]() |
![]() |
| Mobile | ![]() |
![]() |
- Export your contacts as a CSV or VCF (vCard) file (see Export Guides below)
- Visit BirthdayVisualiser
- Drag and drop your file onto the upload area, or click to browse
- Explore your birthday data across all the available views
| Format | Extension | Description |
|---|---|---|
| CSV | .csv |
Comma-separated values — the standard export from Google Contacts |
| VCF | .vcf, .vcard |
vCard 3.0/4.0 — the standard export from Apple Contacts and many other apps |
BirthdayVisualiser automatically detects common column headers:
- Name:
Name,First Name,Given Name,Last Name,Family Name - Birthday:
Birthday,Bday,Birth Date,Date of Birth,DOB - Tags/Groups:
Label,Group,Category - Photo:
Photo,Avatar,Picture - Email/Phone: Standard email and phone column variants
- Go to contacts.google.com
- Click "Export" in the left sidebar (or select specific contacts first)
- Choose "Google CSV" format
- Click "Export" to download
📖 Official Google Support Article →
- Open the Contacts app
- Select the contacts you want to export (or select all with
⌘A) - Go to File → Export → Export vCard...
- Save the
.vcffile
📖 Official Apple Support Article →
Export all contacts directly on your device as a single vCard (VCF) file:
- Open the Contacts app
- Tap "Lists" in the top-left corner
- Touch and hold "All Contacts" (or a specific group list)
- Tap "Export" in the menu
- Select "Save to Files" to save the
.vcffile locally (or share via email, AirDrop, etc.)
📖 Official Apple Support Article →
- Go to outlook.live.com/people
- Click "Manage contacts" → "Export contacts"
- Choose CSV format and download
Most contact management apps support exporting as CSV or vCard (VCF). Check your provider's help documentation for specific instructions.
Click the "Try Demo" button on the landing page to load demo-contacts.csv — a sample dataset of fictional contacts spanning different decades, tag groups, and birth months. This lets you explore all features without uploading your own data.
Your data never leaves your browser. BirthdayVisualiser processes everything client-side using JavaScript. No contact data is uploaded to any server, stored in any database, or shared with any third party. The application works entirely offline after the initial page load.
- HTML/CSS/JavaScript — Single-file application, no build step required
- vis.js — Interactive timeline visualisation
- Chart.js — Statistical charts and graphs
- PapaParse — CSV parsing
- Font Awesome — Icons
- Google Fonts — Outfit + Inter typography
- GitHub Pages — Static hosting
This project is licensed under the GNU Affero General Public License v3.0 — see the LICENSE file for details.
Made with ❤️ by NotToxel



