diff --git a/config.el b/config.el index 8344c72..6f70a36 100644 --- a/config.el +++ b/config.el @@ -1733,49 +1733,22 @@ current frame." ;;; --- Tier 1: High impact --- ;; org-caldav — CalDAV sync for org (Baikal, Basic auth over HTTPS) -;; Add to ~/.authinfo (chmod 600): +;; Credentials via ~/.authinfo (chmod 600): ;; machine cal.apps.sukany.cz login martin password YOUR_PASSWORD (use-package! org-caldav :commands my/org-caldav-sync :config - (defun my/caldav-preregister-basic-auth () - "Read CalDAV credentials from auth-source and pre-register for Basic auth. -This bypasses auth-source retry issues during CalDAV requests. -Requires ~/.authinfo entry: - machine cal.apps.sukany.cz login martin password " - (require 'url-auth) - (require 'auth-source) - (let* ((entry (car (auth-source-search - :host "cal.apps.sukany.cz" - :user "martin" - :max 1 - :require '(:user :secret)))) - (user (when entry (plist-get entry :user))) - (secret (when entry (plist-get entry :secret))) - (pass (when secret (if (functionp secret) (funcall secret) secret)))) - (if (and user pass) - (progn - ;; Pre-register in url-basic-auth-storage: (server realm user pass) - (setq url-basic-auth-storage - (cl-remove "cal.apps.sukany.cz" url-basic-auth-storage - :key #'car :test #'equal)) - (push (list "cal.apps.sukany.cz" "BaikalDAV" user pass) - url-basic-auth-storage) - t) - (user-error "CalDAV: no credentials found.\nAdd to ~/.authinfo:\n machine cal.apps.sukany.cz login martin password ")))) - + (setq org-caldav-url "https://cal.apps.sukany.cz/dav.php/calendars/martin" + org-caldav-calendar-id "default" + org-caldav-inbox "~/org/caldav-inbox.org" + org-caldav-files '("~/org/personal.org" "~/org/work.org") + org-caldav-sync-direction 'twoway) (defun my/org-caldav-sync () - "Sync org-caldav: personal calendar (twoway) + family calendar (read-only)." + "Sync org-caldav — personal calendar (twoway). +Credentials must be in ~/.authinfo: + machine cal.apps.sukany.cz login martin password " (interactive) - (my/caldav-preregister-basic-auth) - ;; Personal calendar — twoway, new events created here - (setq org-caldav-url "https://cal.apps.sukany.cz/dav.php/calendars/martin" - org-caldav-calendar-id "default" - org-caldav-inbox "~/org/caldav-inbox.org" - org-caldav-files '("~/org/personal.org" "~/org/work.org") - org-caldav-sync-direction 'twoway) - (org-caldav-sync) - (message "CalDAV sync complete: personal (twoway)"))) + (org-caldav-sync))) (map! :leader "o c" #'my/org-caldav-sync)