A Python server-side application that scrapes a website for event data and automatically generates a subscribable calendar using CalDav/iCal format.
- Web scraping component for extracting events
- Data parsing into calendar events
- iCal calendar generation and serving
- Subscribable by iCloud Calendar and similar apps
- Automated periodic updates
- Clone the repository
- Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Configure the scraper URL in
src/scraper/scraper.py - Run the application:
python src/main.py
- Subscribe to the calendar at
http://localhost:5000/calendar.icsin your calendar app
-
Clone the repository on your Ubuntu server
-
Run the deployment script:
./deploy.sh
This will:
- Stop any running instance
- Pull latest updates
- Install dependencies
- Set up systemd service
- Start the service
-
Check service status:
sudo systemctl status ianuacaldav
-
View logs:
sudo journalctl -u ianuacaldav -f
src/scraper/: Web scraping functionalitysrc/parser/: Event data parsingsrc/caldav_server/: Calendar servingsrc/main.py: Application entry point
- requests: HTTP requests
- beautifulsoup4: HTML parsing
- icalendar: iCal format handling
- flask: Web server
- apscheduler: Task scheduling