Редакционный календарь и другие полезные шаблоны Notion

Я уже все уши прожужжал вам моим любимым Notion, но ребята запилили галерею шаблонов и вот несколько полезных.
Подписывайтесь на наш телеграм-канал «Паша и его прокрастинация», там больше ништяков и полезностей.
Редакционный календарь

Список можно просматривать в виде календаря, таблицы или борда (как в Трелло).
Заметки и черновики

Шаблон для тех, кто хочет использовать Notion как сервис для заметок: эта страница станет домом всех ваших записей.
Ежедневный планировщик

Чтобы быстро записать личные дела и рутину.
Bullet-журнал

Популярный способ планирования на бумаге, но теперь не на бумаге.
Шаблоны пригодятся, если вы не хотите тратить время на настройку инструмента под себя.
Как настроить удобную синхронизацию между Notion и календарем через ICS на JS без сервера
Уже почти 2 года я активно использую Notion в своей жизни. Я регулярно пополняю его своими личными автоматизациями, которые облегчают жизнь мне и моей команде. Иногда я публикую в своем блоге разные кейсы, которые удается оформить в виде библиотеки или примера кода. Данный пост также доступен в формате видео на моем канале.

Сегодня я решил поделиться тем, как я интегрировал календарь из Notion в Google Calendar через ics. Таким способом события из календаря Notion можно добавить в любой календарь, поддерживающий ics формат (то есть, практически, любой)
Немного предыстории
Обычно необходимость и суть любой интеграции и/или автоматизации проще понять, если понять зачем именно она была создана. Если хотите перейти, без предысторий, сразу к технике, листайте вниз до заголовка «Реализация».
Сейчас процесс общения с новыми запросами ко мне или моей компании происходит через моего Telegram бота или помощника. Но так оно работает только последний год…
Как оно работало раньше
Запрос может быть любой — могут начать предлагать какие-то “прорывные маркетинговые” услуги моей компании, обратиться ко мне за платными консультациями, предложить выступить на какой-нибудь конференции и тд.
Я старался вносить все в свой гугл-календарь. Ключевое слово — старался. Иногда меня даже хватало на целую неделю стабильных побед над моей ленью в этом вопросе. Поражение в этой схватке заканчивались накладками в созвонах и потерей репутации.
Мне достаточно быстро надоело обрабатывать подобное самому. В итоге начал приводить это в порядок. Среди наших клиентов есть серьезные люди, у которых есть помощники и все они, как один, ведут их календарь со всеми встречами и созвонами. Решил не придумывать велосипед и сделать тоже самое.
Причем я сразу решил идти не по пути предоставления доступа к гугл-календарю. Я хотел, чтобы я мог подвязывать свои задачи и заметки из моего Notion. Поэтому созвоны я решил хранить там же. Я создал базу в Notion с представлением (view) “календарь” и дал к нему доступ на внесение изменений.

