Zum Hauptinhalt springen

Termine

Ein Termin ist ein Kalendermeeting mit seinen Teilnehmern und existiert einmal je Nutzer. Diese Endpunkte listen und durchsuchen Termine und ersetzen ihre Tags.

Jeder Endpunkt unten zeigt in der Mitte seine Parameter und Antwortfelder und rechts ein Anfragebeispiel mit Beispielantwort.

Basis-URL https://api.sally.ioVersion v1.0 aktuell, noch nicht eingefrorenSo funktioniert die Versionierung

Durchsucht Termine (Betreff, Teilnehmer, Zeitraum), paginiert​

GET/v1.0/directories/{directoryId}/appointments

Teilstring-Suche ohne Beachtung der Groß- und Kleinschreibung (siehe „Textsuche" oben): ?subject findet jeden Teil des Betreffs (Anfang, Mitte oder Ende), ?attendee jeden Teil eines Teilnehmernamens bzw. einer Teilnehmer-E-Mail. ?from/?to filtern nach StartTime und sind UTC ISO-8601 (YYYY-MM-DDTHH:MM:SSZ, siehe „Datum & Uhrzeit" oben). Paginierung über ?page + ?pageSize (max. 100). Absteigend nach StartTime sortiert.

Feldübersicht aus der Spezifikation

Felder der Antwort:

  • page / pageSize / total / hasMore: Paginierungs-Hülle (aktuelle Seite, Seitengröße, Gesamtzahl, ob weitere Seiten folgen).
  • items (array): die Termine auf dieser Seite. Jeder Eintrag enthält:
    • appointmentId (string): Id des Termins.
    • subject (string): Betreff des Termins.
    • description (string | null): Inhalt des Termins, so wie ihn der Kalender liefert; bei Outlook- bzw. Google-Terminen meist HTML, bei in Sally erstellten Terminen reiner Text. Wird unverändert zurückgegeben.
    • startTime (string | null): Startzeit (ISO-8601).
    • endTime (string | null): Endzeit (ISO-8601).
    • durationInMinutes (number | null): Dauer in Minuten.
    • isAllDay (boolean): true, wenn der Termin ganztägig ist.
    • location (string | null): Ort des Termins.
    • isPrivate (boolean): true, wenn der Termin als privat markiert ist.
    • isCanceled (boolean): true, wenn der Termin abgesagt wurde.
    • isRecurring (boolean): true, wenn der Termin Teil einer Terminserie ist.
    • icalId (string | null): die iCalendar-UID aus dem Quellkalender, zum Abgleich mit deiner eigenen Kopie. Nicht eindeutig innerhalb eines Unternehmenskontos (eine Kopie pro synchronisiertem Kalender).
    • attendees (array): die Teilnehmer. Jeder enthält:
      • name (string | null): Name des Teilnehmers.
      • email (string | null): E-Mail- bzw. Adresseintrag des Teilnehmers.
      • isRequired (boolean): true bei einem erforderlichen Teilnehmer, false bei einem optionalen.
      • invitationStatus (string enum): Einladungsstatus; einer von declined, accepted, tentative, notResponded, organizer, unknown.
      • attendanceStatus (string enum): Anwesenheitsstatus; einer von notAttended, attended, unknown.
    • tags (array): effektive Tags (eigene plus geerbte vom Serienmaster). Jeder enthält:
      • tagId (string): Id des Tags.
      • name (string): Anzeigename des Tags.
      • colorCode (string | null): ein Farbschlüssel aus der Sally-Tag-Palette (ein Farbname wie blue/red/green, kein roher Hex-Wert; vollständige Liste im Schema); null, wenn nicht gesetzt.

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

