Skip to main content

Python library to convert text into a ics file with a streamlit app for interaction

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

text2ics-0.1.0.tar.gz (96.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

text2ics-0.1.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file text2ics-0.1.0.tar.gz.

File metadata

  • Download URL: text2ics-0.1.0.tar.gz
  • Upload date:
  • Size: 96.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.19

File hashes

Hashes for text2ics-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0171d60076ac98dfe67bf81f295827c91f111dd54cc6a33dec613045d867c6e5
MD5 ad993fdb91a293c29cae9943a56eef30
BLAKE2b-256 56aa031f3a80126a758ab208febebe9d4d8b4d90fb752df1c4fe8e76e5e8bfa2

See more details on using hashes here.

File details

Details for the file text2ics-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: text2ics-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.19

File hashes

Hashes for text2ics-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 259f0f0b25dae1099b65e25162c435399f8bc31fdb6b7fbdfc016d40acdba988
MD5 95c192ba7b61ec044ca637101d38cc8d
BLAKE2b-256 0c02bc47790b4b11941d52854b4692f66e8a80942fc56c941b979422b5bedf8a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page