Skip to main content

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.

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.1.tar.gz (96.7 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.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

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

Hashes for text2ics-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f03bc4fa0f90223fe40b2d37841543e07a09261a2bc70829a0e89ffbeb497e5d
MD5 638161abe1bd2a97c0f9ecffc24faab0
BLAKE2b-256 18a49c8e37026da7cc58cee2300bef7ac91cfd868b0c21b4e27ff1828d2d87c7

See more details on using hashes here.

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

Hashes for text2ics-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e68a5813223472f5beaec97314b0193c612b8d17b12f1ba273978f8770e267ba
MD5 a43a15ac9b478b92ef0a0ccdef40211f
BLAKE2b-256 3b5118ac8536bb66ef1d78ad566ff298806745bd347877a2ecbd9576fa3c79ca

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