Dmitry1k downloadsReminder list with system notifications. Supports interval, one-shot and scheduled types.
An Obsidian plugin for managing a reminder list with system notifications. Create tasks, schedule recurring reminders, embed interactive widgets directly in your notes, and never miss a deadline.

[[Note Name]])simple-reminder) — embed interactive reminder lists inside any note with custom filtering, grouping, and headersOn iOS and Android, notifications only fire while Obsidian is open and active on screen. If the app is closed, minimized, or the device is locked, notifications will not appear due to OS platform restrictions.
main.js, manifest.json, and styles.css<vault-path>/.obsidian/plugins/simple-reminder/Requirements: Node.js >= 18, npm >= 9
git clone https://github.com/dimanchello/obsidian-simple-reminder.git
cd obsidian-simple-reminder
npm install
# Development watch mode
npm run dev
# Production build
npm run build
# Run unit tests
npm test
# Linting and formatting
npm run lint
npm run format
Copy the build output from dist/ (main.js, manifest.json, styles.css) to your vault's plugin directory.
simple-reminder/
├── dist/ # Build output (copy to your Obsidian vault)
│ ├── main.js
│ ├── manifest.json
│ └── styles.css
├── src/
│ ├── main.ts # Entry point, check loop, notification dispatcher
│ ├── types.ts # TypeScript interfaces and defaults
│ ├── utils.ts # Pure functions: scheduling, migration, pruning, parsing
│ ├── api.ts # Public API for third-party plugins
│ ├── i18n.ts # Localization dictionaries and language resolver
│ ├── ReminderWidget.ts # Reusable interactive reminder list UI
│ ├── ReminderCodeBlock.ts # Markdown code block processor (MarkdownRenderChild)
│ ├── ReminderView.ts # Obsidian ItemView (sidebar panel)
│ ├── AddReminderModal.ts # Modal for creating/editing reminders
│ └── SettingsTab.ts # Plugin settings page
├── tests/
│ ├── utils.test.ts # Unit tests for scheduling, parsing, and migration
│ └── i18n.test.ts # Unit tests for translation dictionaries
├── styles.css # Plugin stylesheet
├── manifest.json # Obsidian plugin manifest
├── package.json
├── tsconfig.json
└── esbuild.config.mjs
Click the bell icon in the left ribbon or run the command Simple Reminder: Open reminder panel from the command palette (Ctrl/Cmd + P).

You can render an interactive reminder list in any markdown file using the simple-reminder code block:
```simple-reminder
```
Tip: Use the command Simple Reminder: Insert reminder widget (
Ctrl/Cmd + P) to insert the snippet at your current cursor position.
The widget supports interactive checkboxes, adding and editing reminders, viewing details, and opening the calendar. All actions instantly sync across all open notes and the sidebar panel.
| Parameter | Options | Default | Description |
|---|---|---|---|
tab |
all, active, done |
all |
Filter reminders by completion status |
group / groupBy |
none, minute, hour, day, week, month, year |
From settings | Group reminders by timeframe |
header |
true, false |
true |
Show or hide the top header |
tabs |
true, false |
true |
Show or hide status tabs |
title |
Text | Simple Reminder |
Custom widget header title |
Compact list of active reminders only:
```simple-reminder
tab: active
header: false
tabs: false
```
Reminders grouped by day with a custom title:
```simple-reminder
tab: all
group: day
title: Today's Tasks
```
Click + Add in the panel or widget header and fill in the form:

Click on any reminder in the list to open its details modal showing scheduled time, pre-alerts, description, and attached links:

Click the calendar icon in the panel or widget header to view all scheduled reminders on a monthly and yearly calendar with date markers:

