CalToTex is an advanced Python application designed to streamline the process of transforming calendar events from .ics files into polished LaTeX invoices and CSV files. Featuring an intuitive graphical interface powered by PyQt6, it empowers users to effortlessly filter events, compute earnings based on hourly rates, and generate professional-grade invoices in both LaTeX and PDF formats. Whether you're managing freelance projects or tracking billable hours, CalToTex simplifies your workflow with precision and efficiency.
- 📥 Import calendar events from
.icsfiles. - 🔍 Filter events by search terms and months.
- 💰 Calculate salaries based on hourly rates.
- 🖋️ Generate invoices in LaTeX and PDF formats.
- 📊 Export event data to CSV files.
-
Clone the repository:
git clone https://github.com/your-repo/caltotex.git cd caltotex -
Install dependencies:
pip install -r requirements.txt
-
(Optional) Set up a development environment using Nix:
nix develop
-
Run the application:
python src/main.py
-
Use the graphical interface to:
- 📂 Select an
.icsfile. - 🔎 Filter events by search terms or months.
- 💵 Enter your hourly salary.
- 📄 Preview and save CSV, LaTeX, and PDF files.
- 📂 Select an
-
Open the Application
Launch the application by running the following command in your terminal:python src/main.py
-
Load a Calendar File
- 📂 Click the "Open" button in the application.
- Select an
.icsfile from your computer.
-
Filter Events
- 🔍 Use the search bar to filter events by keywords.
- 📅 Select specific months to narrow down the events.
-
Set Hourly Rate
- 💵 Enter your hourly salary in the provided field.
-
Generate Outputs
- 🖋️ Click the "Generate Invoice" button to create a LaTeX invoice.
- 📄 Save the invoice as a
.texor.pdffile. - 📊 Export event data to a
.csvfile if needed.
-
Preview Outputs
- 👀 Use the preview feature to check the generated invoice before saving.
To contribute or modify the project, ensure you have the required dependencies installed. The project uses PyQt6 for the GUI and LaTeX for generating invoices.
This project is licensed under the GNU General Public License v3.0.