В момент, когда приходит понимание, что необходимо устроить созвон создается (мной, ботом или помощником) сущность в Notion. Как велась моя база созвонов в мае 2022:
- Указывается дата и время созвона;
- В название, обычно, пишется имя фамилия человека и компании для идентификации в будущем;
- В поле Info добавляется информация, необходимая для отображения внутри уведомления в Telegram боте. Обычно тут краткое описание о чем планируется разговор;
- В тело уже размещается информация любого рода. Обычно помощник, после созвона, пишет расшифровки, договоренности и детали, которые могут быть полезны в будущем.
Желаемый функционал
Меня все устраивало кроме того, что для просмотра всех созвонов было необходимо идти в notion и смотреть что у меня по планам на следующий день. Приложение Notion на Android работает крайне медленно и я решил сделать так, чтобы все созвоны появлялись внутри моего гугл календаря, который я вел и веду по своим личным делам.
То есть хотелось, чтобы я/бот/помощник вносил информацию только в Notion и чтобы только Notion был единым источником информации для всех. Что еще более важно — люди достаточно переменчивы и, иногда, звонки переносятся еще до начала. Важно, чтобы можно было подвинуть карточку в Notion и все встало на свои места.
Реализация
Первое что мне пришло в голову для реализации функционала — отправлять события через Google Calendar Api. Я даже успел прочитать их Api Reference и примерно накидать идею как создавать события и отслеживать их синхронизацию. Следующим этапом были разборки с источником данных — я принялся смотреть что умеет Notion Api и был расстроен.
Сложности на стороне Notion
Работа с Notion происходит только через request-response подход. То есть нам, для получения информации и обновлений, нужно каждый раз забирать к себе всю информацию и уже, на своей стороне, понимать что поменялось, а что нет и реагировать на изменения.
Процесс актуализации пришлось бы делать следующим образом:
- Нужно проходить по всем элементам базы созвонов и искать изменения;
- Если добавили поле, то надо будет делать на N раз больше проверок (N – количество созвонов в базе);
- Со временем база созвонов растет (1-2 созвона в день) = время обработки тоже ;
- Достаточно тяжело поддерживать стабильную работу.
К великому сожалению, на момент написания поста, Notion совсем совсем не умеет в webhook. В идеале было бы подписаться на какие-то обновления и чтобы Notion оповещал наш сервер о каждом изменении на своей стороне.
Webhook — достаточно распостраненная практика в мире CRM и прочих сервисов, но Notion пока ее не освоил (на момент написания данного поста). Надеюсь, что скоро такой функционал порадует разработчиков. Ну а пока пришлось решить задачу чуть более лакончино
Найденное решение. Генерация ics на nodejs
В общем я посмотрел на этот предстоящий челлендж с API и оставил эту идею до лучших времен, которые наступили через пару месяцев. Я понял, что я могу экспортировать все элементы из Notion в ics, отдавать это через express и сразу же импортировать в Google Calendar как сторонний календарь.
Прежде всего необходимо получить notion token. Долго на этом останавливаться не буду т.к. описывал это в своем блоге. После получения токена нужно создать базу данных с Calendar View — можно взять мой шаблон. После создания базы фиксируем database_id из ссылки. Им заканчивается ссылка перед началом query_string (перед знаком вопроса).

Получение данных из Notion
Дальше приходим непосредственно к реализации. Внутри кода используются переменные notionToken и calendarDb — это как раз токен и id базы данных соответственно.
const notion = new Client(< auth: notionToken, >); const Events = await notion.databases.query(< database_id: calendarDb, >);
Из notion приходит объект, содержащий все элементы из этой базы данных. Нам для заполнения гугл-календаря нужны следующие поля:
- Event.properties[‘Name’][‘title’][0]?.[‘text’][‘content’] — название события
- Event.properties[‘Info’][‘rich_text’][0]?.[‘text’][‘content’] — краткое описание события
- Event.properties[‘Date’] — собственно дата события.
С полем даты события есть некоторые особенности:
- Есть поля start и end.
- Если не задать end то в нем будет null
- Если поставить, в интерфейсе Notion, флажок “Include time” то формат даты изменится, но будет писаться в то же поле — надо смотреть на длину этого поля и тогда можно понять включено ли время.
- Если у нас включено время, то end также может быть пустым и, следовательно, надо ко времени начала добавлять час если не указано время окончания.
Все эти кейсы ничего сложного из себя не представляют, но они познаются “в беде”. То есть сначала настроил систему только для работы с днями, запустил и оставил. Проходит время и случайно в одном месте ставишь дату со временем и все — система сломалась. Я все эти кейсы обработал. Получилось достаточно костыльно, но задачу поставленную решает.
Формирование ICS
После получения массива объектов из Notion их необходимо привести к формату, который можно конвертировать в ics. Само формирование ics строки реализовано в одноименном npm пакете.
Получить ics из массива событий можно следующим образом:
const icsEvent = ics.createEvents(Events) if (icsEvent.error) < console.error(icsEvent.error) return >icsEvent.value // конечная ics строка
Массив Events представляет собой массив из следующих элементов:
const Events = [ < title: "Title", description: "Короткое описание из info", start: [2022,10,10,12,00], end: [2022,10,10,13,00], url: "ссылка на элемент в notion" >];
Дальше уже дело техники: передать эту строчку в express (или любой другой http) сервер и передать ссылку в Google Calendar


