PIMSYNC.CONF(5) File Formats Manual PIMSYNC.CONF(5) (NAME) pimsync.conf - pimsync (DESCRIPTION) pimsync.conf : (GLOBAL CONFIGURATION) pimsync. (STORAGE SECTIONS) . (PAIR SECTIONS) . pimsync(1) . (GLOBAL CONFIGURATION) : status_path path pimsync.conf . (STORAGE SECTIONS) (storage) . . storage name {} name. . : type type type : vdir/icalendar . icalendar ( ) (todo) (journal entry) . vdir/vcard . vcard . caldav CalDAV / . carddav CardDAV . webcal HTTP HTTPS iCalendar . . jmap/icalendar JMAP . ! jmap/vcard JMAP . ! interval seconds . . read_only . . vdir : path path vdir. (~) . (DYNAMIC PARAMETERS) ( ). fileext extension . vdir. ics vcf . caldav carddav : url url URL Dav. DAV (service discovery) URL (home set collection) . URL http https unix . unix:// . (DYNAMIC PARAMETERS) ( ). username username . HTTP (Basic Auth). (DYNAMIC PARAMETERS) ( ). password password . HTTP (Basic Auth). (DYNAMIC PARAMETERS) ( ). collection_id_segment last | second-last . URL . last () second-last. . webcal : url url URL icalendar. . http https . (DYNAMIC PARAMETERS) ( ). collection_id name . jmap : url url URL JMAP. (DYNAMIC PARAMETERS) ( ). username username . HTTP (Basic Auth). (DYNAMIC PARAMETERS) ( ). password password . HTTP (Basic Auth). (DYNAMIC PARAMETERS) ( ). caldav carddav webcal jmap : user_agent user_agent . User-Agent user_agent HTTP . "pimsync/" . : pimsync/1.0.0. tls_root path . path TLS . (CA) . tls_fingerprint . tls_fingerprint fingerprint . fingerprint . tls_root . tls_root . auth_cert certificate key . certificate key TLS. auth_cert pem_bundle . TLS. (DYNAMIC PARAMETERS) url username password path . cmd . secret-store --get-caldav-password : password { cmd secret-store --get-caldav-password } `sh -c' . : password { shell pass show communication/migadu.com | head -1 } . (PAIR SECTIONS) (pair) . : pair name {} name. : storage_a name ( name ) . storage_b name ( name ) . collections all . . . collections from a storage_a. storage_b . collections from b storage_b. storage_a . collection id id. . collection file ... {} . (COLLECTION SECTIONS) . . on_empty skip . . on_empty sync . . pimsync.conf ( ) . on_delete sync . . on_empty skip . on_delete skip . one_way storage_a storage_b. storage_b storage_a . storage_b storage_a . (conflict) . . conflict_resolution . . conflict_resolution cmd command [args] command . args storage a storage b. . conflict_resolution keep a storage a . conflict_resolution keep b storage b . (COLLECTION SECTIONS) collections storage_a storage_b. . (alias) : alias name . storage_a : id_a id id. href_a href href. storage_b : id_b id id. href_b href href. work /calendars/mine/work/ : collection { alias work id_a work href_b /calendars/mine/work/ } id href . (COLLECTION ID) pimsync(1) vdirsyncer(1) . vdir . caldav carddav URL . collection_id_segment . webcal collection_id . . (EXAMPLES) . vCard CardDAV . hiq(1) . status_path "~/.local/share/pimsync/status/" pair contacts { storage_a contacts_local storage_b contacts_remote collections all conflict_resolution cmd nvim -d } storage contacts_local { type vdir/vcard path ~/.local/share/contacts/cards/ fileext vcf interval 30 } storage contacts_remote { type carddav url https://carddav.example.com username hugo@example.com password { cmd hiq -dFpassword proto=carddavs username=hugo@example.com } interval 30 } . iCalendar CalDAV . status_path "~/.local/share/pimsync/status/" pair calendars { storage_a calendars_local storage_b calendars_remote collections from b conflict_resolution cmd nvim -d } storage calendars_local { type vdir/icalendar path ~/.local/share/calendars/ fileext ics interval 30 } storage calendars_remote { type caldav url https://caldav.example.com username hugo@example.com password { cmd hiq -dFpassword proto=caldavs username=hugo@example.com } interval 30 } . "italki" http iCalendar . . iCalendar http hiq(1) himitsu(7) . status_path "~/.local/share/pimsync/status/" pair study_calendars { storage_a calendars_local storage_b calendars_italki collection italki } storage calendars_local { type vdir/icalendar path ~/.local/share/calendars/ fileext ics interval 30 } storage calendars_italki { type webcal collection_id italki url { cmd hiq -dFurl proto=webcal alias=italki-mine } } . CardDAV . vCard . status_path "~/.local/share/pimsync/status/" pair unixtest { storage_a unix_a storage_b unix_b collections all } storage unix_a { type carddav url unix:///tmp/xandikos.sock } storage unix_b { type vdir/vcard path /tmp/test_storage/ fileext vcf } (SEE ALSO) pimsync(1), pimsync-migration(7) scfg . : https://git.sr.ht/~emersion/scfg PIMSYNC 2025-04-14 PIMSYNC