First prototype

It was cocreated via pair programming with Gemini 2.5 Pro
(experimental).

We first wrote together a design document (which we include in the
`docs/project_plan` folder) and later on programmed the source code
together. Later on I did alone some small refactors to improve and clean
the code, since Gemini wouldn't do it well.

Follow-up commits will refactor the code (it's not very clean) and fix
some bugs, including, but not limited to:

- Recurring events sometimes are not processed well, and they are
  sometimes deleted.
- When starting the backend, it will send a watch request to Google
  Calendar even if a webhook is already active, so we will end up
  receiving duplicate requests.

Change-Id: I6a6a636c9d47f9d8e06c8ba531f702df7d5849b1
50 files changed
tree: 6934d0cc5acfb17c76577f3d041cfd66ed01bf0b
  1. cmd/
  2. configs/
  3. database/
  4. docs/
  5. internal/
  6. tools/
  7. .bazelrc
  8. .gitignore
  9. BUILD.bazel
  10. docker-compose.yml
  11. go.mod
  12. go.sum
  13. MODULE.bazel
  14. MODULE.bazel.lock
  15. README.md
README.md

ZenithPlanner

Release

bazel run //cmd/backend:push_all --config=release