Kalendář a plánování
Control Center se připojuje ke Google Calendar, takže máš den vedle flotily. Události synchronizuje, ukazuje je v zobrazení měsíce, týdne, dne a agendy, upozorní tě, než schůzka začne, a z libovolné události udělá nahranou a shrnutou schůzku.
Co se na Google mění
Sekce “Co se na Google mění”Skoro nic. Integrace události stáhne a vykreslí. Nevytváří je, neupravuje,
nemaže ani na pozvánky neodpovídá. Každé připojení přes device code, vestavěné
i s vlastním klientem, žádá calendar.readonly a openid email.
Události se synchronizují do vlastní databáze pracovního prostoru na
serveru (<dataDir>/<workspaceId>/workspace.db) a každý klient je vykreslí
přes RPC. Žádný klient přihlašovací údaje Google nedrží.
Účty na pracovní prostor
Sekce “Účty na pracovní prostor”Účty kalendáře patří k pracovnímu prostoru, stejně jako všechno ostatní v Control Center. Každý pracovní prostor si připojí vlastní účet Google (nebo jich několik) a události ani tokeny jednoho prostoru nejsou z jiného vidět. Přepnutí pracovního prostoru přepne i kalendáře, které vidíš.
Pracovní prostor může připojit více účtů Google, třeba pracovní a osobní, a jejich události se sloučí do stejných zobrazení.
Proč je přihlášení kódem zařízení
Sekce “Proč je přihlášení kódem zařízení”Bezhlavý cc_server nemá prohlížeč, který by zachytil OAuth přesměrování.
Proto ho nepoužívá: autorizuje se device-code grantem (RFC 8628). Server
ukáže krátký uživatelský kód a adresu Google, schválení uděláš na libovolném
zařízení s prohlížečem a server se ptá, dokud ho nepotvrdíš. Bezhlavá
instalace účet připojí právě proto, že nemá koncový bod přesměrování, který
by musela hostovat.
Než si přineseš vlastní údaje, platí jedno: typ klienta musí být u Google
“TV and Limited Input devices”. Google tomuto typu klienta uděluje jen
povolenou sadu scopes a projekt, kde Calendar pro tento typ povolený není,
skončí chybou invalid_scope — pak je potřeba loopback nebo webový klient.
Tokeny server neopouštějí. Zapíšou se do secrets.json v datovém adresáři
serveru pod klíčem google_google:<workspaceId>:<email>, vedle databází
a pod stejnou hranicí důvěry souborového systému hostitele. Server přístup
obnovuje sám a když Google účet trvale zneplatní (zrušená nebo dlouho prošlá
relace), publikuje CalendarAuthExpired a místo tichého selhání ukáže banner
Znovu připojit.
Sestavení ze zdrojů žádné údaje Google neobsahuje — client ID a secret
dodáváš ty. Oficiální vydání mají zapečený veřejný device-code klient, aby
připojení fungovalo rovnou; server si uloží jen značku, která na něj odkazuje,
nikdy kopii. GOOGLE_OAUTH_CLIENT_ID (a jeho secret) v prostředí má vždy
přednost před zapečenou dvojicí. Příznak --google-client-id záměrně
neexistuje: neznámé příznaky se ignorují a secret na příkazovém řádku je
čitelný přes ps.
Jak si rozběhnout vlastní projekt Google, popisuje Připojte Google Calendar.
Synchronizace
Sekce “Synchronizace”Server stahuje posuvné okno událostí každého připojeného účtu — každý kalendář na účtu, nejen primární — každé dvě minuty a navíc na požádání (start, připojení, ruční synchronizace). Krátký interval je levný, protože průchod je přírůstkový: každý kalendář nese vlastní sync token, takže nezměněný kalendář vyjde na jednu téměř prázdnou odpověď místo opětovného stažení okna pěti měsíců.
Opakované události rozvine server, takže žádný klient nikdy nerozebírá pravidlo opakování. Měsíc mimo aktuální okno se načte až při přechodu na něj. Smazané události a ty, které z okna vypadly, další synchronizace odstraní.
Zobrazení
Sekce “Zobrazení”| Zobrazení | Co ukazuje |
|---|---|
| Měsíc | Mřížka celého měsíce (pohání ji balíček kalender) |
| Týden | Události s časem za týden v časové mřížce |
| Den | Události s časem za jeden den v časové mřížce |
| Agenda | Posouvatelný seznam nadcházejících událostí |
Kalendář otevřeš na /calendar; výběr události otevře detail na
/calendar/:eventId. Zvolené zobrazení se uloží do předvoleb daného klienta,
takže na jiné zařízení se nepřenese.
Upozornění na schůzky
Sekce “Upozornění na schůzky”Plánovač jednou za minutu hledá události, které začínají v nastavitelném
předstihu, a pošle oznámení “Schůzka brzy začíná” (MeetingStartingSoon,
doménová událost). Oznámení nese
adresu pro připojení, pokud nějaká je, a kliknutí otevře detail události.
Upozornění se proti alertedAt události neopakují, takže stejná schůzka
neupozorní dvakrát, a to ani po restartu, a událost, jejíž začátek uplynul,
když byla aplikace zavřená, se znovu nepošle.
Na dva limity se snadno narazí. Plánovač běží na klientovi na počítači a jen pro pracovní prostor, který máš právě otevřený — prostor, ve kterém nejsi, žádné upozornění nezvedne. Webové sestavení navíc nemá žádný kanál systémových oznámení, takže nezvedne žádné.
Nahrát a propojit
Sekce “Nahrát a propojit”Z události v kalendáři můžeš spustit nahrávání schůzky, které převezme název události. Control Center uloží mezi nahrávkou a událostí vazbu jedna ku jedné, takže poznámky schůzky a položka kalendáře zůstanou spojené a ani jedna funkce na té druhé nezávisí.
Spustit nahrávání a propojit je jen na počítači. Na webovém klientovi akce hlásí, že nahrávání není dostupné — přestože vlastní postup nahrávání na obrazovce schůzek v prohlížeči funguje.
Viz také
Sekce “Viz také”- Schůzky a přepis: co se stane, když spustíš nahrávání
- Pracovní prostory a izolace: proč má každý pracovní prostor vlastní účty kalendáře
- Doménové události:
MeetingStartingSoonaCalendarAuthExpired - Připojte Google Calendar
- Nahrajte a shrňte schůzku