Skip to content

diggerburg/docs_checker

Repository files navigation

Doctolib Checker

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 никаким образом. Инструмент предоставляется исключительно в личных и образовательных целях. Используйте на свой страх и риск.

Автоматический сбор данных с сайтов может нарушать их Условия использования. Авторы не несут ответственности за любые последствия использования данного программного обеспечения, включая, но не ограничиваясь: блокировкой аккаунта, юридическими претензиями, пропущенными записями или потерей данных.


Requirements

  • Python 3.9+
  • Docker (for automatic Selenium container management)

Quick Start

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 URLs

Configuration

Copy 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.

Getting a Telegram Bot Token

  1. Open Telegram and start a chat with @BotFather
  2. Send /newbot and follow the instructions
  3. Copy the token into config.yaml

Getting a Doctolib URL

  1. Open the doctor's Doctolib booking page in your browser
  2. Navigate to the appointment booking step
  3. Copy the full URL from the address bar

Usage

python doctolib.py

Options

--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

Cron (Automated Checks)

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>&1

Without Docker

If you already have a Selenium instance running, set in config.yaml:

use_docker: false
selenium_hub_url: "http://localhost:4444/wd/hub"

Project Structure

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

License

MIT — see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages