Personal calendar backend — Python/FastAPI with SQLite.
pip install -r requirements.txt
export JWT_SECRET_KEY="replace-with-at-least-32-random-characters"
python3 main.py
# → http://localhost:8000Seeds sample events automatically on first run.
POST /auth/register— Create a user and receive a bearer JWTPOST /auth/login— Login and receive a bearer JWTPOST /events— Create event (+ optional recurrence)GET /events?start=DATE&end=DATE&tz=TZ— Query events in rangePUT /events/:id— Edit a single eventPUT /events/:id/occurrence/:date— Edit one occurrence of a recurring eventPUT /events/:id/series— Edit series from a date forwardDELETE /events/:id/occurrence/:date— Delete one occurrenceDELETE /events/:id— Delete event or entire series
All /events endpoints require Authorization: Bearer <token>.