Monitor Doctolib for available appointment slots and send Telegram notifications when slots open up.
⚠️ Disclaimer / Отказ от ответственностиThis project is an independent, unofficial tool and is not affiliated with, endorsed by, or connected to Doctolib in any way. It is provided for personal, educational purposes only. Use at your own risk.
Automated scraping of websites may violate their Terms of Service. The authors assume no responsibility for any consequences arising from the use of this software, including but not limited to: account bans, legal claims, missed appointments, or data loss.
Этот проект является независимым неофициальным инструментом и не связан с Doctolib никаким образом. Инструмент предоставляется исключительно в личных и образовательных целях. Используйте на свой страх и риск.
Автоматический сбор данных с сайтов может нарушать их Условия использования. Авторы не несут ответственности за любые последствия использования данного программного обеспечения, включая, но не ограничиваясь: блокировкой аккаунта, юридическими претензиями, пропущенными записями или потерей данных.
- Python 3.9+
- Docker (for automatic Selenium container management)
git clone https://github.com/diggerburg/docs_checker.git
cd doctolib-checker
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp config.yaml.example config.yaml
# Edit config.yaml — add your Telegram token and Doctolib URLsCopy config.yaml.example to config.yaml and fill in:
telegram:
api_token: "YOUR_BOT_TOKEN" # From @BotFather
chat_id: "-100XXXXXXXXXX" # Your Telegram chat/group ID
user_to_tag: "@username" # Username to mention on alerts
urls:
- url: "https://www.doctolib.de/..."
label: "Doctor Name"Alternatively, copy .env.example to .env and use environment variables instead of hardcoding values in the YAML file.
- Open Telegram and start a chat with @BotFather
- Send
/newbotand follow the instructions - Copy the token into
config.yaml
- Open the doctor's Doctolib booking page in your browser
- Navigate to the appointment booking step
- Copy the full URL from the address bar
python doctolib.py--dry-run Check without sending Telegram notifications
--no-quiet-hours Ignore quiet hours restriction (default: 00:00–07:00)
--cleanup-only Only remove old screenshots, then exit
-v, --verbose Enable verbose logging
To check every 15 minutes between 7:00 and 23:00:
*/15 7-23 * * * cd /path/to/doctolib-checker && ./venv/bin/python doctolib.py >> cron.log 2>&1If you already have a Selenium instance running, set in config.yaml:
use_docker: false
selenium_hub_url: "http://localhost:4444/wd/hub"doctolib-checker/
├── doctolib.py # Entry point
├── config.yaml.example # Configuration template
├── .env.example # Environment variables template
├── requirements.txt
└── doctolib_checker/
├── main.py # Main orchestration logic
├── config.py # Config loading (YAML + env vars)
├── checker.py # Availability checking
├── browser.py # WebDriver / Selenium management
├── container.py # Docker container lifecycle
├── notifications.py # Telegram notifications
├── cli.py # CLI argument parsing
└── utils.py # Shared utilities
MIT — see the LICENSE file for details.