A Python tool to convert unstructured text into an ICS calendar file using an LLM.
Project description
text2ics
A Python tool to convert unstructured text into an ICS calendar file using an LLM. It provides both a command-line interface (CLI) and a Streamlit web application.
💾 Installation
Ensure you have Python installed, then clone the repository and install the dependencies.
# using pip
pip install text2ics
# or run directly with uv
uvx text2ics
You will also need an API key for a compatible LLM service (like OpenAI).
🚀 Usage
Command-Line Interface (CLI)
The CLI allows you to convert a text file to an ICS file directly. Set your API key as an environment variable first.
export <OPENAI|CLAUDE|GEMINI>_API_KEY="your-api-key"
text2ics path/to/your/textfile.txt > events.ics
For more options, run text2ics --help.
Streamlit Web App
The web app provides an interactive way to convert text.
streamlit run app/app.py
Open your browser to the URL provided by Streamlit to use the application.
🧱 Development
This project uses uv for dependency management and poethepoet for running tasks.
Install all dependencies, including for development:
uv sync --all-extras
Run common development tasks:
uv run poe fmt # Format code
uv run poe lint # Lint and fix
uv run poe check # Type-check
uv run poe test # Run tests
uv run poe all # Run all checks
🦺 CI/CD
The repository is set up with GitHub Actions to automate checks on pull requests and to handle releases.
- pr.yml: Validates pull requests.
- release.yml: Manages releases to PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file text2ics-0.1.1.tar.gz.
File metadata
- Download URL: text2ics-0.1.1.tar.gz
- Upload date:
- Size: 96.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f03bc4fa0f90223fe40b2d37841543e07a09261a2bc70829a0e89ffbeb497e5d
|
|
| MD5 |
638161abe1bd2a97c0f9ecffc24faab0
|
|
| BLAKE2b-256 |
18a49c8e37026da7cc58cee2300bef7ac91cfd868b0c21b4e27ff1828d2d87c7
|
File details
Details for the file text2ics-0.1.1-py3-none-any.whl.
File metadata
- Download URL: text2ics-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e68a5813223472f5beaec97314b0193c612b8d17b12f1ba273978f8770e267ba
|
|
| MD5 |
a43a15ac9b478b92ef0a0ccdef40211f
|
|
| BLAKE2b-256 |
3b5118ac8536bb66ef1d78ad566ff298806745bd347877a2ecbd9576fa3c79ca
|