Query-Parameter

  • pagenumberoptional

    Seitennummer, beginnend bei 1. Standard: 1.

  • pageSizenumberoptional

    Einträge pro Seite. Standard: 25, maximal 100.

  • subjectstringoptional

    Teilstring-Suche ohne Beachtung der Groß- und Kleinschreibung im Betreff. Der Suchbegriff kann am Anfang, in der Mitte oder am Ende stehen (z. B. findet "meet" auch "Weekly Meeting").

  • attendeestringoptional

    Teilstring-Suche ohne Beachtung der Groß- und Kleinschreibung im Namen oder in der E-Mail eines Teilnehmers. Der Suchbegriff kann am Anfang, in der Mitte oder am Ende stehen (z. B. findet "ann" auch "Joanna").

  • fromstringoptional

    Nur Termine mit StartTime >= diesem UTC-ISO-8601-Zeitstempel (YYYY-MM-DDTHH:MM:SSZ).

  • tostringoptional

    Nur Termine mit StartTime <= diesem UTC-ISO-8601-Zeitstempel (YYYY-MM-DDTHH:MM:SSZ).

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: appointmentId, attendees, description, durationInMinutes, endTime, icalId, isAllDay, isCanceled, isPrivate, isRecurring, location, startTime, subject, tags.

    Beispiel: appointmentId,attendees

Antwort: je Eintrag in items

  • appointmentIdstringPflicht

    Id des Termins.

  • subjectstringPflicht

    Betreff des Termins.

  • descriptionstringPflichtkann null sein

    Inhalt des Termins, so wie ihn der Kalender liefert. Bei Terminen aus Outlook oder Google Calendar meist HTML, bei in Sally erstellten Terminen reiner Text. Wird unverändert zurückgegeben, stelle ihn also entsprechend dar. Null, wenn der Termin keinen Inhalt hat.

  • startTimestringPflichtkann null sein

    Startzeit (ISO-8601).

  • endTimestringPflichtkann null sein

    Endzeit (ISO-8601).

  • durationInMinutesnumberPflichtkann null sein

    Dauer in Minuten.

  • isAllDaybooleanPflicht

    True, wenn der Termin ganztägig ist. Aus dem alten System migrierte Termine haben hier eventuell keinen Wert, was als false gilt.

  • locationstringPflichtkann null sein

    Ort des Termins.

  • isPrivatebooleanPflicht

    True, wenn der Termin als privat markiert ist.

  • isCanceledbooleanPflicht

    True, wenn der Termin abgesagt wurde.

  • isRecurringbooleanPflicht

    True, wenn der Termin Teil einer Terminserie ist.

  • icalIdstringPflichtkann null sein

    Die iCalendar-UID des Termins, wie sie der Kalender meldet, aus dem er stammt. Nutze sie, um einen Termin mit deiner eigenen Kopie desselben Kalendereintrags abzugleichen. NICHT eindeutig innerhalb eines Unternehmenskontos: Derselbe Eintrag erscheint einmal pro Kalender, aus dem er synchronisiert wurde, und alle diese Kopien teilen sich diesen Wert. Null bei Terminen, die nie aus einem Kalender stammten.

  • attendeesobject[]Pflicht

    Teilnehmer.

    5 Unterfelder
    • namestringPflichtkann null sein

      Name des Teilnehmers.

    • emailstringPflichtkann null sein

      E-Mail- bzw. Adresseintrag des Teilnehmers.

    • invitationStatusstringPflicht

      Einladungsstatus des Teilnehmers.

      Erlaubte Werte: declinedacceptedtentativenotRespondedorganizerunknown
    • attendanceStatusstringPflicht

      Anwesenheitsstatus des Teilnehmers.

      Erlaubte Werte: notAttendedattendedunknown
    • isRequiredbooleanPflicht

      True, wenn der Teilnehmer ein erforderlicher Teilnehmer ist, false, wenn optional (wie im Kalender festgelegt).

  • tagsobject[]Pflicht

    Effektive Tags (eigene plus geerbte vom Serienmaster).

    3 Unterfelder
    • tagIdstringPflicht

      Id des Tags.

    • namestringPflicht

      Anzeigename des Tags.

    • colorCodestringPflichtkann null sein

      Farbe des Tags als Schlüssel aus Sallys fester Tag-Palette: ein Farb-NAME, kein roher Hex-Wert. Einer von: indigo, purple, fuchsia, pink, rose, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, slate, gray, zinc, stone, neutral. Der Client ordnet den Schlüssel der tatsächlichen Farbe (hell/dunkel) zu; null oder ein unbekannter Schlüssel wird in der neutralen Standardfarbe dargestellt. Null, wenn nicht gesetzt.

