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.
Metadata
Release files for text2ics 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| text2ics-0.1.2.tar.gz | 113.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| text2ics-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 122.1 kB
Release files / text2ics-0.1.2.tar.gz
| Download URL | text2ics-0.1.2.tar.gz |
|---|---|
| Size | 113.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e54072888a09a999d28e4b539853e4c1dabb7590ee3c15e97a07d4c28ad7982d
|
|
BLAKE2b-256 checksum How to use checksums |
ea38ce808901d1ca4b86d83d55e0ab12e039136c3d22bae97caf8d7f42bfd0bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.19
|
Release files / text2ics-0.1.2-py3-none-any.whl
| Download URL | text2ics-0.1.2-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
021610522a7d8a059489a0f491560c26a7b8583b8900f29b5b6cf0b4ae7a4791
|
|
BLAKE2b-256 checksum How to use checksums |
e9101b1974eec8c2e33b7871bfa2ee15614266e7b1f1fce0b3271a96dcf5526b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.19
|