Chat bot - Smart reminder for managers
Production Telegram bot for daily task management. The owner forwards content (text, photo, document, video), assigns a performer, and the bot turns the message into a task with recurring reminders. The performer closes the task with one button, and the owner receives a notification.
Why
— Quick task distribution without unnecessary chats and manual "pings."
— Nothing is lost: the bot reminds until the task is closed.
— A unified standard for regular tasks (daily, weekly, monthly triggers).
Capabilities
— Task dispatching: send content → choose performer → performer receives the task with a "Done" button.
— Auto-reminders: repeat every 30 minutes until "Done" is pressed.
— Command /rem for personal reminders of performers (formats HH:MM or DD.MM HH:MM; the bot understands "today/tomorrow").
— Ready-made schedule presets: Mon 10:00; Sat 19:00/19:30; 1/5/15/20 and the last day of the month.
— Preservation of content essence: supports text, photos, documents, and videos; the task retains an important summary of the original message.
— Notifications to the owner upon task closure with a brief report.
— Task storage in SQLite; survives restarts, active tasks and deadlines are restored upon startup.
— Time zone Europe/Kyiv: all schedules operate in local time.
How it works
The owner sends a message and selects a performer.
The bot creates a task, sends it to the performer, and immediately sets reminders.
Every 30 minutes, a reminder is sent until "Done" is pressed.
Performers can set personal reminders via /rem.
Regular tasks are created based on presets (daily/monthly).
User scenarios
— Owner: send content → choose performer → performer receives the task → upon completion, a notification is received.
— Performer: receive the task with a "Done" button → press → task closed, owner notified.
— Personal reminders: "/rem Close report 18:30" or "/rem Bills 05.09 10:00."
Commands
— /start — shows a list of performers and a brief instruction, with hints on schedule presets.
— /rem — create a personal reminder (time/date + description).
Technical details
— Stack: Python 3.12, aiogram 3.x (FSM, filters), APScheduler (cron/interval), SQLite.
— States: FSM at the stage of selecting a performer by the owner.
— Persistence: tasks in the file tasks.db; upon startup, the bot restores active tasks and reminders.
— Content processing: text/photo/document/video, captions, and a brief summary for owner notifications.
— Time parsing: formats HH:MM and DD.MM HH:MM with validation.
— Time zone: Europe/Kyiv.
Reliability and logs
— Two logging channels: bot.log and stdout.
— Robust error handling: cleaning up outdated messages, protection against blocked/deactivated chats, correct deactivation of tasks.
— Idempotent start: active tasks are automatically restored and reminders recreated.
Data schema (SQLite)
Table tasks: task_id (PK), chat_id, type (text|photo|document|video), file_id, text_, caption, next_reminder_delta (minutes), deadline (ISO), status, message_id, source (owner|manager_rem|...), manager_num.
Limitations
— Reminders repeat every 30 minutes and require pressing "Done."
— Owner and performer identifiers are pre-configured (whitelist).
Development plan
— Admin panel (web/bot) with a task feed and filters.
— Flexible repeat intervals (15/30/60 minutes), "quiet hours," SLA goals.
— Task templates by roles and projects.
— Export and reporting (CSV/Google Sheets).
— Notifications in channels/groups for SLA violations.
Tags: #TelegramBot #Python #aiogram #APScheduler #SQLite #TaskManager #ReminderBot #Automation #Cron #FSM #Notifications #KyivTime #CRM #BusinessBot #Freelance #portfolio-website
Why
— Quick task distribution without unnecessary chats and manual "pings."
— Nothing is lost: the bot reminds until the task is closed.
— A unified standard for regular tasks (daily, weekly, monthly triggers).
Capabilities
— Task dispatching: send content → choose performer → performer receives the task with a "Done" button.
— Auto-reminders: repeat every 30 minutes until "Done" is pressed.
— Command /rem for personal reminders of performers (formats HH:MM or DD.MM HH:MM; the bot understands "today/tomorrow").
— Ready-made schedule presets: Mon 10:00; Sat 19:00/19:30; 1/5/15/20 and the last day of the month.
— Preservation of content essence: supports text, photos, documents, and videos; the task retains an important summary of the original message.
— Notifications to the owner upon task closure with a brief report.
— Task storage in SQLite; survives restarts, active tasks and deadlines are restored upon startup.
— Time zone Europe/Kyiv: all schedules operate in local time.
How it works
The owner sends a message and selects a performer.
The bot creates a task, sends it to the performer, and immediately sets reminders.
Every 30 minutes, a reminder is sent until "Done" is pressed.
Performers can set personal reminders via /rem.
Regular tasks are created based on presets (daily/monthly).
User scenarios
— Owner: send content → choose performer → performer receives the task → upon completion, a notification is received.
— Performer: receive the task with a "Done" button → press → task closed, owner notified.
— Personal reminders: "/rem Close report 18:30" or "/rem Bills 05.09 10:00."
Commands
— /start — shows a list of performers and a brief instruction, with hints on schedule presets.
— /rem — create a personal reminder (time/date + description).
Technical details
— Stack: Python 3.12, aiogram 3.x (FSM, filters), APScheduler (cron/interval), SQLite.
— States: FSM at the stage of selecting a performer by the owner.
— Persistence: tasks in the file tasks.db; upon startup, the bot restores active tasks and reminders.
— Content processing: text/photo/document/video, captions, and a brief summary for owner notifications.
— Time parsing: formats HH:MM and DD.MM HH:MM with validation.
— Time zone: Europe/Kyiv.
Reliability and logs
— Two logging channels: bot.log and stdout.
— Robust error handling: cleaning up outdated messages, protection against blocked/deactivated chats, correct deactivation of tasks.
— Idempotent start: active tasks are automatically restored and reminders recreated.
Data schema (SQLite)
Table tasks: task_id (PK), chat_id, type (text|photo|document|video), file_id, text_, caption, next_reminder_delta (minutes), deadline (ISO), status, message_id, source (owner|manager_rem|...), manager_num.
Limitations
— Reminders repeat every 30 minutes and require pressing "Done."
— Owner and performer identifiers are pre-configured (whitelist).
Development plan
— Admin panel (web/bot) with a task feed and filters.
— Flexible repeat intervals (15/30/60 minutes), "quiet hours," SLA goals.
— Task templates by roles and projects.
— Export and reporting (CSV/Google Sheets).
— Notifications in channels/groups for SLA violations.
Tags: #TelegramBot #Python #aiogram #APScheduler #SQLite #TaskManager #ReminderBot #Automation #Cron #FSM #Notifications #KyivTime #CRM #BusinessBot #Freelance #portfolio-website