Kalender och schemaläggning
Control Center ansluter till Google Calendar så att din dag finns sida vid sida med din flotta. Det synkar dina händelser, visar dem i vyerna månad, vecka, dag och agenda, varnar dig innan ett möte börjar och gör vilken händelse som helst till ett inspelat, sammanfattat möte.
Vad den ändrar i Google
Avsnitt med rubriken “Vad den ändrar i Google”Nästan ingenting. Integrationen hämtar in händelser och renderar dem. Den skapar,
redigerar eller tar inte bort något och svarar inte på inbjudningar. Varje
device-code-anslutning, inbyggd eller med egna uppgifter, begär
calendar.readonly plus openid email.
Händelser synkas till arbetsytans egen databas på servern
(<dataDir>/<workspaceId>/workspace.db) och renderas av varje klient över RPC.
Ingen klient håller några Google-autentiseringsuppgifter.
Konton per arbetsyta
Avsnitt med rubriken “Konton per arbetsyta”Kalenderkonton hör till arbetsytan, precis som allt annat i Control Center. Varje arbetsyta ansluter sitt eget Google-konto (eller flera), och en arbetsytas händelser och tokens är aldrig synliga från en annan. Att byta arbetsyta byter vilka kalendrar du ser.
En arbetsyta kan ansluta flera Google-konton, till exempel ett jobbkonto och ett privat, och deras händelser slås samman i samma vyer.
Varför inloggning sker med en device code
Avsnitt med rubriken “Varför inloggning sker med en device code”cc_server körs headless och har ingen webbläsare som kan fånga en
OAuth-omdirigering. Därför använder den ingen: den auktoriserar med
device-code-bidraget (RFC 8628). Servern visar en kort användarkod och en
Google-URL, du godkänner på valfri enhet med webbläsare och servern pollar tills
du gör det. En headless installation kan ansluta ett konto just för att det inte
finns någon omdirigeringsändpunkt att vara värd för.
Konsekvensen du bör känna till innan du tar med egna autentiseringsuppgifter:
klienttypen måste vara Googles “TV and Limited Input devices”. Google beviljar
bara en fördefinierad uppsättning tillåtna omfattningar för den klienttypen, och
ett projekt där Calendar inte är tillåtet för den klienttypen misslyckas med
invalid_scope — du skulle i stället behöva en loopback- eller webbklient.
Token lämnar aldrig servern. De skrivs till serverns secrets.json i dess
datakatalog, med nyckeln google_google:<workspaceId>:<email>, tillsammans med
databaserna och under samma förtroendegräns som värdfilsystemet. Servern förnyar
åtkomsten automatiskt och publicerar CalendarAuthExpired när Google
ogiltigförklarar ett konto permanent (en återkallad eller länge sedan utgången
session), och visar en Återanslut-banderoll i stället för att misslyckas
tyst.
Ett bygge från källkod levereras utan några Google-autentiseringsuppgifter
alls — du står själv för klient-ID och hemlighet. Officiella releasebyggen har en
inbakad icke-konfidentiell device-code-klient så att anslutningsflödet fungerar
direkt; servern lagrar bara en markör som refererar till den, aldrig en kopia.
GOOGLE_OAUTH_CLIENT_ID (och dess hemlighet) i miljön har alltid företräde
framför det inbakade paret. Det finns medvetet ingen flagga för
--google-client-id: okända flaggor ignoreras, och en hemlighet på en
kommandorad går att läsa via ps.
För att köra ett eget Google-projekt, se Anslut en Google Calendar.
Servern hämtar ett rullande fönster med händelser från varje anslutet konto — varje kalender på kontot, inte bara den primära — varannan minut, plus vid behov (start, anslutning, manuell uppdatering). Den korta frekvensen är överkomlig eftersom genomsökningen är inkrementell: varje kalender har sin egen synktoken, så en oförändrad kalender kostar ett nästan tomt svar i stället för att hämta om ett fem månader långt fönster.
Återkommande händelser expanderas på serversidan, så ingen klient tolkar någonsin en återkommregel. Att navigera till en månad utanför det aktuella fönstret läser in det intervallet först när det behövs. Borttagna händelser, eller händelser som flyttats utanför intervallet, rensas bort vid nästa synk.
| Vy | Vad den visar |
|---|---|
| Månad | Ett fullständigt månadsrutnät (drivs av paketet kalender) |
| Vecka | En veckas tidsatta händelser i ett tidsrutnät |
| Dag | En enskild dags tidsatta händelser i ett tidsrutnät |
| Agenda | En rullningsbar lista över kommande händelser |
Öppna kalendern på /calendar; om du väljer en händelse öppnas dess detaljer på
/calendar/:eventId. Vyn du väljer sparas i just den klientens egna
inställningar, så den följer inte med till en annan enhet.
Mötesaviseringar
Avsnitt med rubriken “Mötesaviseringar”En schemaläggare som körs en gång i minuten letar efter händelser som börjar inom
ett konfigurerbart tidsfönster före start och skickar en
“Mötet börjar snart”-avisering (en MeetingStartingSoon
domänhändelse). Aviseringen innehåller
anslutnings-URL:en när en sådan finns, och ett klick på den öppnar händelsens
detaljer. Aviseringar avdubbletteras mot händelsens alertedAt, så samma möte
aviseras aldrig två gånger, ens över omstarter, och en händelse vars start
passerade medan appen var stängd spelas aldrig upp igen.
Det är lätt att snubbla på två begränsningar. Schemaläggaren körs klientsidigt på skrivbordet och bara för arbetsytan du just nu har öppen — en arbetsyta du inte är i skickar ingen avisering. Och webbbygget har ingen pipeline för OS-aviseringar alls, så det skickar inte heller några.
Spela in och länka
Avsnitt med rubriken “Spela in och länka”Från en kalenderhändelse kan du starta en mötesinspelning med händelsens titel som utgångspunkt. Control Center lagrar en en-till-en-koppling mellan inspelningen och händelsen, så mötets anteckningar och kalenderposten förblir kopplade utan att någon av funktionerna är beroende av den andra.
Starta inspelning och länka finns bara på skrivbordet. I webbklienten meddelar åtgärden att inspelning inte är tillgänglig — även om mötesskärmens eget inspelningsflöde faktiskt fungerar i webbläsaren.
- Möten och transkription: vad som händer efter att du startat en inspelning
- Arbetsytor och isolering: varför kalenderkonton hör till arbetsytan
- Domänhändelser:
MeetingStartingSoonochCalendarAuthExpired - Anslut en Google Calendar
- Spela in och sammanfatta ett möte