#!/usr/bin/env python # from https://gist.github.com/bjesus/178a9bd3453470d74803945dbbf9ed40 # List upcoming khal events in simple json container fit for waybar # # Hovering over the item displays all upcoming # The icon changes if there are events today, and displays the # closest upcoming one. import datetime import json import subprocess from html import escape data = {} today = datetime.date.today().strftime("%Y-%m-%d") next_week = (datetime.date.today() + datetime.timedelta(days=10)).strftime("%Y-%m-%d") output = subprocess.check_output("khal list now " + next_week, shell=True) output = output.decode("utf-8") lines = output.split("\n") new_lines: list[str] = [] for line in lines: clean_line = escape(line).split(" ::")[0] if len(clean_line) and clean_line[0] not in ["0", "1", "2"]: clean_line = "\n" + clean_line + "" new_lines.append(clean_line) output = "\n".join(new_lines).strip() if today in output: data["text"] = " " + output.split("\n")[1] else: data["text"] = "" data["tooltip"] = output print(json.dumps(data))