# Personal agenda web app

## Overview

The Agenda project is a comprehensive tool designed to keep track of various events and important dates, from holiday schedules to waste collection dates. It's an all-in-one solution for staying on top of your personal agenda.

### Features

- **Event Management:** Handles various types of events like birthdays, holidays, travel itineraries, conferences, and waste collection schedules.
- **Timezone Handling:** Supports conversion and management of events across different time zones.
- **Data Sources Integration:** Integrates with various sources like the UK and US holiday calendars, waste collection schedules, and space launch information.
- **Custom Event Scheduling:** Allows defining custom recurring events using RRULE strings.
- **Dashboard View:** Provides a web interface to display all upcoming events in an organized manner.

## Installation

### Prerequisites

- Python 3
- Flask
- Other dependencies listed in `requirements.txt`

### Setup

1. Clone the repository:
   ```
   git clone https://git.4angle.com/edward/agenda
   ```
2. Navigate to the project directory:
   ```
   cd agenda
   ```
3. Install required Python packages:
   ```
   pip install -r requirements.txt
   ```

## Configuration

- Configure the `config` file with the necessary API keys and data directories.
- Personal data such as birthdays, accommodation details, and travel plans should be placed in the specified data directory.

## Usage

To run the web server:

```bash
python web_view.py
```

Access the web interface through a browser at `http://localhost:5000/`.

### Modules Overview

The project is structured into several modules, each handling a specific aspect of the agenda:

- **Accommodation, Birthday, Calendar, Conference**: Manage specific event types.
- **FX, GWR, Economist**: Integrate with external data sources for financial information, railway schedules, and publication dates.
- **Sun, TheSpaceDevs, Travel**: Calculate sunrise/sunset times, track space launches, and manage travel plans.
- **Waste Schedule, UK Holiday**: Handle waste collection schedules and UK holidays.

### Data Management
The `data.py` script is central to the functioning of the Agenda project. It compiles events from various sources and presents them in a unified format. Edit this file to modify or add new event sources.

## Customization

You can customize the script to add or remove features and modify data sources as needed.

## License

This project is licensed under the MIT License. Feel free to use, modify, and distribute it as per the license terms. See the [LICENSE](LICENSE) file for details.

## Contact

If you have any questions or need assistance, feel free to contact the project
maintainer:

- [Edward Betts](mailto:edward@4angle.com)