Jede Seite trägt außerdem page, pageSize, total, hasMore.

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.

POST/v1.0/directories/{directoryId}/appointments/search

Durchsucht Termine, absteigend nach StartTime sortiert.

Feldübersicht aus der Spezifikation

Felder im Body:

  • search (string, optional): Teilstring ohne Beachtung der Groß- und Kleinschreibung in Betreff, Beschreibung sowie Name und E-Mail der Teilnehmer; ein Treffer in einem davon genügt.
  • from (string, optional): nur Termine mit StartTime >= diesem UTC-ISO-8601-Zeitstempel (YYYY-MM-DDTHH:MM:SSZ).
  • to (string, optional): nur Termine mit StartTime <= diesem UTC-ISO-8601-Zeitstempel (YYYY-MM-DDTHH:MM:SSZ).
  • page (number, optional, Standard 1): Seitennummer, beginnend bei 1.
  • pageSize (number, optional, Standard 25): Seitengröße, max. 100.

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

Query-Parameter

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: appointmentId, attendees, description, durationInMinutes, endTime, icalId, isAllDay, isCanceled, isPrivate, isRecurring, location, startTime, subject, tags.

    Beispiel: appointmentId,attendees

Request-Body application/json

  • searchstringoptionalkann null sein

    Teilstring-Suche ohne Beachtung der Groß- und Kleinschreibung in Betreff, Beschreibung sowie Name und E-Mail der Teilnehmer. Der Suchbegriff kann jeweils am Anfang, in der Mitte oder am Ende stehen; ein Treffer in einem davon genügt.

  • fromstringoptionalkann null sein

    Nur Termine mit StartTime >= diesem UTC-ISO-8601-Zeitstempel (YYYY-MM-DDTHH:MM:SSZ).

  • tostringoptionalkann null sein

    Nur Termine mit StartTime <= diesem UTC-ISO-8601-Zeitstempel (YYYY-MM-DDTHH:MM:SSZ).

  • pagenumberoptional

    Seite (beginnend bei 1, Standard 1).

  • pageSizenumberoptional

    Seitengröße (Standard 25, max. 100).

