Die Kladde kennt Termine: Titel, Beginn, Ende, Kontakte, mit Regeln (Viertelstunden, Ende nach Beginn, höchstens acht Stunden, keine Überschneidung). Das Büro lebt aber in Outlook, und dort stehen Dinge, die die Kladde nicht kennt: Urlaub, der Zahnarzt, der Rundgang beim Kunden. In dieser Lektion lernen Sie die Hälfte des Weges, die Graph dafür bietet: Kalender lesen und schreiben. Der Abgleich in beide Richtungen, mit Änderungen, Konflikten und Löschungen, folgt in der nächsten Lektion; hier entsteht das Fundament, auf dem er steht.
Nicht gegen einen Mandanten ausgeführt. Wie in der Lektion davor gilt: Kein Aufruf dieser Lektion wurde gegen einen Microsoft-365-Mandanten ausgeführt. Adressen, Eigenschaften, Grenzen und Codebeispiele stammen aus Microsoft Learn, gelesen für diese Lektion. Wo eine Antwort des Dienstes gezeigt werden müsste, steht eine Beschreibung. Was Learn offen lässt, steht als „nicht gelesen“ oder „offen“ im Text, und die Übungen mit Mandant sagen es und haben einen Teil ohne Mandanten.
| Teil | Was entsteht |
|---|---|
| Entscheidung | Anwendung oder delegiert: warum der Abgleich der Kladde als Anwendung läuft, auf ein Postfach beschränkt |
| Lesen | calendarView, Zeitzone, Serien, Ausnahmen; die eigene Schnittstelle IOfficeCalendar |
| Abbilden | AppointmentMapper: Termin der Kladde ⇄ Ereignis, ohne Kontaktdaten |
| Schreiben | Anlegen, Ändern, Löschen mit dem SDK; transactionId, Zuordnungstabelle, OfficeCalendarWriter |
| Frei oder belegt | getSchedule, availabilityView, die Verbindung zu den freien Zeiten aus Lektion 2.11.4 |
Wo die Kladde steht
Aus K2 und der letzten Lektion brauchen Sie:
Appointmentim Kern mitId,Title,Time(Beginn und Ende alsDateTimeOffset) undContactIds, dazu denAppointmentPlannermit den Regeln und dem Fehlercodeappointment.time.overlaps(Lektion 2.11.3, „Meilenstein 2: Termine im Büro“). Die Antwort der API,AppointmentResponse(Title, Start, End, ContactIds), hat keineId(Lektion 2.3.3); für den Abgleich arbeiten wir deshalb mitAppointmentselbst, nicht mit der Antwort.- die Zeit im Web: Zeitpunkte mit Versatz, die Zeitzone des Büros als Ausgabe, nie als Speicherformat (Lektion 2.3.9, „Zeit im Web“).
- die Freie-Zeiten-Rechnung
FreeSlotsund die Buchung (Lektion 2.11.4, „Meilenstein 3: Freie Zeiten und Buchung“). - die Outbox mit
OutboxMessage,IOutboxDeliveryundDeliveryOutcome(Lektion 2.8.4), den Hintergrunddienst (Lektion 2.8.2) und das ProjektKladde.Graphsamt AusnahmeGraphCallExceptionaus Lektion W4.2.1.
Wieder gilt die Regel des Moduls: Der Kern besitzt seine Schnittstellen, das SDK steht dahinter. Der Kern bekommt einen Ordner Kladde.Core/Calendar mit den Typen dieser
Lektion, Kladde.Graph die Umsetzung.