Skip to main content

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.

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)

Source distribution for text2ics 0.1.2
File Size Uploaded
text2ics-0.1.2.tar.gz 113.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for text2ics 0.1.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page