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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for text2ics-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e54072888a09a999d28e4b539853e4c1dabb7590ee3c15e97a07d4c28ad7982d
MD5 7e777f32b91b78733b25bbdb5df71d63
BLAKE2b-256 ea38ce808901d1ca4b86d83d55e0ab12e039136c3d22bae97caf8d7f42bfd0bd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: text2ics-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 021610522a7d8a059489a0f491560c26a7b8583b8900f29b5b6cf0b4ae7a4791
MD5 9059f547737ceef3c51d5bbad09d7479
BLAKE2b-256 e9101b1974eec8c2e33b7871bfa2ee15614266e7b1f1fce0b3271a96dcf5526b

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