omniflake/home/calendars.nix
2023-12-12 12:26:50 +01:00

117 lines
3.2 KiB
Nix

{ config, pkgs, ... }:
let
baikalRemote = slug: {
passwordCommand = [ "secret-tool" "lookup" "server" "baikal.ktiu.net" "account" "till" ];
userName = "till";
type = "caldav";
url = "https://baikal.ktiu.net/dav.php/calendars/till/${slug}";
};
calDefaults = {
khal.type = "calendar";
local = {
type = "filesystem";
fileExt = ".ics";
};
vdirsyncer.enable = true;
};
in
{
services.vdirsyncer.enable = true;
programs.vdirsyncer.enable = true;
programs.khal = {
enable = true;
locale = {
timeformat = "%H:%M";
dateformat = "%d %b";
longdateformat = "%d %b %Y";
datetimeformat = "%d %b %H:%M";
longdatetimeformat = "%d %b %Y %H:%M";
weeknumbers = "left";
};
settings = {
default = {
timedelta = "5d";
print_new = "event";
};
keybindings.external_edit = "ctrl e";
view = {
agenda_event_format = "{calendar-color}{cancelled}{start-end-time-style} {title}{repeat-symbol} {location} {url}{reset}";
event_format = "{calendar-color}{cancelled}{start}-{end} {title}{repeat-symbol} {location} {url}{reset}";
"blank_line_before_day" = true;
};
};
};
accounts.calendar.basePath = "${config.xdg.dataHome}/calendars";
accounts.calendar.accounts = {
till = {
khal.enable = true;
local = {
type = "filesystem";
fileExt = ".ics";
};
vdirsyncer.enable = true;
primary = true;
primaryCollection = "till";
khal.color = "light blue";
remote = baikalRemote "default";
};
mitlisa = calDefaults // {
khal.enable = true;
khal.color = "light magenta";
remote = baikalRemote "867d77c5-088f-4617-aeb8-6c9a18925e30";
};
family = calDefaults // {
khal.enable = true;
khal.color = "dark magenta";
remote = baikalRemote "75db196d-bc81-4de3-96dc-d4c068c1234b";
};
bdays = calDefaults // {
khal.enable = true;
khal.color = "yellow";
remote = baikalRemote "geburtstage";
};
polit = calDefaults // {
khal.enable = true;
khal.color = "dark gray";
remote = baikalRemote "polit";
};
ihg = calDefaults // {
khal.enable = true;
khal.color = "dark cyan";
remote = {
type = "http";
url = "https://geocom.uni-frankfurt.de/radicale/ihg/5012a739-dbaf-334b-f093-8db1860bc26e/";
};
};
"mittelbau" = calDefaults // {
khal.enable = true;
khal.color = "light cyan";
remote = {
type = "http";
url = "https://geocom.uni-frankfurt.de/radicale/ihg/d806b31d-dd3d-9d97-d3e5-f179addeb60a/";
};
};
"eintracht_m" = calDefaults // {
khal.enable = true;
khal.color = "light red";
remote = {
type = "http";
url = "http://i.cal.to/ical/257/eintrachtfrankfurt/spielplan/28ae0d30.f781380b-e6f28bd4.ics";
};
};
"eintracht_f" = calDefaults // {
khal.enable = true;
khal.color = "dark red";
remote = {
type = "http";
url = "http://i.cal.to/ical/5940/eintrachtfrankfurt/spielplan-frauen-profis/28ae0d30.f781380b-1763bff2.ics";
};
};
};
}