| Option | Default | Description |
|---|---|---|
| Open Reminder Panel | — | Quick button to open the sidebar panel |
| Check Interval | 30s | Frequency of checking due reminders (minimum 2s) |
| Group reminders by | No grouping | Grouping separators for panel reminders (minute, hour, day, week, month, year) |
| Auto-prune completed after | 3 days | How many days to retain completed reminders (set to 0 to keep forever) |
| Test Notification | — | Send a test system notification |
| Request Permission | — | Request notification permission from the OS |
| Delete All Reminders | — | Permanently delete all stored reminders |
Other plugins can integrate with Simple Reminder using the exposed API:
const api = app.plugins.plugins['simple-reminder'].api;
// Add a reminder
const id = api.addReminder({
title: 'Meeting with team',
type: 'once',
date: new Date('2026-10-01T10:00:00'),
});
// Retrieve reminders
const reminders = api.getReminders();
// Subscribe to events
api.on('reminder-fired', (info) => {
console.log('Reminder triggered:', info.title);
});
See API.md for full API documentation.
Плагин для Obsidian — список напоминаний с системными уведомлениями. Создавайте задачи, задавайте расписание и получайте уведомления вовремя.

simple-reminder) — интерактивный виджет напоминаний прямо внутри заметок с гибкой настройкой фильтрации, группировки и внешнего видаНа iOS и Android уведомления работают только пока Obsidian открыт и активен на экране. Если приложение свёрнуто или экран заблокирован, уведомления не придут. Это ограничение ОС, а не плагина.
main.js, manifest.json и styles.css<vault-path>/.obsidian/plugins/simple-reminder/Требования: Node.js >= 18, npm >= 9
git clone https://github.com/dimanchello/obsidian-simple-reminder.git
cd obsidian-simple-reminder
npm install
# Режим разработки (watch + source maps)
npm run dev
# Продакшен-сборка (минифицированная, без source maps)
npm run build
# Запуск тестов
npm test
# Проверка качества кода
npm run lint
npm run format
После npm run build скопируйте содержимое dist/ (main.js, manifest.json и styles.css) в папку плагина в вашем хранилище.
simple-reminder/
├── dist/ # Результат сборки (установить в хранилище Obsidian)
│ ├── main.js
│ ├── manifest.json
│ └── styles.css
├── src/
│ ├── main.ts # Точка входа, цикл проверки, уведомления
│ ├── types.ts # Интерфейсы Reminder, PluginSettings, LegacyReminder
│ ├── utils.ts # Чистые функции: calcNextTrigger, advanceTrigger, pruneOldCompleted
│ ├── api.ts # Публичный API для других плагинов
│ ├── i18n.ts # Переводы EN/RU + определение языка
│ ├── ReminderWidget.ts # Общий интерактивный UI виджета напоминаний
│ ├── ReminderCodeBlock.ts # Интеграция Markdown кодовых блоков (MarkdownRenderChild)
│ ├── ReminderView.ts # Боковая панель (ItemView)
│ ├── AddReminderModal.ts # Модальное окно создания/редактирования
│ └── SettingsTab.ts # Страница настроек плагина
├── tests/
│ ├── utils.test.ts # Юнит-тесты логики расписаний
│ └── i18n.test.ts # Юнит-тесты строк i18n
├── styles.css # Исходные стили (копируются в dist/ при сборке)
├── manifest.json # Манифест плагина (копируется в dist/ при сборке)
├── package.json
├── tsconfig.json
└── esbuild.config.mjs
Нажмите на значок колокольчика на боковой панели или выполните команду Simple Reminder: Open reminder panel.

