Gcalcli - работа с Google Calendar в консоли
Google во истину сделал много весьма хороших сервисов: gmail, reader и конечно же Google Calendar. Без последнего лично я жить не могу. С моей то дырявой памятью ;) Но сейчас не об этом. Довольно долго я искал способ удобно управлять своим календарём. Пробовал и через evolution, и через Thunderbird, но в итоге просто вернулся к использованию через браузер, но прочитав заметку о gcalcli, сразу решил попробовать ею воспользоваться, и остался ею очень доволен.
Gcalcli (Google Calendar Command Line Interface) - это небольшая утилита написанная на Python, предназначенная для работы с Google calendar из консоли. В общем это понятно и из названия :) Не берусь утверждать что утилита позволяет использовать все возможности Google Calendar, но тот функционал что я использую присутствует.
Установка, базовая настройка
Я сказать по правде, довольно давно обленился, и почти на всех своих компьютерах что есть у меня, использую deb based дистрибутивы, поэтому у меня утилита оказалась в репозитории:
sudo aptitude install gcalcli
Далее нам надо создать файл конфигурации \~/.gcalclirc
[gcalcli]
user: username
pw: userpass
Это лишь основные настройки необходимые для работы с программой. Существуют так же другие:
- cals: [type] - Используемый календарь
- details: [true |false] - Показывать или нет детали события
- ignore-started: [true |false] - Игнорировать (не выводить) начатые события
- width: [width] - Количество символов для каждой колонки. По умолчанию - 10
- cal-owner-color: [color]
- cal-editor-color: [color]
- cal-contributor-color: [color]
- cal-read-color: [color]
- cal-freebusy-color: [color]
- date-color: [color]
- border-color: [color]
То что не подписано - цвета. Принимают следующие параметры: default, black, brightblack, red, brightred, green, brightgreen, yellow, brightyellow, blue, brightblue, magenta, brightmagenta, cyan, brightcyan, white, brightwhite.
Основной функционал
Чтобы посмотреть календарь на неделю, используется параметр calw (Calendar for Week):
gcalcli calw
Можно указать количество недель для показа:
gcalcli calw 3
Можно вывести список всех дел на ближайшие пять дней:
gcalcli agenda
И конечно же можно показать календарь на месяц:
gcalcli calm
# можно указать месяц. Например september
gcalcli september
Для добавления в календарь используется параметр quick:
gcalcli quick '5pm 12/8/2010 Meeting with old friend - Sasha'
# Можно так же добавлять так
gcalcli quick 'Buy some eat 10am tomorrow'
К сожалению, это всё что можно указать. Т.е. нельзя указать место встречи, детали или повторение события. Так же нельзя из gcalcli редактировать существующие события. Надеюсь, такой функционал будет добавлен со временем.
Поиск:
gcalcli search 'Test search'
Показать все существующие календари:
gcalcli list
Несколько полезностей
Напоминания о событиях
Постоянно держать консоль с выводом gcalcli жутко неудобно. Да и всё равно можно забыть о чём либо. Чтобы такого не происходило, в gcalcli есть параметр "remind".
gcalcli remind
Данная команда укажет gcalcli показать всплывающее окно с уведомлением если в данный момент начинается событие. Параметру "remind" можно указать время, за которое предупреждать. Например команда
gcalcli remind 10
Покажет всплывающее окно если ближайшие 10 минут есть какое либо событие. Для удобства стоит поместить это в cron:
crontab -e
*/10 * * * * gcalcli remind
Использование вывода программы
Так как вывод программы не интерактивный, то его можно использовать в своих целях. Например для вывода напоминаний в screen, или conky.
Например для conky это будет выглядеть так:
# Выводит список на ближайшие пять дней
${execi 300 gcalcli --nc agenda}
# Или на три недели
${execi 300 gcalcli --nc calw 3}
Для вывода в screen задача чуть усложняется. Нужно добавить в cron выпонение скрипта, с перенаправлением вывода во временный файл. Думаю для тех кто использует screen, сделать это самостоятельно не составит труда :)
Программа конечно не идеальна, но для себя я ей нашёл применение. Из недостатков можно выделить лишь то, что нужно знать немного английский язык. Хотя бы название месяцев и дней :)