Как связать Notion с Google Calendar

Как связать Notion с Google Calendar

Tags
notion
focus management
Интеграция Ноушена с календарём уже несколько месяцев как не привелегия. Этому научились такие no-code сервисы интеграций как: Zapier, IFTTT, Automate.io. Я ждал этого реально два года. Живу с этим новшеством пару месяцев и очень нравится, тем более, что это бесплатно. Делюсь как подключал.

Инструкция

  1. Я завёл в Notion таблицу (базу данных) для задач, где каждая отдельная «строка» это страничка/документ с привязанными к ней свойствами/колонками
  1. Создал для таблицы колонки следующих типов:
      • eventId (GCal) — Text
      • dueDate — Date
      • isDone — Checkbox
      • isArchived — Checkbox
      • untilStart — Formula
        • round(dateBetween(start(prop("Due date")), now(), "hours") / 24 * 100) / 100
      • timeRemain — Formula
        • round(dateBetween(end(prop("Due date")), now(), "hours") / 24 * 100) / 100
  1. Зашёл в сервис Automate.io
  1. Подключил Automate.io к своему аккаунту в Notion следуя простым шагам
    1. На страничке https://automate.io/integration/notion выбрал интеграцию с G.Calendar (можно вбить в поиске для быстрого доступа)
    2. Выбрал интеграцию «Add Database Item in Notion on a Event Added in Google Calendar» и нажал Try Now
      1. notion image
    3. Зарегался в сервисе и вошёл в него 🤷‍♂️
    4. Нажал кнопку Connect сразу после входа в сервис.
      1. notion image
    5. Последовал инструкциям сервиса по подключению к Notion
  1. Попал на шаг Configure или нажал кнопку на главной в шапке Create Bot
    1. notion image
  1. В первой колонке «Select trigger app» выбрал Google Calendar и тип триггера Event Added
    1. notion image
  1. Заполнил вторую колонку
    1. В поле Database я выбирал имя таблицы с задачами в Notion
      1. notion image
    2. Поле Content и всё, что внутри можно оставил пустыми. Пока не нашёл этому применения.
    3. В поле, которое по умолчанию называлось Name (имя строки в таблице) я выбирал параметр Event Summary и ещё добавил произвольный опозновательный знак в виде «🗓» чтобы отличать события из календаря от других задач.
      1. Result это переименованная колонка Name в моей базе задач
        Result это переименованная колонка Name в моей базе задач
    4. В поле eventId (GCal) нажал плюсик и выбрал из подсказок параметр Еvent id
      1. notion image
    5. В поле dueDate снова развилка
      1. В поле Time Zone я выбрал UTC чтобы исправить проблему сдвига даты в таблице. Не уверен, что это лучшее решение, но мне помогло.
      2. В поле startDate выбрал параметр Event begins
      3. В поле endDate выбрал параметр Event ends
      4. notion image
    6. Остальные поля я оставил пустыми чтобы заполнять их в Notion по желанию
  1. Осталось нажать на кнопку Savе 🏁
    1. notion image

Как работает

Tеперь как только в моём календаре появляется новое событие, оно создаётся в базе задач. Я отказался от идеи двухсторонней синхронизации событий, потому что это сложно реализуется и рождает много ошибок. Как оказалось оно и не особо нужно.
Односторонней синхронизации мне достаточно, а на случай изменений в событии на стороне календаря я настроил похожую интеграцию (ещё одного бота), но по тригеру «Event Modified».
notion image
Есть проблема второй интеграции: она будет сыпать ошибки в случаях, когда в Notion-базе по какой-либо причине не оказалось задачи с соответствующим полем eventId. Но это в худшем случае отключает бота лишь спустя 20 повторений и требует ручного включения примерно раз в месяц-два.