{ config, lib, ... }: let cfg = config.local.programs.calendar; mkCalOpts = name: { enable = lib.mkEnableOption name; # Custom package doesn't work yet. # See: https://github.com/nix-community/home-manager/pull/5428 # package = lib.mkPackageOption pkgs name { }; }; in { options.local.programs.calendar = { khal = mkCalOpts "khal"; }; config = { accounts.calendar.basePath = "${config.xdg.dataHome}/calendars"; programs.khal = lib.mkIf cfg.khal.enable { enable = true; locale = rec { timeformat = "%H:%M"; dateformat = "%Y-%m-%d"; longdateformat = dateformat; datetimeformat = "${dateformat} ${timeformat}"; longdatetimeformat = datetimeformat; }; # See: https://khal.readthedocs.io/en/latest/configure.html settings = {}; }; }; }