После чего Google Calendar сам зайдет по ссылке, выкачает все события и добавит их в мой календарь. Все работает более чем стабильно и события появляются в календаре не более чем через 10 минут после добавления в Notion.
Если я, вдруг, чего-то поменяю в одном событии, то, при следующей закачке, вся информация актуализируется и в календаре.
Чтобы не держать сервер под такую мелочь я разместил этот простой скрипт на pipedream. Можете брать к себе, в env переменных указывать свои токен и id базы данных и добавлять в календарь ссылку.
Также сделал небольшой npm пакет, где все «костылизации» с датами спрятал в одном методе createIcsString , который на вход принимает токен и id базы данных (примеры оформил отдельно).
- JavaScript
- Управление проектами
- Управление продуктом
- Лайфхаки для гиков
Как сделать календарь в Notion?
Календари в программе удобно использовать для отслеживания сроков выполнения задач, планирования спринтов для разработки и формирования контент-планов для smm или блогов. Используя данную функцию, вы сможете быстро проверить движение задач к дате запуска продукта или акции, планирования активностей и глобальных задач на квартал или год.
Как сделать календарь в Notion?
Для того, чтобы сделать отдельный календарь, создаем новую страницу. На этот раз в столбце выбираем «Calendar».

А что делать, если календарь необходимо поместить на уже готовую страницу, рядом с текстом или таблицей? Такая функция тоже существует. Для этого в месте, где хотите разместить календарь наберите / , затем в списке выберите calendar и нажмите кнопку Enter.
У вас есть возможность интегрировать в Notion Google-календарь. Это можно сделать в три шага:
1. Сделать Google-календарь публичным.
2. Скопировать его URL.
3. Добавить на страницу Notion.
Однако имейте в виду — вы не сможете вносить изменения в свой календарь через Notion. Однако разработчики сервиса обещают полную интеграцию календарей из других сервисов через API.
Добавляем в календарь карточки
Карточки позволяют добавить список задач на конкретный день, отобразить конечный срок выполнения задачи или создать календарь выпускаемых статей на неделю/месяц/квартал.
Наведите на нужную дату в календаре и нажмите на Add an Item.

Во всплывающем окне откроется форма для заполнения карточки. Здесь можно ввести заголовок, описание задачи, поставить ссылку на ее детальное описание. Если базовых свойств в новой карточке недостаточно, вы можете добавить их по своему усмотрению, нажав слева вкладку Add. Во всплывающем окне выберите пункты, которые вы хотите добавить на карточку.

Нажмите на 3 точки в правом верхнем углу для кастомизации карточки. В открывшемся меню вы сможете настроить отображение текста, сделать дубль, импортировать карточку как отдельную задачу или закрыть ее от комментариев.
Управление карточкой из календаря
Для начала наведите курсор на карточку и щелкните по ней правой кнопкой мыши. Откроется меню опций:
- Delete: нажав на этот пункт, вы удалите карточку из календаря.
- Duplicate: за один клик вы можете создать дубликат выбранной карточки. Она будет размещена под редактируемой.
- Copy link: одним кликом вы сможете скопировать ссылку карточку.
- Rename: вы можете быстро переименовать карточку.
- Move to: возможность переместить карточку в другую страницу или даже другое рабочее пространство.
- Edit property: по клику на эту вкладку вы вызовете меню свойств календаря. Чтобы что-то изменить в нем, щелкните на искомое свойство, а затем внесите желаемые изменения.
Меняем календарь в Notion
Стандартно календари в программе отображаются по месяцам. Вы можете перейти к предыдущему или следующему месяцу несколькими способами.

