https://github.com/torbenwetter/116117-terminservice-scraper
Scrapes the 116117 Terminservice and notifies about available appointments via Telegram
https://github.com/torbenwetter/116117-terminservice-scraper
116117 appointments scraper telegram-bot terminservice
Last synced: about 1 month ago
JSON representation
Scrapes the 116117 Terminservice and notifies about available appointments via Telegram
- Host: GitHub
- URL: https://github.com/torbenwetter/116117-terminservice-scraper
- Owner: TorbenWetter
- License: mit
- Created: 2025-05-09T11:12:32.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-05-09T12:31:46.000Z (about 1 month ago)
- Last Synced: 2025-05-09T17:03:46.938Z (about 1 month ago)
- Topics: 116117, appointments, scraper, telegram-bot, terminservice
- Language: Python
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 116117 Terminservice Scraper
This project helps you find medical appointments using a "Dringlichkeitscode" (urgency code) on the [116117 Terminservice](https://www.eterminservice.de/terminservice) website. It automatically checks for available appointments and notifies you via Telegram.
## Features
- Scrapes the 116117 appointment service for available slots.
- Sends Telegram notifications (with screenshot) when appointments are found.
- Can be run periodically (e.g., as a cronjob) for continuous monitoring.## Setup
### 1. Clone the repository
```bash
git clone https://github.com/TorbenWetter/116117-terminservice-scraper.git
cd 116117-terminservice-scraper
```### 2. Install dependencies
You can use either [Poetry](https://python-poetry.org) or `pip` with `requirements.txt`:
#### Option A: Poetry (recommended)
```bash
poetry install
```#### Option B: pip
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```### 3. Configure environment variables
Update the following variables in the `.env` file:
- **BOOKING_URL**: Visit [116117 Terminservice](https://www.eterminservice.de/terminservice) and enter your Vermittlungscode, zip code, and appointment type (e.g., Psychiatrie). Copy the resulting link from your browser and paste it here.
- **TELEGRAM_TOKEN**: Token from your Telegram Bot (create one via [@BotFather](https://t.me/BotFather)).
- **TELEGRAM_CHAT_ID**: Your Telegram chat ID (see [how to get it](https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a)).### 4. Run the script
With Poetry:
```bash
poetry run python main.py
```With pip/venv:
```bash
python main.py
```### 5. (Optional) Set up as a cronjob
You can run the script periodically (e.g., every 2 minutes):
```cron
*/2 * * * * /path/to/venv/bin/python /path/to/116117-terminservice-scraper/main.py >> /path/to/116117-terminservice-scraper/cron.log 2>&1
```In practice, running every 2 minutes has not resulted in being blocked by the site.
## Contributing
Contributions and bug fixes are welcome! Feel free to open issues or pull requests.
**Dependency management:**
- If you add or update dependencies using Poetry, please also run:
```bash
poetry export -f requirements.txt --output requirements.txt
```
This ensures the `requirements.txt` stays in sync for users who install via pip.