Flight iCal Generator ✈️📆
🧳 TL;DR
No more manually typing flights into your calendar: just enter your flight number and date, download the ics, and drag-and-drop into your calendar app!
👋 Introduction
I travel a decent amount, and every time I book a flight—especially with budget airlines—I get so frustrated if there’s no easy “Export to Calendar” button. It’s like: I have the flight number and date, but somehow I still need to manually type in departure/arrival times. So annoying 😤
So I decided to build a simple tool: you enter your flight number + date, click a button, and boom—you get a downloadable .ics
file ready to import into Google Calendar, Apple Calendar, Outlook, etc.
🚀 How it works (in two minutes)
- Flight lookup
The tool sends your flight code to the Amadeus Self-Service API and gets back the scheduled departure/arrival info. - Calendar file generation
It converts that info into a standards-compliant iCalendar file, complete with timezone-aware timestamps, flight summary, and a nice verbose description. - Easy download
You click “Download .ics” and voilà — your calendar app accepts it with no fuss.
🛠️ Why this is cool
- No backend server — just client-side JavaScript hosted on GitHub Pages
- Secure API handling via a Cloudflare Worker proxy (no secret leakage)
- Smart timezone handling, so Departure: Sat Jul 19 11:30 CEST → Arrival: same date in PST
- Adds confirmation numbers, notes, and a link to FlightAware
- 100% free, MIT-licensed, and tiny enough to load in moments
🤖 How ChatGPT helped
Full confession: I vibe‑coded this entire project (including this blog post!) with ChatGPT. It was an incredible collaborator:
- I described the features I wanted 📝
- ChatGPT gave me clean, modular JS code
- It helped with everything—CORS handling, timezone conversion, calendar export, GitHub Pages deployment, Cloudflare Workers setup
- It even suggested ways to embed the tool in this blog post 🎉
In short: I asked, it delivered — basically one‑shot everything with minimal editing.
✨ Try it out
You can test the live tool embedded here 👇