nixos/home/accounts/calendar.nix

65 lines
1.6 KiB
Nix
Raw Normal View History

{ config, lib, pkgs, ... }:
{
2023-09-26 10:02:40 +01:00
programs = {
vdirsyncer.enable = true;
khal.enable = true;
};
2023-10-01 09:17:45 +01:00
services.vdirsyncer.enable = true;
accounts.calendar = {
basePath = ".calendar";
accounts = let
local = {
type = "filesystem";
fileExt = ".ics";
};
in {
nextcloud = rec {
inherit local;
2023-10-02 18:10:48 +01:00
primary = lib.mkDefault true;
2023-09-26 10:02:40 +01:00
primaryCollection = "Personal";
remote = {
type = "caldav";
url = "https://cloud.xenia.me.uk/remote.php/dav";
userName = "xenia";
passwordCommand = [
"${pkgs.libsecret}/bin/secret-tool"
"lookup"
"url"
2023-09-30 10:10:32 +01:00
"cloud.xenia.me.uk"
];
};
vdirsyncer = {
2023-10-02 18:10:48 +01:00
enable = lib.mkDefault true;
collections = [ "from a" ];
metadata = [ "color" "displayname" ];
};
2023-09-26 10:02:40 +01:00
khal = {
inherit (vdirsyncer) enable;
2023-09-26 10:02:40 +01:00
type = "discover";
};
};
ukaea = let emailConfig = config.accounts.email.accounts.ukaea;
in rec {
inherit local;
2023-10-02 18:10:48 +01:00
primaryCollection = "Calendar";
remote = rec {
inherit (emailConfig) userName passwordCommand;
type = "caldav";
url = "http://localhost:1080/users/${userName}/calendar/";
};
2023-10-02 18:10:48 +01:00
vdirsyncer = {
enable = lib.mkDefault emailConfig.mbsync.enable;
collections = [ "calendar" ];
2023-10-02 18:10:48 +01:00
metadata = [ "color" "displayname" ];
itemTypes = [ "VEVENT" ];
};
khal = {
inherit (vdirsyncer) enable;
2023-10-02 18:10:48 +01:00
type = "discover";
};
};
};
};
}