Afficher/cacher Sommaire
calendar-cli
Avoir la possibilité de consulter , ajouter et effacer des événements d’un calendrier dans un serveur caldav
Les dépendances
icalendar library - https://pypi.python.org/pypi/icalendar :
sudo pip2 install icalendar
caldav library - [[https://pypi.python.org/pypi/caldav]] :
sudo pip2 install caldav
tzlocal
sudo pip2 install tzlocal
Installation calendar-cli
Installation calendar-cli
cd ~/scripts
git clone https://github.com/tobixen/calendar-cli
Création d’un lien nommé calendarcmd
sudo ln -s /home/yannick/scripts/calendar-cli/calendar-cli.py /usr/local/bin/calendarcmd
Le fichier de configuration ~/.config/calendar.conf au format json
nano ~/.config/calendar.conf
{ "default":
{ "caldav_url": "http://foo.bar.example.com/caldav/",
"caldav_user": "luser",
"caldav_pass": "insecure"
}
}
Les droits sur le fichier de configuration
chmod 0600 ~/.config/calendar.conf
Les tests
Ajout événement au calendrier à une date et heure précises ,de durée 2 heures
calendarcmd calendar add '2016-05-18 11:45:00+2h' 'Test calendrier en ligne de commande'
Réponse
`Added event with uid=0261bdcc-1c4a-11e6-9702-048d38375cb8
Lecture agenda à partir du 17 mai 2016 de 14 jours (17 au 30 mai)
calendarcmd calendar agenda --from-time=2016-05-17 --agenda-days=14
Réponse
2016-05-18 11:45 (Wed) Test calendrier en ligne de commande
2016-05-30 07:30 (Mon) SSL Letsencrypt
Lecture agenda à partir du 17 mai 2016 de 14 jours (17 au 30 mai) ,affichage identifiant uid
calendarcmd calendar agenda --from-time=2016-05-17 --agenda-days=14 --event-template='{dstart} {uid}'
Réponse
2016-05-18 11:45 (Wed) 0261bdcc-1c4a-11e6-9702-048d38375cb8
2016-05-30 07:30 (Mon) 3976d023-1e86-4454-9387-fd2152b84973
Multiples calendriers
Dans le fichier de configuration ~/.config/calendar.conf ,on peut définir plusieurs calendriers
{ "default":
{ "caldav_url": "http://foo.bar.example.com/caldav/",
"caldav_user": "luser",
"caldav_pass": "insecure"
},
"yannick":
{ "caldav_url": "http://other.domain.tld/caldav/",
"caldav_user": "otheruser",
"caldav_pass": "otherinsecure"
}
}
La commande calendarcmd utilise la configuration default et pour une autre , utiliser l’option –config-section ,exemple:
calendarcmd calendar --config-section=yannick agenda --from-time=2016-05-17 --agenda-days=14
Affichage jour mois dans la langue locale
Par défaut les jours sont affichés en abrégé et en anglais , il faut ajouter 2 lignes au programme calendar-cli.py pour un affichage dans la langue locale
Ajouter à la suite de la déclarationimport sys
[...]
# Afficher dans la langue locale
import locale
locale.setlocale(locale.LC_TIME, "")
[...]
On reprend l’exemple :
Lecture agenda à partir du 17 mai 2016 de 14 jours (17 au 30 mai) ,affichage identifiant uid
calendarcmd calendar agenda --from-time=2016-05-17 --agenda-days=14 --event-template='{dstart} {uid}'
Réponse
2016-05-18 11:45 (mer.) 0261bdcc-1c4a-11e6-9702-048d38375cb8
2016-05-30 07:30 (lun.) 3976d023-1e86-4454-9387-fd2152b84973
Le jour est affiché dans la la langue locale (français)
On peut donc améliorer l’affichage en précisant le format de sortie avec l’option –timestamp-format
Avec la date du jour de l’appel au calendrier –from-time=$(date +’%Y-%m-%d’)
calendarcmd calendar --config-section=yannick agenda --timestamp-format='%a %d %b %Y %H:%M' --from-time=$(date +'%Y-%m-%d')
Ce qui donne pour exemple
jeu. 19 mai 2016 13:45 Ajout au calendrier yannick