Skip to content

trmquang93/email-to-ics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Email to ICS Converter

🚀 Live Demo: https://trmquang93.github.io/email-to-ics/

Transform any email invitation into a calendar event file with AI-powered parsing.

Features

🤖 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

📅 Calendar Integration

  • 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

🔧 Advanced Features

  • 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

Supported Email Formats

✅ Zoom invitations
✅ Microsoft Teams meetings
✅ Google Meet links
✅ Outlook calendar invites
✅ Generic meeting emails
✅ Multi-timezone events
✅ Recurring event patterns

How to Use

  1. Visit the app: https://trmquang93.github.io/email-to-ics/
  2. Paste your email: Copy and paste the email invitation content
  3. Choose AI provider: Select from OpenAI, Claude, Gemini, or OpenRouter (or use local processing)
  4. Add API key: Enter your API key for enhanced AI parsing
  5. Extract details: Click "AI Extract Event Details"
  6. Review & download: Verify the extracted information and download your ICS file

Privacy & Security

  • 🔒 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

Technical Architecture

Modular Design

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

Key Technologies

  • 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

Development

# 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 8000

Then open http://localhost:8000 in your browser.

API Keys

To use AI-powered parsing, you'll need an API key from one of these providers:

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - feel free to use this project for personal or commercial purposes.


Made with ❤️ by trmquang93

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors