Never miss a deadline again! Get Telegram notifications automatically when your Obsidian tasks are due.
Do you manage tasks in Obsidian but sometimes forget to check them? This plugin bridges the gap between your note-taking and your daily workflow by sending timely Telegram reminders directly to your phone or desktop.
Whether you use YAML frontmatter for structured task management or prefer inline task lists, Reminder Telegram ensures you stay on top of your deadlines without constantly checking Obsidian.
- π YAML Frontmatter Support: Parse tasks from markdown files with structured frontmatter
- β
Inline Task Support: Works with traditional Obsidian task format (
- [ ] Task π 2024-01-01) - ποΈ Flexible Scanning: Choose to scan your entire vault or a specific folder
- π± Telegram Integration: Instant notifications via Telegram Bot API
- β±οΈ Configurable Intervals: Check for due tasks every 30 minutes (or your preferred interval)
- π¦ Multi-task Digest: Get all due tasks in a single organized message
- π« Duplicate Prevention: Smart tracking to avoid repeated notifications
- π Interactive Status Bar: Click the status bar icon to manually check for due tasks
- β° Status Updates: See when the last check was performed in the status bar
- π¨ Customizable Messages: Personalize Telegram notification text with templates and variables
- π Markdown Support: Enable Telegram Markdown formatting for rich text notifications
- π Task Sidebar: Dedicated sidebar panel showing overdue, due today, and upcoming tasks at a glance
- β¨ Enhanced UX: Clickable variable chips, character counters, and live preview
- Go to Settings β Community plugins β Browse
- Search for "Reminder Telegram"
- Install and enable the plugin
- Clone this repository or download the latest release
- Copy
main.js,manifest.json, andstyles.cssto your vault's.obsidian/plugins/obsidian-reminder-telegram/folder - Reload Obsidian and enable the plugin in Settings β Community plugins
-
Create a Telegram Bot:
- Open Telegram and search for @BotFather
- Send
/newbotcommand - Follow instructions to name your bot and get the Bot Token
-
Get Your Chat ID:
- Open Telegram and search for @userinfobot
- Send
/startcommand - It will reply with your Chat ID
-
Configure the Plugin:
- Go to Settings β Reminder Telegram
- Enter your Telegram Bot Token
- Enter your Telegram Chat ID
- Enable Notifications
- Set your preferred Check Interval (default: 30 minutes)
Create markdown files with YAML frontmatter:
---
status: open
priority: normal
scheduled: 2024-12-25
tags:
- task
---
# My Task
Complete this task by ChristmasSupported Frontmatter Fields:
status:open,done,in-progress,completed,cancelled,archivedscheduled: Deadline date (ISO format:YYYY-MM-DDorYYYY-MM-DDTHH:MM)due: Alternative deadline fieldtags: Array of tags (must includetaskor#taskto be recognized)completedDate: If set, task is considered completed
Traditional Obsidian task format within any markdown file:
- [ ] Complete project by π
2024-12-25
- [ ] Review notes due:: 2024-12-20
- [ ] Meeting scheduled:: 2024-12-15Supported Date Formats:
π YYYY-MM-DDdue:: YYYY-MM-DDscheduled:: YYYY-MM-DDstarts:: YYYY-MM-DD- Plain dates:
YYYY-MM-DD,MM/DD/YYYY,DD-MM-YYYY
Choose what to scan:
- Whole Vault (default): Scans all markdown files in your entire vault
- Specific Folder: Scans only files in a specified folder
To use a specific folder:
- Set Scan Mode to "Specific Folder"
- Enter the folder path (e.g.,
TasksorMeta/TaskNotes/Tasks)
Open the Reminder Telegram sidebar via:
- The π bell icon in the left ribbon
- Command palette β "Toggle sidebar"
The sidebar shows three sections:
- Overdue β tasks past their deadline (highlighted in red)
- Due Today β tasks due today
- Upcoming β tasks due in the next N days (configurable)
Each task row shows:
- Task description
- Source file name
- Relative date (Today, Yesterday, Tomorrow, etc.)
Click any task to open its source file and jump directly to the task line.
Filters:
- Today β shows only Overdue + Due Today (hides Upcoming)
- Week β shows all sections with Upcoming limited to next 7 days
- Tag β intersect with a selected frontmatter tag
- Clear β removes all filters, showing everything
| Command | Description |
|---|---|
| Check reminders now | Manually trigger a deadline check |
| Send test Telegram notification | Verify your Telegram configuration |
| Toggle sidebar | Open/close the task sidebar |
Customize the content and format of your Telegram notifications with an enhanced editing experience:
Multi-task Digest Template (for multiple tasks):
{count}: Number of due tasks{tasks}: List of formatted tasks (each using the individual template)
Individual Message Template (for single tasks):
{taskName}: Task name/text{fileName}: File name containing the task{deadline}: Task deadline date{filePath}: Full path to the file{taskId}: Unique task identifier
The plugin now includes powerful UX improvements for template customization:
Instead of manually typing variables, click on the available variable chips to insert them at your cursor position:
- Multi-task digest:
{count},{tasks}chips - Individual template:
{taskName},{fileName},{deadline},{filePath},{taskId}chips
Telegram has a 4096 character limit for messages. The character counter shows:
- Current character count vs limit
- Percentage used
- Warning when approaching 80% of the limit
Enable the "Live preview" setting to see real-time rendering of your templates with sample data:
- Individual task preview with example content
- Multi-task digest preview with multiple sample tasks
- Test notification preview
The Markdown formatting toggle now includes examples:
*bold*for bold text_italic_for italic text`code`formonospacetext[link](https://example.com)for links
Bulk Notification:
π You have {count} pending tasks due today:
{tasks}
Please check your Obsidian vault!
Individual Notification:
π REMINDER: {taskName}
π File: {fileName}
π
Due: {deadline}
Test Notification:
β
Reminder Telegram plugin is working!
This is a test from your Obsidian vault.
Enable Markdown formatting in settings to use Telegram's Markdown syntax for rich text formatting:
*bold*for bold text_italic_for italic text`code`formonospacetext[link](https://example.com)for links
| Setting | Type | Default | Description |
|---|---|---|---|
| Telegram Bot Token | string | '' |
Bot token from @BotFather |
| Telegram Chat ID | string | '' |
Your chat ID for notifications |
| Notifications Enabled | boolean | true |
Enable/disable notifications |
| Check Interval (minutes) | number | 30 |
How often to check for due tasks |
| Scan Mode | dropdown | whole-vault |
Scan entire vault or specific folder |
| Target Folder | string | '' |
Folder to scan (when Scan Mode is "Specific Folder") |
| Multi-task Digest Template | string | "You have {count} task(s) due:\n\n{tasks}" |
Template for multiple tasks |
| Individual Message Template | string | "Task Reminder\n\nTask: {taskName}\nFile: {fileName}\nDeadline: {deadline}" |
Template for single tasks |
| Test Message Template | string | "Test notification from reminder telegram plugin" |
Template for test notifications |
| Live Preview | boolean | true |
Show real-time preview of templates |
| Use Markdown Formatting | boolean | false |
Enable Telegram Markdown formatting (examples: bold, italic) |
| Upcoming Days Ahead | number | 1 |
How many days ahead to show in Upcoming sidebar section |
β° You have X task(s) due:
β’ Task 1 (2024-01-01) - file1.md
β’ Task 2 (2024-01-02) - file2.md
β° Task Reminder
π Task name
π File name
π
Deadline
β
Reminder Telegram plugin is working!
This is a test notification from your Obsidian vault.
- On startup: If periodic checking is enabled
- On interval: Every N minutes (configurable)
- Manual trigger: Via command palette or status bar
Notifications are sent for tasks that are:
- Due today
- Overdue (past deadline)
Completed tasks (status: done or [x]) are skipped.
Here are some planned enhancements for future versions:
- Message templates: Customization of Telegram notification text β IMPLEMENTED
- Enhanced UX: Clickable variables, character counters, and live preview β IMPLEMENTED
- Task sidebar: Dedicated sidebar with urgency grouping and filters β IMPLEMENTED
- Advanced filters: Exclude specific folders or patterns from the scan
- Timezone aware: Explicit time zone management for precise deadlines
- Recurring support: Recognition of recurring tasks (daily, weekly)
- Snooze / Postpone: Inline interaction on Telegram to postpone a task
- Advance notifications: Alert N days before the deadline
- Node.js 18+
- npm
npm installnpm run devnpm run buildnpm run lintPull requests are welcome! Please open an issue first for significant changes.
This plugin is licensed under the GNU General Public License version 3 (GPLv3). See LICENSE for details.
- Inspired by the Obsidian Tasks plugin
- Built with Obsidian Plugin API