# Calcurse

Calcurse è un calendario e un'applicazione di pianificazione per la riga di comando. Aiuta a tenere traccia di eventi, appuntamenti e attività quotidiane. Supporta la sincronizzazione tramite protocollo
CalDAV.

Maggiori informazioni: [Calcurse](https://calcurse.org/)

## Installazione

```bash
cd ~
wget -c https://calcurse.org/files/calcurse-4.8.0.tar.gz
```

Quindi procedere coi seguenti comandi:

```bash
tar xvf calcurse-4.8.0.tar.gz
cd calcurse-4.8.0/

# Se non presente, installare la seguente libreria
# sudo apt install install libncursesw5-dev

./configure
make
sudo make install
```

Ora è possibile eseguire il programma:

```bash
calcurse
```

Premendo il tasto `C` si accede alla configurazione.

```bash
cat ~/.calcurse/conf 

appearance.calendarview=monthly
appearance.compactpanels=no
appearance.defaultpanel=calendar
appearance.layout=4
appearance.headerline=yes
appearance.eventseparator=yes
appearance.dayseparator=yes
appearance.emptyline=yes
appearance.emptyday=--
appearance.notifybar=yes
appearance.sidebarwidth=3
appearance.theme=magenta on default
appearance.todoview=hide-completed
appearance.headingpos=right-justified
daemon.enable=no
daemon.log=no
format.inputdate=1
format.notifydate=%a %F
format.notifytime=%T
format.outputdate=%D
format.dayheading=%B %e, %Y
general.autogc=no
general.autosave=yes
general.confirmdelete=yes
general.confirmquit=yes
general.firstdayofweek=monday
general.multipledays=yes
general.periodicsave=0
general.systemevents=yes
notification.command=printf '\a'
notification.notifyall=flagged-only
notification.warning=300
format.appointmenttime=%H:%M
```

## Configurazione

```bash
cd ~
calcurse -C .calcurse/

cd .calcurse/caldav/

vim config

[General]
Binary = calcurse
Hostname = murena.io
Path = /remote.php/dav/calendars/login@e.email/personal
AuthMethod = basic
InsecureSSL = No
HTTPS = Yes
SyncFilter = cal,todo
DryRun = No
Verbose = No

[Auth]
Username = user@e.email
Password = *******************

# Quindi abilitare la sincronizzazione

calcurse-caldav --init=two-way
```

### Sincronizzazione

Le modifiche vengono caricate in remoto e scaricate in locale col comando:

```bash
calcurse-caldav
```

Per la sincronizzazione automatica è possibile abilitare un cronjob ogni 5 minuti, oppure crearsi un alias, in questo modo:

```bash
cd ~
vim .bashrc

alias cc="calcurse-caldav >> ~/calcurse.log && calcurse -q"

source .bashrc
```

oppure:

```
crontab -e

*/5 * * * * echo -e "\n" >> ~/calcurse.log  && date >> ~/calcurse.log && calcurse-caldav >> ~/calcurse.log
```

![calcurse](./asset/calcurse/calcurse.png)

## Comandi rapidi

```bash
calcurse -a  # stampa gli appuntamenti del giorno
calcurse -d n  # stampa gli appuntamenti da oggi e per gli "n" giorni successivi 
calcurse -d 3
calcurse -d gg/mm/aaaa  # stampa gli appuntamenti per uno specifico giorno ù
calcurse -d 13/12/2022
calcurse -n  # stampa il prossimo appuntamento entro le 24 ore (quello più vicino)
calcurse -t(n)  # stampa la lista delle attività. Opzionalmente si può indicare il livello di priorità
calcurse t2  # stampa attività di priorità 2)
```

## Collegamenti

- [https://community.e.foundation/t/calendar-sync-ecloud-x-calcurse-calcurse-caldav/33134](https://community.e.foundation/t/calendar-sync-ecloud-x-calcurse-calcurse-caldav/33134)
- [https://calcurse.org/files/calcurse-caldav.html](https://calcurse.org/files/calcurse-caldav.html)
- [https://calcurse.org/files/manual.html](https://calcurse.org/files/manual.html)
- [https://github.com/lfos/calcurse/issues/301](https://github.com/lfos/calcurse/issues/301)
- [https://github.com/lfos/calcurse/blob/pu/contrib/caldav/config.sample](https://github.com/lfos/calcurse/blob/pu/contrib/caldav/config.sample)
- [https://github.com/lfos/calcurse](https://github.com/lfos/calcurse)