Вы можете отобразить список напоминаний прямо внутри любой заметки с помощью кодового блока simple-reminder:
```simple-reminder
```
Совет: Чтобы не писать название блока вручную, используйте команду Simple Reminder: Insert reminder widget в палитре команд (
Ctrl/Cmd + P), и блок автоматически вставится в текущее место заметки.
Виджет полностью интерактивен: позволяет отмечать задачи чекбоксами, добавлять и редактировать напоминания, открывать календарь и детали. Все действия мгновенно синхронизируются с боковой панелью и другими открытыми заметками.
| Параметр | Возможные значения | По умолчанию | Описание |
|---|---|---|---|
tab |
all, active, done |
all |
Фильтрация по статусу напоминаний |
group / groupBy |
none, minute, hour, day, week, month, year |
Из настроек | Группировка напоминаний |
header |
true, false |
true |
Отображение шапки (заголовок, календарь, кнопка добавления) |
tabs |
true, false |
true |
Отображение переключателя вкладок |
title |
Текст | Simple Reminder |
Пользовательский заголовок в шапке |
Только активные задачи в виде компактного списка:
```simple-reminder
tab: active
header: false
tabs: false
```
Задачи с группировкой по дням:
```simple-reminder
tab: all
group: day
title: Мои напоминания
```
Нажмите + Добавить в заголовке панели и заполните форму:
| Поле | Описание |
|---|---|
| Название задачи | Текст, который появится в уведомлении |
| Тип | Разовое или Повтор |
| Единица повтора | День, Неделя, Месяц, Год |
| Интервал | Повторять каждые N единиц |
| Время | Для одиночного режима — конкретное ЧЧ:ММ; для интервального — шаг и временное окно |

Нажмите на любое напоминание в списке, чтобы открыть карточку с подробным описанием, временем срабатывания, предварительными напоминаниями и ссылками:

Нажмите на значок календаря в заголовке панели или виджета, чтобы открыть годовой и месячный календарь с метками запланированных напоминаний:

Нажмите на значок карандаша у любого напоминания — форма откроется с предзаполненными данными. Через редактирование можно переоткрыть выполненное напоминание, сняв галочку «Выполнено». При редактировании активных разовых напоминаний с настойчивыми уведомлениями (Nag Mode), время которых уже наступило, расписание и цикл повторов сохраняются — плагин автоматически рассчитывает ближайший будущий интервал. Если отключить настойчивый режим у напоминания, время которого уже прошло, оно автоматически переходит в выполненные.
Разовые напоминания автоматически помечаются как выполненные после срабатывания (если не включён Nag Mode — при активном режиме они продолжают повторяться до ручной отметки). Выполненные напоминания удаляются через 3 дня.
Нажмите на кнопку ✕ справа от напоминания.
| Параметр | По умолчанию | Описание |
|---|---|---|
| Открыть панель | — | Кнопка для открытия боковой панели |
| Интервал проверки | 30с | Как часто плагин проверяет наступившие напоминания. Минимум: 2с |
| Группировать напоминания по | Без группировки | Разделители между группами в панели (минута, час, день, неделя, месяц, год) |
| Авто-удаление завершенных через (дней) | 3 | Сколько дней хранить завершенные напоминания (установите 0, чтобы хранить вечно) |
| Тестовое уведомление | — | Отправляет тестовое системное уведомление |
| Запросить разрешение | — | Повторный запрос разрешения ОС на уведомления |
| Удалить все | — | Безвозвратно удаляет все напоминания |
now >= nextTrigger — срабатывает уведомлениеnextTrigger сдвигается на один период, пропуская прошедшие интервалы — длительный простой Obsidian не вызывает спам уведомлениямиonce) после срабатывания помечаются как выполненные (checked = true, completedAt = now) и nextTrigger становится null (если включён Nag Mode — nextTrigger сдвигается на заданный интервал и продолжает повторяться до ручной отметки выполнения, в том числе при редактировании прошедшей задачи; при отключении Nag Mode у прошедшего напоминания оно автоматически переходит в выполненное на ближайшем тике)data.json)Другие плагины могут взаимодействовать с Simple Reminder через:
const api = app.plugins.plugins['simple-reminder'].api;
// Добавить напоминание
const id = api.addReminder({
title: 'Встреча',
type: 'once',
date: new Date('2025-12-01T10:00:00'),
});
// Получить все напоминания
const reminders = api.getReminders();
// Подписаться на события
api.on('reminder-fired', (info) => {
console.log('Сработало:', info.title);
});
Полная документация в API.md.
MIT © 2026 Dimon