# 🗓️ Y.Calendarkin Telegram-бот для упрощенного получения уведомлений о событиях из Яндекс.Календаря. [![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org) [![Aiogram](https://img.shields.io/badge/Aiogram-3.x-green.svg)](https://docs.aiogram.dev/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 📖 Описание Y.Calendarkin — некоммерческий проект, предназначенный для автоматизации уведомлений о календарных событиях из Яндекс.Календаря через Telegram. Бот позволяет настроить гибкую систему напоминаний и получать актуальную информацию о предстоящих событиях. ## ✨ Основные возможности - 📅 **Импорт календаря** — поддержка ICal ссылок из Яндекс.Календаря - ⏰ **Гибкие уведомления** — настройка времени напоминаний (до 60 минут) - 🌅 **Ежедневные отчеты** — утренние сводки событий на день - 🎯 **Моментальные уведомления** — оповещения в момент начала события - 🌍 **Поддержка часовых поясов** — автоматическое определение из календаря - 📋 **Просмотр событий** — список мероприятий на текущий день ## 🛠️ Технологический стек - **Backend**: Python 3.8+ - **Bot Framework**: Aiogram 3.x - **Database**: SQLite - **Calendar Processing**: icalendar, dateutil - **HTTP Client**: wget - **Timezone Support**: pytz ## 🚀 Установка и запуск ### Предварительные требования ```bash pip install -r requirements.txt ``` ### Настройка 1. Создайте нового бота через [@BotFather](https://t.me/BotFather) 2. Получите токен и добавьте его в `config.py`: ```python TOKEN = "your_bot_token_here" ``` 3. Создайте структуру каталогов: ```bash mkdir -p data/icals db ``` ### Запуск ```bash cd code python bot.py ``` ## 📝 Использование ### Начало работы 1. Запустите бота командой `/start` 2. Отправьте ICal ссылку вашего Яндекс.Календаря 3. Настройте уведомления по своему усмотрению ### Основные команды | Команда | Описание | |---------|----------| | `/help` | Справочная информация | | `/list` | События на сегодня | | `/notif` | Включить/выключить уведомления | | `/daily` | Ежедневные утренние сводки | | `/moment` | Уведомления в момент события | | `/get_alarm` | Информация о текущих настройках | | `/edit_alarm` | Изменение времени уведомлений | | `/stop_alarm` | Отключение второго уведомления | ### Получение ICal ссылки 1. Откройте Яндекс.Календарь 2. Перейдите в настройки календаря 3. Найдите раздел "Экспорт" 4. Скопируйте ссылку в формате ICal 5. Отправьте ссылку боту ## 🏗️ Архитектура проекта ``` y.calendarkin/ ├── code/ │ ├── bot.py # Основная логика бота │ ├── config.py # Конфигурация │ ├── script.py # Обработка календарных файлов │ └── sql.py # Работа с базой данных ├── data/ │ ├── icals/ # Загруженные календари │ └── photo_edit_alarm.jpg ├── db/ # База данных SQLite └── requirements.txt ``` ## 📊 База данных Проект использует две основные таблицы: - **user** — информация о пользователях и их календарях - **alarm** — настройки уведомлений для каждого пользователя ## 🔧 Настройка уведомлений - **Первое уведомление**: за 15 минут до события (по умолчанию) - **Второе уведомление**: за 5 минут до события (по умолчанию) - **Диапазон настройки**: от 1 до 59 минут - **Ежедневные сводки**: в 8:00 по часовому поясу пользователя ## 📄 Лицензия Этот проект является некоммерческим и распространяется под лицензией MIT. ## 👨‍💻 Автор **Деев Егор Викторович** - Backend Developer - GitHub: [@EDeev](https://github.com/EDeev) - Email: egor@deev.space - Telegram: [@Egor_Deev](https://t.me/Egor_Deev) ---
Этот бот предназначен для личного использования и не является коммерческим продуктом.

Создано с ❤️ от вашего дорогого - deev.space ©