Во многих статьях о продуктивности пишут, что у человека всегда должен быть список дел, которые он должен сделат за день. Однако во время работы нередко происходит так, что личные задачи лежат в одном месте, корпоративные - в другом, задачи open source проекта (к примеру) - в третьем. Сегодня мы поговорим о том, как собрать единый список задач в Google Calendar автоматически и в каждый момент времени понимать свою повестку дня.
Почему Google Calendar?
Google сервисы отлично синхронизируются с большинством платформ: iOS, MacOS, Android, даже WindowsPhone! На Windows 10 вроде тоже работала синхронизация, но я ее запускал очень давно, поэтому уверенно утверждать о том, что события адекватно придут на эту операционную систему от Microsoft, не буду.
С Google сервисами отлично интегрированы различные автоматизаторы типа IFTTT или Zapier, поэтому в случае отсутствия готовых инструментов синхронизации, всегда можно попробовать накостылять что-то свое. А если даже таким образом решить проблему не получится, то для большинства популярных языков программирования есть модули, умеющие общаться с Google API.
Однако, не все так плохо, и далее Вы в этом убедитесь :)
А почему календарь? Там же нет задач!
Задачи могут отображаться в календаре сверху как события на весь день. Таким образом, внизу будет график настоящих событий, а наверху будут все задачи. По-моему, это удобно:)
Есть только одна проблема: нет возможности редактировать информацию из внешних сервисов. Но я считаю, что в этом нет острой необходимости, потому что каждый описанный ниже сервис имеет много специфических функций, которые в любом случае не укладываются в интерфейс календаря. И ведь наша задача не сделать полнофункциональный агрегатор, а лишь просто собрать список задач в одном месте.
Еще одна важная особенность: в календаре появятся только те задачи, у которых есть крайний срок, иначе непонятно, в какое место календаря их добавлять.
Внешние календари
Внешние календари подключаются с помощью ссылки. Добавление происходит с помощью кнопки “+”, далее “Добавить по URL”.
Вставляем туда ссылку, нажимаем на “Добавить календарь”. И готово!
Таким образом, внешние сервисы смогут доставлять к Вам список своих событий. Но так как календари все-таки внешние, Google по умолчанию не синхронизирует их.
Чтобы включить синхронизацию, нужно перейти на эту страницу и отметить галочками нужные для синхронизации календари.
Подключение сервисов
Wunderlist
Работает через подключение календаря по ссылке.
- Заходим в веб-приложение
- Нажимаем на стрелочку рядом с именем
- Далее “Параметры учетной записи”
- Чуть ниже будет поле “Канал календаря” со ссылкой. Добавляем ссылку указанным выше способом, и задачи из Wunderlist появляются в Google Calendar!
Trello, Todoist
Для настройки нужно зарегистрироваться на IFTTT, подключить аккаунты Trello и Google Calendar и настроить соответствующую автоматизацию с помощью ссылок ниже. Частично процесс работы с этим сервисом описан здесь.
Flow
Flow также поддерживает синхронизацию календаря по ссылке. Подробная инструкция по настройке находится здесь. Нужно отметить, что указанных в статье настроек нет в бета-версии веб-приложения, поэтому нужно по-старинке заходить на http://app.getflow.com.
Gitlab
Let’s hardcore begins! Нету у них никакой поддержки экспорта крайних сроков issue. Можно попробовать сделать костыль на Zapier, который умеет подключаться к обоим сервисам, но я не рискнул это сделать.
На github есть проект, который умеет осуществлять синхронизацию через Webhook. Я дописал поддержку Docker, кому надо - пользуйтесь. Конечно же минус такого решения: придется заморачиваться с сервером. Но если у Вас нет проблем с этим, перейдем к настройке:
Переходим в Google Developer Console
Создаем проект
Создаем сервисный аккаунт
Создаем ключ сервисного аккаунта, скачиваем его и кладем в папку с проектом
С помощью верхнего поиска находим
Google Calendar API
и включаем егоСоздаем календарь в Google Calendar, и даем доступ сервисному аккаунту на внесение изменений
Отредактировать конфигурационный файл:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37{
"logLevel": "INFO",
"timezone": "Europe/Moscow",
"googleSecretFile": "НАЗВАНИЕ ФАЙЛА ИЗ 4 ПУНКТА",
"gitlabSecret": "ЛЮБОЕ СЛУЧАЙНОЕ СЛОВО (БУДЕТ ИСПОЛЬЗОВАТЬСЯ ДЛЯ ПРОВЕРКИ ДОСТУПА)",
"gitlabApi": {
"enable": false,
"url": "https://gitlab.com/",
"token": "paste_impersonation_token_here",
"inviteAssignees": true
},
"authorizedDomain": "your-gsuite-domain.net",
"listenPort": 8080,
"ssl": {
"enable": false,
"keyfile": "/etc/letsencrypt/live/domain_name/privkey.pem",
"certfile": "/etc/letsencrypt/live/domain_name/fullchain.pem"
},
"repoMap": {
"НАЗВАНИЕ РЕПОЗИТОРИЯ": "НАЗВАНИЕ КАЛЕНДАРЯ",
"НАЗВАНИЕ РЕПОЗИТОРИЯ 2": "НАЗВАНИЕ КАЛЕНДАРЯ 2"
},
"dropPrivileges": {
"enable": false,
"user": "nobody",
"group": "nobody"
}
}Выкладываем приложение gitlab-calendar на какой-нибудь сервер. Оно должно запуститься на порту
8080
(если Вы ничего не меняли)Идем на http://gitlab.com
Открываем нужный проект, затем Settings / Integrations
Вставляем ссылку на работающее приложение
В Secret Token вставляем
ЛЮБОЕ СЛУЧАЙНОЕ СЛОВО
, которое Вы написали в конфигурационном файле в 7 пунктеДобавлем webhook
Готово (да, наконец-то)
Постарался описать все подробно, надеюсь, у Вас получится:)
Если инструкции по интеграции Вашего любимого сервиса тут нет, напишите мне или дополните статью самостоятельно.
Продуктивной Вам недели!:)