-
Danil Babakov authored
Personal bot that syncs two Google accounts (work + personal) into SQLite once a day and sends Telegram reminders before events. - Google OAuth (calendar.readonly) with CSRF-checked state; paste-URL fallback for servers without a public callback - Daily cron sync + /sync; recurring instances expanded by Google; updates, cancellations and reschedules handled - Notification worker reads only the local DB; SentNotifications prevents duplicates across restarts - /today: Google-Calendar-style day image (SkiaSharp) with join links, meeting links extracted from location/description - Docker Compose deployment, EF Core migrations, 31 unit tests Co-Authored-By:Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Danil Babakov authoredPersonal bot that syncs two Google accounts (work + personal) into SQLite once a day and sends Telegram reminders before events. - Google OAuth (calendar.readonly) with CSRF-checked state; paste-URL fallback for servers without a public callback - Daily cron sync + /sync; recurring instances expanded by Google; updates, cancellations and reschedules handled - Notification worker reads only the local DB; SentNotifications prevents duplicates across restarts - /today: Google-Calendar-style day image (SkiaSharp) with join links, meeting links extracted from location/description - Docker Compose deployment, EF Core migrations, 31 unit tests Co-Authored-By:Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Loading