1. Способ первый.
Найдите в календару Today. Эта вкладка располагается в верхнем правом углу. По обеим сторонам этой вкладки располагаются знаки < и >. Используя их, вы сможете переходить к предыдущему или следующему месяцу.
2. Способ второй.

Прокручивайте календарь вниз. По ходу прокрутки в верхнем левом углу будут меняться месяцы. Обратите внимание: вы не сможете прокручивать календарь вверх, поскольку в Notion не предусмотрена функция возвращения к предыдущим месяцам таким способом.
Обратите внимание: календарь в Notion запоминает, какие даты вы просматривали в предыдущих обращениях к программе. Когда вы покинете сервис, а затем зайдете снова, отобразятся именно те даты, которые вы просматривали в последний раз.
Интеграция Notion + Google Calendar
Соедините Notion и Google Calendar через веб интерфейс за 5 минут, без программистов и специальных знаний.


Создайте интеграцию Notion и Google Calendar самостоятельно, без программистов
Источник данных
Приемник данных
Другие готовые интеграции
Notion (276 готовых коннекторов)
Google Calendar (276 готовых коннекторов)
Без ограничений
Получите 14-ти дневный
пробный доступ
Возможности автоматизации
Notion и Google Calendar
Настройте один раз правила, по которым будут работать системы.
С заданным интервалом передавайте данные из Notion в Google Calendar.

Источник данных: Notion, доступные действия:
- Загрузить ЗАПИСИ (новые и измененные)
Приемник данных: Google Calendar, доступные действия:
- Создать СОБЫТИЕ
- Создать СОБЫТИЕ
- Создать СОБЫТИЕ
- Создать СОБЫТИЕ (быстрое)
- Создать СОБЫТИЕ (быстрое)
- Создать СОБЫТИЕ из строки
Популярные вопросы про интеграцию Notion и Google Calendar
Как происходит интеграция Notion и Google Calendar?
- Для начала нужно зарегистрироваться в ApiX-Drive
- Выбираете какие данные передавать из Notion в Google Calendar
- Включаете автообновление
- Теперь данные будут автоматически передаваться из Notion в Google Calendar
Сколько времени нужно на интеграцию?
В зависимости от системы, с которой вы будете делать интеграцию, время настройки может отличаться и составлять от 5-ти до 30-минут. В среднем настройка занимает 10-15 минут.
Сколько стоит интеграция Notion с Google Calendar?
За саму интеграцию ничего платить не нужно и на всех тарифах доступен полностью весь функционал. Вы оплачиваете только количество данных, которые по факту передаются из одной вашей системы в другую через наш сервис. Если у вас количество данных в месяц небольшое, можете смело пользоваться бесплатным тарифом или перейти на платный, при необходимости. Подробнее о тарифах.
Сколько всего готовых интеграций доступно в Apix-Drive?
На данный момент у нас готово 353+ интеграций помимо Notion и Google Calendar
Информация о Notion
Notion — это платформа для управления задачами и проектами, а также организации командной работы. Она имеет блочную структуру редактирования, которая помогает распределять контент по блокам памяти: текст, ссылки, изображения, списки, код и т.д. При помощи Notion можно создавать базу знаний по проекту (team wiki), а также вложенные и контрольные списки дел, шаблоны дорожных карт и календарей, еще здесь есть планировщик задач. Среди других инструментов сервиса стоит отметить канбан-доски, веб-клиппер для сохранения любого веб-контента, а также опции управления сниппетами. Подробнее
Информация о Google Calendar
Предоставляемый совершенно бесплатно сервис Google Calendar предназначен для планирования деловых встреч и личных мероприятий. У пользователя есть возможность использовать сразу несколько календарей, внося в них самые разные события, единоразовые и повторяющиеся. Также есть возможность делиться событиями с другими пользователями и вести календари совместно. Google Calendar предоставляет возможность интеграции со сторонними сервисами и приложениями. Подробнее