mergecal
mergecal copied to clipboard
Mergecal is a Django webapp that allows you to easily merge multiple iCalendar feeds into a single feed.
mergecal
Welcome to mergecal, a Django webapp that allows you to merge multiple iCalendar feeds into a single feed. With mergecal, you can easily keep track of events from multiple sources in one place.
Available at https://mergecal.habet.dev/
Using mergecal
To use mergecal, you'll need to create an account and log in. Once you're logged in, you can create a calendar and add iCalendar feeds to your calendar by entering the URL of the feed and clicking "Add Feed".
Explanation
-
When a user adds an iCalendar feed to their account, mergecal stores the URL of the feed in the database.
-
The webapp has a background task that runs every so often to fetch the events from all of the iCalendar feeds associated with a user's calendar.
-
The events are then merged into a single calendar and stored in the database.
-
To view the events from all of your added iCalendar feeds in one place, click on the "Subscribe" button and copy the provided URL.
-
Add the URL to your calendar client (e.g. Google Calendar) to view all of the events from the merged feeds in one place.
Deployment Diagram
Contributing
We welcome contributions to mergecal! If you have ideas for new features, bug fixes, or other improvements, please feel free to open an issue or pull request on our GitHub repository.
If you'd like to discuss the project or get more involved, join us on our Discord channel. We'd love to have you as part of the mergecal community!
Local Development
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisites
- Python 3.9 or higher
- Django 4.0 or higher
Installing
Clone the repository to your local machine:
git clone https://github.com/abe-101/mergecal.git
Navigate to the project directory:
cd mergecal
Create a virtual environment:
virtualenv env
Activate the environment:
source env/bin/activate
Install the required dependencies:
pip install -r requirements/local.txt
Run the Django migrations:
python manage.py migrate
Start the development server:
python manage.py runserver
The app should now be running at http://localhost:8000/.
This app comes with Celery.
To run a celery worker with celerybeat:
celery -A config.celery_app worker -l info
celery -A config.celery_app beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
License: MIT