https://github.com/ammaraskar/milkshakeeventsbot
Syncs events from an events forum to a Google calendar and bumps them when the event is coming up.
https://github.com/ammaraskar/milkshakeeventsbot
Last synced: 4 months ago
JSON representation
Syncs events from an events forum to a Google calendar and bumps them when the event is coming up.
- Host: GitHub
- URL: https://github.com/ammaraskar/milkshakeeventsbot
- Owner: ammaraskar
- License: mit
- Created: 2023-11-09T02:04:46.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-02T04:32:45.000Z (over 2 years ago)
- Last Synced: 2025-10-04T17:00:01.018Z (9 months ago)
- Language: Python
- Size: 50.8 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MilkshakeEventsBot
Syncs events from an events forum to a Google calendar and bumps them when the event is coming up.
Looks for threads following the pattern `MM/DD` in a forum called `events` and
turns them into calendar events. Storage is in a flat json file called
`db.json`.
## Setup
Setup requires creating a [Google Apps Script](https://www.google.com/script/start/)
that acts as a web-hook and creates Google Calendar events on your behalf.
Yes seriously, this is easier than setting up oauth nonsense through Google
Cloud and dealing with authentication nonsense.
Simply paste the contents of [AppsScriptWebHook.js](./AppsScriptWebHook.js) to
a new script on https://script.google.com/ with the variables on the top changed
and then deploy as a web app. The deployed URL and token will live in your
secrets.
## Running
1. Set up a virtual env for the project with `python -m venv venv`
2. Activate the virtual env with `. venv/bin/activate`
3. Install dependencies `pip install -r requirements.txt`
4. Copy `secrets.example.json` to `secrets.json` and fill with your secrets.
5. Run `python -m events_bot`
## Testing
1. Follow above instructions to setup virtual environment.
2. Install dev dependencies `pip install -r requirements_dev.txt`
3. `python -m pytest`
## Formatting
We format with `black`. This is checked on the CI.