Gcalcli

Kalendarze w linii poleceń Linux. Używanie kalendarza Google – gcalcli

Zgodnie z obietnicą z poprzedniego artykułu zajmiemy się dziś możliwością zarządzania internetowymi kalendarzami z linii poleceń. Na pierwszy ogień pozwolę sobie wziąć używany niegdyś przeze mnie program gcalcli. Projekt ten zapewnia konsolowy interfejs do zarządzania kalendarzem Google. Program gcalcli możemy zainstalować jak każdy inny moduł języka Python. W tym celu użyjemy stosunkowo nowej wersji Pythona […]

Zgodnie z obietnicą z poprzedniego artykułu zajmiemy się dziś możliwością zarządzania internetowymi kalendarzami z linii poleceń. Na pierwszy ogień pozwolę sobie wziąć używany niegdyś przeze mnie program gcalcli. Projekt ten zapewnia konsolowy interfejs do zarządzania kalendarzem Google.

Program gcalcli możemy zainstalować jak każdy inny moduł języka Python. W tym celu użyjemy stosunkowo nowej wersji Pythona o numerze 3.6 z repozytorium EPEL. W celu instalacji niezbędnych pakietów na systemach klasy Enterprise należy wykonać:

sudo yum install -y epel-release
sudo yum install -y python36 python36-setuptools

Po tej operacji możemy zainstalować interesujące nas pakiety przy pomocy odpowiedniej wersji menadżera pakietów Python – pip. Chciałbym zwrócić uwagę czytelników na argument --user, który odpowiada za zainstalowanie danego pakietu tylko dla użytkownika. Jeśli jednak chcielibyśmy, by pakiet był współdzielony (i co z tego wynika dostępny dla wszystkich użytkowników), należy go zainstalować bez tego argumentu. Wymaga to jednak uprawnień superużytkownika.

pip3.6 install gcalcli vobject parsedatetime --user
# alternatywnie
sudo pip3.6 install gcalcli vobject parsedatetime

Jeśli zainstalowaliśmy pakiet jako użytkownik, należy dodać następującą ścieżkę – /home/<NAZWA_UZYTKOWNIKA>/.local/bin – do zmiennej $PATH.

Dla standardowej powłoki BASH można wykonać:

export PATH=$PATH:/home/$USER/.local/bin
# Dodanie do pliku konfiguracyjnego bashrc
echo 'export PATH=$PATH:/home/$USER/.local/bin' >> .bashrc

Natomiast dla powłoki Fish, o której pisaliśmy tutaj, wykonujemy:

set PATH /home/$USER/.local/bin $PATH
# Dodanie do pliku konfiguracyjnego fish
echo 'set PATH /home/$USER/.local/bin $PATH' >> /home/$USER/.config/fish/config.fish

Konfiguracja oraz używanie

Na samym początku należy skonfigurować nasz program do używania kalendarza Google. W tym celu musimy mu nadać odpowiednie uprawnienia w usługach Google. Jeśli mamy włączone uwierzytelnianie dwustopniowe (2FA – Two-factor authentication), przyda nam się nasz telefon.

By uruchomić konfigurację gcalcli, wystarczy użyć dowolnej poprawnej komendy. Program sprawdzi dostęp do kalendarza (a raczej jego brak) i automatycznie otworzy przeglądarkę internetową, za pomocą której logujemy się do naszego konta Google. Następnie pozwalamy aplikacji gcalcli na niezbędne dostępy. Po konfiguracji gcalcli będzie trzymać dane dostępu OAuth w pliku ~/.gcalcli_oauth.

Przykładowe wywołanie komendy z równoczesną pierwszą konfiguracją:

Alex@Normandy:~$  gcalcli agenda
/home/Alex/.local/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access /home/Alex/.gcalcli_oauth: No such file or directory
  warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Your browser has been opened to visit:

    https://accounts.google.com/o/oauth2/v2/auth?client_id=23
  (ucięte wyjście)...

Authentication successful.
... (wyjście komendy agenda)

Jak wynika z listingu, pozwoliłem sobie na znaczne skrócenie zapisu. Poznaliśmy już pierwszą podkomendę gcalcli, czyli agendę, która wypisuje nam plan na najbliższe 5 dni. Inne przydatne metody listowania kalendarza to:

  •  gcalcli calw – przedstawia wpisy na najbliższy tydzień (Week)
  • gcalcli calm – przedstawia wpisy na najbliższy miesiąc (Month)

Poniżej przykładowe wypisanie tygodnia. By oddać kolory, pozwoliłem sobie na zamieszczenie zrzutu ekranu:

calw

Kolejną przydatną komendą jest wylistowanie kalendarzy przy pomocy podkomendy „list”.

[Thu Mar 14 22:11:59] Alex@Normandy:~$  gcalcli list
 Access  Title
 ------  -----
  owner  [email protected]
  owner  tymczasowy
 reader  Contacts
 reader  Święta w Polsce

Specjalnie na potrzeby tego artykułu utworzyłem kalendarz tymczasowy i na nim będę manipulować wydarzeniami.

W celu dodania wydarzenia możemy użyć dwóch podkomend. Pierwszą z nich jest quick, a drugą add. W przypadku podkomendy quick tworzymy pojedyncze wydarzenie trwające godzinę od momentu, kiedy je wpisaliśmy (szybkie wydarzenia można utworzyć, a następnie edytować w dogodnym terminie). Jednak częściej używaną podkomendą, ze względu na swoją pełność, jest add. Dla obydwu komend należy także podać kalendarz, do którego chcemy wpisywać wydarzenie. Poniżej przykładowe użycie:

add

Po takim zabiegu obydwa wydarzenia zostały dodane do kalendarza.

calw2

By edytować wydarzenie, należy użyć podkomendy edit. Wyszukuje ona wydarzenia przy pomocy wyszukiwania tekstowego na polach tytułu lub opisu. Ostatnią podkomendą, którą dziś przedstawię, jest delete służąca do usuwania zapisanych wydarzeń. Przykładowe wykonanie prezentuje poniższy zrzut ekranu:

edit

Jak sprawne oko czytelnika prawdopodobnie zauważy, kolorując wydarzenie mamy do czynienia z dosyć nietypowymi kolorami (a ja chciałem wybrać po prostu biały). Niestety mój niewyrafinowany gust nie ma pojęcia o kolorze flamingo czy pawiu (ach cóż za wspaniały kolor to musi być)! Jestem za to całkowicie pewien, iż kolory te były dobierane z wielką starannością ;), a nazwa koloru banan, jest od dziś moją ulubioną.

Zakończenie

Zwyczajowo chciałbym bardzo podziękować za czas poświęcony na czytanie artykułów na naszym blogu. Cały czas staramy się dostarczać naszym czytelnikom najwyższej jakości treści ze świata Linuxa i Open Source. Zwyczajowo zachęcam do zapisania się na nasz newsletter. Teksty wysyłamy tylko raz w miesiącu. Co ważne nasze materiały są unikalne, bo tworzone są przez pracowników EuroLinux a dodatkowo większość publikacji to materiały techniczne.

Chcesz być na bieżąco? Obserwuj nasz profil w serwisie LinkedIn.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.