Antwort: je Eintrag in items

  • appointmentIdstringPflicht

    Id des Termins.

  • subjectstringPflicht

    Betreff des Termins.

  • descriptionstringPflichtkann null sein

    Inhalt des Termins, so wie ihn der Kalender liefert. Bei Terminen aus Outlook oder Google Calendar meist HTML, bei in Sally erstellten Terminen reiner Text. Wird unverändert zurückgegeben, stelle ihn also entsprechend dar. Null, wenn der Termin keinen Inhalt hat.

  • startTimestringPflichtkann null sein

    Startzeit (ISO-8601).

  • endTimestringPflichtkann null sein

    Endzeit (ISO-8601).

  • durationInMinutesnumberPflichtkann null sein

    Dauer in Minuten.

  • isAllDaybooleanPflicht

    True, wenn der Termin ganztägig ist. Aus dem alten System migrierte Termine haben hier eventuell keinen Wert, was als false gilt.

  • locationstringPflichtkann null sein

    Ort des Termins.

  • isPrivatebooleanPflicht

    True, wenn der Termin als privat markiert ist.

  • isCanceledbooleanPflicht

    True, wenn der Termin abgesagt wurde.

  • isRecurringbooleanPflicht

    True, wenn der Termin Teil einer Terminserie ist.

  • icalIdstringPflichtkann null sein

    Die iCalendar-UID des Termins, wie sie der Kalender meldet, aus dem er stammt. Nutze sie, um einen Termin mit deiner eigenen Kopie desselben Kalendereintrags abzugleichen. NICHT eindeutig innerhalb eines Unternehmenskontos: Derselbe Eintrag erscheint einmal pro Kalender, aus dem er synchronisiert wurde, und alle diese Kopien teilen sich diesen Wert. Null bei Terminen, die nie aus einem Kalender stammten.

  • attendeesobject[]Pflicht

    Teilnehmer.

    5 Unterfelder
    • namestringPflichtkann null sein

      Name des Teilnehmers.

    • emailstringPflichtkann null sein

      E-Mail- bzw. Adresseintrag des Teilnehmers.

    • invitationStatusstringPflicht

      Einladungsstatus des Teilnehmers.

      Erlaubte Werte: declinedacceptedtentativenotRespondedorganizerunknown
    • attendanceStatusstringPflicht

      Anwesenheitsstatus des Teilnehmers.

      Erlaubte Werte: notAttendedattendedunknown
    • isRequiredbooleanPflicht

      True, wenn der Teilnehmer ein erforderlicher Teilnehmer ist, false, wenn optional (wie im Kalender festgelegt).

  • tagsobject[]Pflicht

    Effektive Tags (eigene plus geerbte vom Serienmaster).

    3 Unterfelder
    • tagIdstringPflicht

      Id des Tags.

    • namestringPflicht

      Anzeigename des Tags.

    • colorCodestringPflichtkann null sein

      Farbe des Tags als Schlüssel aus Sallys fester Tag-Palette: ein Farb-NAME, kein roher Hex-Wert. Einer von: indigo, purple, fuchsia, pink, rose, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, slate, gray, zinc, stone, neutral. Der Client ordnet den Schlüssel der tatsächlichen Farbe (hell/dunkel) zu; null oder ein unbekannter Schlüssel wird in der neutralen Standardfarbe dargestellt. Null, wenn nicht gesetzt.

Jede Seite trägt außerdem page, pageSize, total, hasMore.

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 403

    Verboten (unzureichende Berechtigungen).

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.

Ersetzt die Tags eines Termins (zuweisen/entfernen)​

PUT/v1.0/directories/{directoryId}/appointments/{appointmentId}/tags

Vollständiges Ersetzen der Tags eines Termins. Serien-Tags liegen auf dem Serienmaster und werden vererbt, sie werden nicht hier gesetzt. Maximal 20 Tags pro Termin.

Feldübersicht aus der Spezifikation

Felder im Body:

  • tagIds (string array): Ids bestehender Tags, die zugewiesen werden sollen; die angegebene Menge ersetzt die aktuelle. Zuweisen funktioniert nur mit Tag-Ids, lege den Tag also zuerst über POST /v1.0/directories/{directoryId}/tags an und weise ihn dann hier zu.

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

  • appointmentIdstringPflicht

    Id des Termins.

Query-Parameter

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: colorCode, name, tagId.

    Beispiel: colorCode,name

Request-Body application/json

  • tagIdsstring[]optional

    Ids bestehender Tags, die zugewiesen werden sollen; die angegebene Menge ersetzt die aktuelle.

Antwort

  • tagIdstringPflicht

    Id des Tags.

  • namestringPflicht

    Anzeigename des Tags.

  • colorCodestringPflichtkann null sein

    Farbe des Tags als Schlüssel aus Sallys fester Tag-Palette: ein Farb-NAME, kein roher Hex-Wert. Einer von: indigo, purple, fuchsia, pink, rose, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, slate, gray, zinc, stone, neutral. Der Client ordnet den Schlüssel der tatsächlichen Farbe (hell/dunkel) zu; null oder ein unbekannter Schlüssel wird in der neutralen Standardfarbe dargestellt. Null, wenn nicht gesetzt.

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 403

    Verboten (unzureichende Berechtigungen).

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.