🚀 Live Demo: https://trmquang93.github.io/email-to-ics/
Transform any email invitation into a calendar event file with AI-powered parsing.
- Multiple AI Providers: OpenAI GPT, Anthropic Claude, Google Gemini, and OpenRouter
- Intelligent Extraction: Automatically extracts event details from complex email formats
- Natural Language Understanding: Handles various date/time formats and meeting descriptions
- Timezone Support: Automatically converts times (including Turkey Time UTC+3) to local timezone
- ICS File Generation: Creates standard calendar files compatible with all major calendar apps
- Rich Event Details: Extracts titles, dates, times, locations, descriptions, and organizer information
- Meeting Links: Automatically detects and formats Zoom, Teams, Google Meet, and WebEx links
- Smart Validation: AI suggestions and warnings for potential issues
- Local Storage: Saves your AI model preferences and API keys securely
- Offline Mode: Enhanced pattern matching works without internet connection
- Multiple Models: OpenRouter integration with 50+ AI models to choose from
- Error Handling: Graceful fallback to local parsing if AI fails
✅ Zoom invitations
✅ Microsoft Teams meetings
✅ Google Meet links
✅ Outlook calendar invites
✅ Generic meeting emails
✅ Multi-timezone events
✅ Recurring event patterns
- Visit the app: https://trmquang93.github.io/email-to-ics/
- Paste your email: Copy and paste the email invitation content
- Choose AI provider: Select from OpenAI, Claude, Gemini, or OpenRouter (or use local processing)
- Add API key: Enter your API key for enhanced AI parsing
- Extract details: Click "AI Extract Event Details"
- Review & download: Verify the extracted information and download your ICS file
- 🔒 API keys stored locally - Never sent to our servers
- 🛡️ No data collection - All processing happens in your browser
- 🔐 Base64 encryption - API keys are encoded before local storage
- 🌐 Client-side only - No server-side processing required
The application is built with a clean, modular architecture:
├── index.html # Main application entry point
├── styles.css # All styling
└── js/
├── config.js # Configuration constants
├── storage-manager.js # Local storage operations
├── api-client-factory.js # AI API integrations
├── email-parser.js # Email parsing logic
├── datetime-utils.js # Date/time utilities
├── ai-suggestions-manager.js # AI suggestions & validation
├── openrouter-models-manager.js # Dynamic model loading
├── ics-generator.js # Calendar file generation
└── email-to-ics-converter.js # Main application controller
- ES6 Modules: Clean separation of concerns
- Vanilla JavaScript: No external dependencies
- CSS Grid & Flexbox: Responsive design
- LocalStorage API: Persistent user preferences
- Fetch API: Modern HTTP requests
# Clone the repository
git clone https://github.com/trmquang93/email-to-ics.git
# Navigate to directory
cd email-to-ics
# Open in browser (requires local server for ES6 modules)
python3 -m http.server 8000Then open http://localhost:8000 in your browser.
To use AI-powered parsing, you'll need an API key from one of these providers:
- OpenAI: Get API Key
- Anthropic: Get API Key
- Google Gemini: Get API Key
- OpenRouter: Get API Key (Access to 50+ models with one key)
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this project for personal or commercial purposes.
Made with ❤️ by trmquang93