literate-dotfiles/calendar-contact.org
2022-05-09 10:08:41 +02:00

195 lines
5.3 KiB
Org Mode

#+TITLE:Calendar and Contact Configuration
#+SETUPFILE: ./setup/org-setup-file.org
* =vdirsyncer= - Synchronize calendars and contacts
:PROPERTIES:
:header-args: :tangle ~/.config/vdirsyncer/config
:header-args+: :comments both :mkdirp yes :noweb no-export
:END:
#+BEGIN_SRC conf
[general]
status_path = "~/.config/vdirsyncer/status/"
[pair radicale_calendar]
a = "radicale_calendar_remote"
b = "radicale_calendar_local"
collections = ["76bfc802-3186-e3af-f688-7e165115b4f8", "f78f1649-b54e-7bfe-488d-6a7005a5aa2f"]
conflict_resolution = "a wins"
[storage radicale_calendar_remote]
type = "caldav"
url = "https://radicale.tdehaeze.xyz/tdehaeze/"
username = "tdehaeze"
password.fetch = ["command", "get-pass", "radicale.tdehaeze.xyz/tdehaeze"]
[storage radicale_calendar_local]
type = "filesystem"
path = "~/.calendars/radicale/"
fileext = ".ics"
[pair esrf_calendar]
a = "esrf_calendar_remote"
b = "esrf_calendar_local"
collections = ["calendar"]
conflict_resolution = "a wins"
[storage esrf_calendar_remote]
type = "caldav"
url = "https://calendar.esrf.fr/egroupware/groupdav.php/calendar"
username = "dehaeze"
password.fetch = ["command", "get-pass", "esrf.fr/dehaeze"]
[storage esrf_calendar_local]
type = "filesystem"
path = "~/.calendars/esrf/"
fileext = ".ics"
[pair radicale_contacts]
a = "radicale_contacts_remote"
b = "radicale_contacts_local"
collections = ["98ee5e2c-afcf-70e0-c4a2-9fb9de2e97b7"]
conflict_resolution = "a wins"
[storage radicale_contacts_local]
type = "filesystem"
path = "~/.contacts/"
fileext = ".vcf"
[storage radicale_contacts_remote]
type = "carddav"
url = "https://radicale.tdehaeze.xyz/tdehaeze/"
username = "tdehaeze"
password.fetch = ["command", "get-pass", "radicale.tdehaeze.xyz/tdehaeze"]
#+END_SRC
* =khal= - CLI calendar application
:PROPERTIES:
:header-args: :tangle ~/.config/khal/config
:header-args+: :comments both :mkdirp yes
:END:
#+BEGIN_SRC conf
[calendars]
[[Home]]
path = ~/.calendars/radicale/76bfc802-3186-e3af-f688-7e165115b4f8/
color = "#B8BB26" # Green
[[Thesis]]
path = ~/.calendars/radicale/f78f1649-b54e-7bfe-488d-6a7005a5aa2f/
color = "#FB4934" # Red
[[ESRF]]
path = ~/.calendars/esrf/calendar/
color = "#83A598" # Blue
[[Birthdays]]
path = ~/.contacts/98ee5e2c-afcf-70e0-c4a2-9fb9de2e97b7/
color = "#D3869B" # aqua
type = birthdays
[highlight_days]
multiple = "#FABD2F" # Yellow
[default]
highlight_event_days = True
[locale]
local_timezone= Europe/Berlin
default_timezone= Europe/Berlin
timeformat= %H:%M
dateformat= %d.%m.
longdateformat= %d.%m.%Y
datetimeformat= %d.%m. %H:%M
longdatetimeformat= %d.%m.%Y %H:%M
[keybindings]
delete = d
today = .
new = c
#+END_SRC
* =khard= - CLI contact application
:PROPERTIES:
:header-args: :tangle ~/.config/khard/khard.conf
:header-args+: :comments both :mkdirp yes
:END:
#+BEGIN_SRC conf
[addressbooks]
[[contacts]]
path = ~/.contacts/98ee5e2c-afcf-70e0-c4a2-9fb9de2e97b7/
[general]
debug = no
default_action = list
editor = vim
merge_editor = vimdiff
[contact table]
# display names by first or last name: first_name / last_name
display = first_name
# group by address book: yes / no
group_by_addressbook = no
# reverse table ordering: yes / no
reverse = no
# append nicknames to name column: yes / no
show_nicknames = no
# show uid table column: yes / no
show_uids = no
# sort by first or last name: first_name / last_name
sort = last_name
# localize dates: yes / no
localize_dates = yes
# set a comma separated list of preferred phone number types in descending priority
# or nothing for non-filtered alphabetical order
preferred_phone_number_type = pref, cell, home
# set a comma separated list of preferred email address types in descending priority
# or nothing for non-filtered alphabetical order
preferred_email_address_type = pref, work, home
[vcard]
# extend contacts with your own private objects
# these objects are stored with a leading "X-" before the object name in the vcard files
# every object label may only contain letters, digits and the - character
# example:
# private_objects = Jabber, Skype, Twitter
private_objects = Jabber, Skype, Twitter
# preferred vcard version: 3.0 / 4.0
preferred_version = 3.0
# Look into source vcf files to speed up search queries: yes / no
search_in_source_files = no
# skip unparsable vcard files: yes / no
skip_unparsable = no
#+END_SRC
* =ics-add= - Add ICS file to Khal
:PROPERTIES:
:CUSTOM_ID: ics-add
:header-args:bash: :comments both :mkdirp yes
:header-args:bash+: :shebang "#!/usr/bin/env bash"
:header-args:bash+: :tangle-mode (identity #o555)
:header-args:bash+: :tangle ~/.local/bin/ics-add
:END:
This function is useful to easily add an event to =khal=.
It is for instance used in the =mutt= configuration.
To share an event by email, the currently best way to proceed is to first find the event on =khal=, press =e= to export it to a file, and then add this file as an attachment.
#+begin_src bash
if [[ -f $1 ]]; then
resp=$(echo -e "yes\nno" | rofi -i -only-match -dmenu -p "Would you like to add the event:" -mesg "`khal printics \"$1\" | tail -n +2`")
if [[ "$resp" == "yes" ]]; then
calendar=$(echo "`khal printcalendars`" | rofi -i -only-match -dmenu -p "Save to:")
if [ -z "$calendar" ]; then
exit;
fi
khal import -a "$calendar" --batch "$1" && \
notify-send --hint=string:x-dunst-stack-tag:fJeNG8gc "Calendar" "Even added";
fi
fi
#+end_src