nixos/system/home/calendar/default.nix
Evie Litherland-Smith 987cfbacae Combine different pass scripts into single ensure-pass.sh
Use password-store where possible to populate secret store without
user interaction (currently only Proton still needs manual input)

Add spotify to secret store ready for spotifyd
2024-10-16 07:52:52 +01:00

74 lines
1.9 KiB
Nix

{ config, pkgs, ... }:
{
programs = {
vdirsyncer.enable = true;
khal = {
enable = true;
locale = {
timeformat = "%H:%M";
dateformat = "%Y-%m-%d";
longdateformat = "%Y-%m-%d %a";
datetimeformat = "%Y-%m-%d %H:%M";
longdatetimeformat = "%Y-%m-%d %H:%M";
};
};
};
services.vdirsyncer = {
inherit (config.programs.vdirsyncer) enable package;
frequency = "*:0/30"; # Every 30 minutes
};
accounts.calendar = {
basePath = "Calendar";
accounts = {
main =
let
url = "dav.xenia.me.uk";
in
{
primary = true;
primaryCollection = "personal";
local = {
type = "filesystem";
fileExt = ".ics";
};
remote =
let
userName = "pixelifytica";
in
{
inherit userName;
url = "https://${url}";
type = "caldav";
passwordCommand = [
"${pkgs.libsecret}/bin/secret-tool"
"lookup"
"url"
"${url}"
"user"
"${userName}"
];
};
vdirsyncer = {
inherit (config.programs.vdirsyncer) enable;
auth = "basic";
collections = [
"personal"
"work"
"other"
];
metadata = [ "displayname" ];
timeRange = {
start = "datetime.now() - timedelta(days=365)";
end = "datetime.now() + timedelta(days=365)";
};
};
khal = {
inherit (config.programs.khal) enable;
type = "discover";
addresses = with config.accounts.email.accounts.proton; [ address ] ++ aliases;
};
};
};
};
}