2023-09-25 14:22:51 +01:00
|
|
|
{ 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;
|
2023-09-25 14:22:51 +01:00
|
|
|
accounts.calendar = {
|
|
|
|
basePath = ".calendar";
|
2023-10-03 07:59:00 +01:00
|
|
|
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-10-10 18:55:45 +01:00
|
|
|
primaryCollection = "personal";
|
2023-09-25 14:22:51 +01:00
|
|
|
remote = {
|
|
|
|
type = "caldav";
|
|
|
|
url = "https://cloud.xenia.me.uk/remote.php/dav";
|
|
|
|
userName = "xenia";
|
2023-09-30 10:05:47 +01:00
|
|
|
passwordCommand = [
|
|
|
|
"${pkgs.libsecret}/bin/secret-tool"
|
|
|
|
"lookup"
|
|
|
|
"url"
|
2023-09-30 10:10:32 +01:00
|
|
|
"cloud.xenia.me.uk"
|
2023-09-30 10:05:47 +01:00
|
|
|
];
|
2023-09-25 14:22:51 +01:00
|
|
|
};
|
|
|
|
vdirsyncer = {
|
2023-10-02 18:10:48 +01:00
|
|
|
enable = lib.mkDefault true;
|
2023-09-25 14:22:51 +01:00
|
|
|
collections = [ "from a" ];
|
|
|
|
metadata = [ "color" "displayname" ];
|
|
|
|
};
|
2023-09-26 10:02:40 +01:00
|
|
|
khal = {
|
2023-10-03 07:59:00 +01:00
|
|
|
inherit (vdirsyncer) enable;
|
2023-10-10 18:55:45 +01:00
|
|
|
color = "dark magenta";
|
2023-09-26 10:02:40 +01:00
|
|
|
type = "discover";
|
|
|
|
};
|
2023-09-25 14:22:51 +01:00
|
|
|
};
|
2023-10-03 07:59:00 +01:00
|
|
|
ukaea = let emailConfig = config.accounts.email.accounts.ukaea;
|
|
|
|
in rec {
|
|
|
|
inherit local;
|
2023-10-10 10:20:43 +01:00
|
|
|
primary = lib.mkDefault false;
|
|
|
|
primaryCollection = "Work";
|
2023-09-29 09:55:52 +01:00
|
|
|
remote = rec {
|
2023-10-03 07:59:00 +01:00
|
|
|
inherit (emailConfig) userName passwordCommand;
|
2023-09-29 09:55:52 +01:00
|
|
|
type = "caldav";
|
|
|
|
url = "http://localhost:1080/users/${userName}/calendar/";
|
|
|
|
};
|
2023-10-02 18:10:48 +01:00
|
|
|
vdirsyncer = {
|
2023-10-03 07:59:00 +01:00
|
|
|
enable = lib.mkDefault emailConfig.mbsync.enable;
|
2023-10-11 09:42:03 +01:00
|
|
|
collections = [ "Work" "Operations" ];
|
2023-10-02 18:10:48 +01:00
|
|
|
metadata = [ "color" "displayname" ];
|
|
|
|
itemTypes = [ "VEVENT" ];
|
|
|
|
};
|
|
|
|
khal = {
|
2023-10-03 07:59:00 +01:00
|
|
|
inherit (vdirsyncer) enable;
|
2023-10-10 18:55:45 +01:00
|
|
|
color = "dark cyan";
|
2023-10-02 18:10:48 +01:00
|
|
|
type = "discover";
|
|
|
|
};
|
2023-09-29 09:55:52 +01:00
|
|
|
};
|
2023-10-10 10:20:43 +01:00
|
|
|
outlook = rec {
|
|
|
|
inherit local;
|
|
|
|
remote = {
|
|
|
|
type = "http";
|
|
|
|
url =
|
|
|
|
"https://outlook.office365.com/owa/calendar/57fac11ebefa4d76936bb57c58cea2c0@ukaea.uk/f00cf5046175418c881b15ae1734d35f4235780993826029606/S-1-8-4280276996-1465607807-3846002500-2142210095/reachcalendar.ics";
|
|
|
|
};
|
|
|
|
vdirsyncer = {
|
|
|
|
enable = true;
|
|
|
|
collections = null;
|
|
|
|
};
|
|
|
|
khal = {
|
|
|
|
inherit (vdirsyncer) enable;
|
|
|
|
color = "dark blue";
|
|
|
|
type = "calendar";
|
|
|
|
readOnly = true;
|
|
|
|
};
|
|
|
|
};
|
2023-09-25 14:22:51 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|