Skip to content

caveman210/Eventify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eventify

Disclaimer: Slop police, please leave me alone. I did slop a bit, just a teensy weensy bit, but the core parts of the program is all me. I'm sorry that I failed the No-Slop November ;-;

What is this?

This is a calendar application for the people who live in the terminal.

Not joking, this is exactly what this is. This project uses n8n to fetch data from Google Calendar, and then presents it to that homie who lives in the terminal (nerd, but yk what? I think it's kinda cute you do.) It uses a Textual TUI (python) to render it.

Project Status: The "Embrace the Quirks" Phase

Let's get one thing straight right off the bat: this is a hobby project. There is currently zero intention of deploying this into any sort of production environment anytime soon.

The project is currently in the final polishing stages of releasing a bare prototype / proof of concept. Hold your horses, this isn't for your judgement.

Prerequisites

Before you dive into this, you'll need a few things:

  • Python 3.10+ (We recommend using uv for dependency management because it's fast, and we like fast things).
  • Docker & Docker Compose (Crucial for running the n8n instance).
  • A terminal that supports true color (because we want our TUI to look fabulous).
  • A Google Calendar account (to actually have events to show).

How to Run It

Getting this up and running is a two-part dance:

  1. Spin up the Backend (n8n): Head over to src/eventify/backend/n8n/ and run the provided setup scripts (docker_setup.sh or docker_setup.ps1). This gets n8n running so it can grab your calendar data.
  2. Start the Frontend: From the root directory, install dependencies and run the main app. If you're using uv:
    uv sync
    uv run main.py

(Expect some hiccups. We warned you it's a prototype!)

Planned (Yet Unbaked) Features

We have big dreams for this little terminal app. Here's what's cooking but not quite ready to eat:

  • Local LLMs: AI-powered event summarization directly in your terminal.
  • RAG (Retrieval-Augmented Generation): Parsing PDFs and web links to automatically create calendar events.
  • Advanced TUI Animations: Making the terminal dance.

Directory Logic & Architecture

Here's a quick map of the beautiful mess we call our codebase:

  • src/eventify/frontend/: The visual core. Built with Textual (a Python TUI framework). This handles all the rendering—from the grid-like Monthly View to the list-based Schedule View, and the welcoming Greeter screen. It's the face of the operation. Note that all CSS-related styling is heavily (in development). That is, this thing is purely AI SLOP. I'll make a new one after I get time to figure out CSS.
  • src/eventify/backend/: The brain. This directory is reserved for all the heavy lifting, including (Planning to) add local LLM integration and RAG implementations (using tools like PyMuPDF and bs4/trafilatura) to make your calendar surprisingly smart.
  • src/eventify/backend/n8n/: The pipeline. This contains our n8n workflows and Docker setup scripts. It's the glue that pulls real-world data (like Google Calendar events) into our terminal.

Disclaimer (once again): Half of the features in here, say the Greeter and the LLM and the RAG are all in the planning stages, alright? I just wanted to release the bare thing I made. Mostly myself. (Sorry again, slop police.)

Well, I had to find a way to explain to my mum how I wasted all this time, and here we are. Appreciate your valuable time for taking a look around!