# 206.events Web Interface

A React SPA that provides a modern interface for browsing calendars generated by the 206.events build.

## Features

- **Fuzzy Search**: Search calendars by name or tags using intelligent fuzzy matching
- **Tag Filtering**: Click tags to filter calendars by category
- **Agenda View**: Select a calendar to see upcoming events with details
- **Dynamic ICS Loading**: Events are loaded directly from .ics files
- **Responsive Design**: Works on desktop and mobile devices

## Development

```bash
# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build
```

## Usage

1. Make sure your 206.events build has generated calendars in the `../output/` directory
2. Start the development server with `npm run dev`
3. Open http://localhost:5173 in your browser
4. Use the search bar to find specific calendars
5. Click tags to filter by category
6. Select a calendar to view its upcoming events

## Building for Production

The build process creates static files in `../output-web/` that can be served by any web server. The app expects the calendar files to be available at `../output/` relative to the web app.

## Architecture

- **React 18** with hooks for state management
- **Fuse.js** for fuzzy search functionality
- **ical.js** for parsing ICS calendar files
- **Vite** for fast development and building
- Minimal dependencies for fast loading
