{ config, ... }: let metaRepo = config.meta.lib.repo; in { flake.modules.homeManager.pim = { config, ... }: let calendarsPath = "${config.xdg.dataHome}/calendars"; in { programs.pimsync.enable = true; services.pimsync.enable = true; programs.khal = { enable = false; locale = { timeformat = "%H:%M"; dateformat = "$m-$d"; }; }; programs.todoman = { enable = true; glob = "*/*"; extraConfig = '' date_format = "%Y-%m-%d" time_format = "%H:%M" default_list = "personal" default_due = 0 default_command = "list --sort priority,due" humanize = True ''; }; accounts.calendar = { basePath = calendarsPath; accounts.radicale = { primary = true; primaryCollection = "personal"; local = { type = "filesystem"; fileExt = ".ics"; }; remote = { url = metaRepo.services.radicale.url; type = "caldav"; userName = config.home.username; passwordCommand = [ "rbw" "get" "Radicale" ]; }; pimsync = { enable = true; extraPairDirectives = [ { name = "collections"; params = [ "from b" ]; } ]; }; khal = { enable = true; type = "discover"; color = "light blue"; }; }; }; }; }