Synchronizacja terminów podatkowych z Google Calendar
Czyta przypomnienia z dashboardu (status/dashboard.py — terminy podatkowe + niezapłacone/zaległe
faktury, z kwotami) i uzgadnia je z kalendarzem „JDG Podatki" przez Google Calendar API.
Wydarzenia całodniowe na termin płatności, z popupami N dni przed i w dniu.
Wymagana konfiguracja (jednorazowo)
- Google Cloud Console → utwórz OAuth client ID typu „Desktop app", pobierz
credentials.json. - W
.env:GCAL_ENABLED=true,GCAL_CREDENTIALS_PATH=/sciezka/credentials.json. python -m jdg_ksiegowy.calendar.auth_setup— jednorazowa zgoda w przeglądarce (zapisuje refresh token).
Jeśli skrypt zwróci błąd „nie skonfigurowany" / „Brak tokenu" — przerwij i poprowadź usera przez powyższe kroki.
Wywołanie
# Podglad (NIC nie zapisuje) — pokaz co by sie zmienilo:
python3 skills/calendar-sync/scripts/sync.py --dry-run
# Synchronizacja:
python3 skills/calendar-sync/scripts/sync.py
Zwraca JSON: created / updated / deleted / unchanged (listy kluczy wydarzeń) + dry_run.
Zachowanie
- Idempotentne: ponowne uruchomienie bez zmian → wszystko w
unchanged. - Kwoty się aktualizują: zmiana szacowanej kwoty (np. po dodaniu faktury/kosztu) →
updated. - Zapłacone faktury znikają: po oznaczeniu faktury jako zapłaconej jej przypomnienie wypada z dashboardu → wydarzenie zostaje usunięte z kalendarza.
- Dotyka wyłącznie wydarzeń utworzonych przez aplikację (oznaczonych
jdg_managed) — nigdy nie rusza prywatnych wpisów usera.
Automatyzacja
Cron OpenClaw odpala to codziennie (patrz CRON.md): 0 7 * * *. Dzięki temu kwoty są świeże,
a zapłacone faktury automatycznie znikają.
Uwagi
- Kwota VAT+JPK jest szacunkowa (należny − naliczony za poprzedni miesiąc); autorytatywna kwota
pochodzi ze skilla
jpk. - Nigdy nie loguj tokenu OAuth do outputu.