Appointment API specification (9b12f12b47941db9c2826ea2c4a93636fa825235)

Download OpenAPI specification:Download

The appointment service implements all appointment and reminder functions for GroupAlarm

appointment

CreateAppointment

Create an appointment with the passed parameters

Authorizations:
API_TokenPersonal-Access-Token
Request Body schema: application/json
required

appointment payload

creationDate
any
creator
integer <int64>
description
required
string
endDate
required
any
feedbackDeadline
any
Default: "null"

FeedbackDeadline, if set, is the time after which feedback will no longer be accepted. It may only be set for non-recurring appointments, i.e. if Recurrence is nil.

id
integer <int64>
isPublic
boolean

Appointments that are marked private will not be exported to a public iCal

keepLabelParticipantsInSync
boolean

KeepLabelParticipantsInSync ensures that added and removed users from an associated label are automatically added and removed from the appointment. Otherwise they will only be updated when updating the appointment.

labelIDs
Array of integers <int64> [ items <int64 > ]

Optional list of labels. All current participants will be invited to the appointment. Participants present in multiple labels will be matched to first label in list. Participants present in a label and participant list will be stored independent from labels.

name
required
string
notificationDate
any
Default: "null"

NotificationDate will, if set, send appointment invitations at the specified point in time instead of when creating the appointment.

organizationID
required
integer <int64>
Array of objects (AppointmentParticipant)
object (AppointmentRecurrence)

AppointmentRecurrence describes how an appointment is repeated

reminder
integer <int64> [ 0 .. 10080 ]

Reminder, if set, is the time in minutes after which a push notification will be sent to all participants who didn't denied the appointment.

startDate
required
any
timezone
string
Default: "\"UTC\""

Timezone which is used for DST computation

Responses

Request samples

Content type
application/json
{
  • "creationDate": null,
  • "creator": 0,
  • "description": "string",
  • "endDate": null,
  • "feedbackDeadline": "null",
  • "id": 0,
  • "isPublic": true,
  • "keepLabelParticipantsInSync": true,
  • "labelIDs": [
    ],
  • "name": "string",
  • "notificationDate": "null",
  • "organizationID": 0,
  • "participants": [
    ],
  • "recurrence": {
    },
  • "reminder": 10080,
  • "startDate": null,
  • "timezone": "\"UTC\""
}

Response samples

Content type
application/json
{
  • "creationDate": null,
  • "creator": 0,
  • "description": "string",
  • "endDate": null,
  • "feedbackDeadline": "null",
  • "id": 0,
  • "isPublic": true,
  • "keepLabelParticipantsInSync": true,
  • "labelIDs": [
    ],
  • "name": "string",
  • "notificationDate": "null",
  • "organizationID": 0,
  • "participants": [
    ],
  • "recurrence": {
    },
  • "reminder": 10080,
  • "startDate": null,
  • "timezone": "\"UTC\""
}

GetAppointment

Returns the appointment with the requested id A specific occurrence of a recurring appointment can be requested by passing a timestamp, otherwise the first occurrence is returned.

Authorizations:
API_TokenPersonal-Access-Token
path Parameters
id
required
integer

id of an appointment

query Parameters
timestamp
string <date-time>

timestamp of a recurring appointment

Responses

Response samples

Content type
application/json
{
  • "creationDate": null,
  • "creator": 0,
  • "description": "string",
  • "endDate": null,
  • "feedbackDeadline": "null",
  • "id": 0,
  • "isPublic": true,
  • "keepLabelParticipantsInSync": true,
  • "labelIDs": [
    ],
  • "name": "string",
  • "notificationDate": "null",
  • "organizationID": 0,
  • "participants": [
    ],
  • "recurrence": {
    },
  • "reminder": 10080,
  • "startDate": null,
  • "timezone": "\"UTC\""
}

UpdateAppointment

Update an appointment with the passed parameters

Authorizations:
API_TokenPersonal-Access-Token
path Parameters
id
required
integer

id of an appointment

query Parameters
strategy
string
Default: "all"
Enum: "single" "upcoming" "all"

decides which appointments should be updated when handling recurrence

Request Body schema: application/json
required

appointment payload

creationDate
any
creator
integer <int64>
description
required
string
endDate
required
any
feedbackDeadline
any
Default: "null"

FeedbackDeadline, if set, is the time after which feedback will no longer be accepted. It may only be set for non-recurring appointments, i.e. if Recurrence is nil.

id
integer <int64>
isPublic
boolean

Appointments that are marked private will not be exported to a public iCal

keepLabelParticipantsInSync
boolean

KeepLabelParticipantsInSync ensures that added and removed users from an associated label are automatically added and removed from the appointment. Otherwise they will only be updated when updating the appointment.

labelIDs
Array of integers <int64> [ items <int64 > ]

Optional list of labels. All current participants will be invited to the appointment. Participants present in multiple labels will be matched to first label in list. Participants present in a label and participant list will be stored independent from labels.

name
required
string
notificationDate
any
Default: "null"

NotificationDate will, if set, send appointment invitations at the specified point in time instead of when creating the appointment.

organizationID
required
integer <int64>
Array of objects (AppointmentParticipant)
object (AppointmentRecurrence)

AppointmentRecurrence describes how an appointment is repeated

reminder
integer <int64> [ 0 .. 10080 ]

Reminder, if set, is the time in minutes after which a push notification will be sent to all participants who didn't denied the appointment.

startDate
required
any
timezone
string
Default: "\"UTC\""

Timezone which is used for DST computation

Responses

Request samples

Content type
application/json
{
  • "creationDate": null,
  • "creator": 0,
  • "description": "string",
  • "endDate": null,
  • "feedbackDeadline": "null",
  • "id": 0,
  • "isPublic": true,
  • "keepLabelParticipantsInSync": true,
  • "labelIDs": [
    ],
  • "name": "string",
  • "notificationDate": "null",
  • "organizationID": 0,
  • "participants": [
    ],
  • "recurrence": {
    },
  • "reminder": 10080,
  • "startDate": null,
  • "timezone": "\"UTC\""
}

Response samples

Content type
application/json
{
  • "creationDate": null,
  • "creator": 0,
  • "description": "string",
  • "endDate": null,
  • "feedbackDeadline": "null",
  • "id": 0,
  • "isPublic": true,
  • "keepLabelParticipantsInSync": true,
  • "labelIDs": [
    ],
  • "name": "string",
  • "notificationDate": "null",
  • "organizationID": 0,
  • "participants": [
    ],
  • "recurrence": {
    },
  • "reminder": 10080,
  • "startDate": null,
  • "timezone": "\"UTC\""
}

DeleteAppointment

Deletes the appointment with the passed id

Authorizations:
API_TokenPersonal-Access-Token
path Parameters
id
required
integer

id of an appointment

query Parameters
strategy
string
Default: "all"
Enum: "single" "upcoming" "all"

decides which appointments should be deleted when handling recurrence

time
string <date-time>

decides which appointments should be deleted when handling deletion of a single or all upcoming recurring appointments

Responses

UpdateAppointmentParticipantFeedback

Update an appointment with the passed parameters

Authorizations:
API_TokenPersonal-Access-Token
path Parameters
id
required
integer

id of an appointment

Request Body schema: application/json
required

appointment participant payload

appointmentID
integer <int64>
feedback
integer <int64> (AppointmentFeedbackStatus)

AppointmentFeedbackStatus describes the current feedback status of an user

feedbackMessage
string
labelID
integer <int64>

If LabelID is set, this AppointmentParticipant was automatically invited using a label and can only be removed by removing the corresponding label from the appointment or user.

startDate
any

If StartDate is set, this AppointmentParticipant describes feedback for a specific occurrence of an appointment. Otherwise it is valid for each occurrence.

userID
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "appointmentID": 0,
  • "feedback": 0,
  • "feedbackMessage": "string",
  • "labelID": 0,
  • "startDate": null,
  • "userID": 0
}

appointments

GetPersonalAppointments Deprecated

Get paginated personal appointments

Authorizations:
API_TokenPersonal-Access-Token
query Parameters
limit
integer

max. amount of entries in list

offset
integer

amount of entries to skip

show
string
Enum: "upcoming" "completed"

filter upcoming and completed appointments

Responses

Response samples

Content type
application/json
{
  • "appointments": [
    ],
  • "totalAppointments": 0
}

GetAppointments

Get a list of appointments in the given time range for an organization or the current user

Authorizations:
API_TokenPersonal-Access-Token
query Parameters
start
required
string <date-time>

start of appointment time range

end
required
string <date-time>

end of appointment time range

type
required
string
Enum: "personal" "organization"

list appointments of organization or current user

organization_id
integer

id of organization to query appointments for, only required for type "organization"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GetDisabledNotificationTypes

Returns which notification types are disabled for the current user

Authorizations:
API_TokenPersonal-Access-Token

Responses

Response samples

Content type
application/json
{
  • "appDisabled": true,
  • "emailDisabled": true,
  • "userID": 0
}

SetDisabledNotificationTypes

Sets which notification types are disabled for the current user

Authorizations:
API_TokenPersonal-Access-Token
Request Body schema: application/json
required

disabled notification types

appDisabled
boolean
emailDisabled
boolean
userID
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "appDisabled": true,
  • "emailDisabled": true,
  • "userID": 0
}

Response samples

Content type
application/json
{
  • "appDisabled": true,
  • "emailDisabled": true,
  • "userID": 0
}

GetOrganizationAppointments Deprecated

Get paginated personal appointments

Authorizations:
API_TokenPersonal-Access-Token
path Parameters
organization
required
integer

id of an organization

query Parameters
limit
integer

max. amount of entries in list

offset
integer

amount of entries to skip

show
string
Enum: "upcoming" "completed"

filter upcoming and completed appointments

Responses

Response samples

Content type
application/json
{
  • "appointments": [
    ],
  • "totalAppointments": 0
}

ical

GetPersonalICal

Returns all personal appointments in ical/ics format

Authorizations:
API_TokenPersonal-Access-Token
path Parameters
token
required
string

token to access personal appointments

Responses

GetPublicICal

Returns all public appointments in ical/ics format

Authorizations:
API_TokenPersonal-Access-Token
path Parameters
token
required
string

an organization token

Responses

GetPublicICalURL

Returns a url for the public appointments for an organization

Authorizations:
API_TokenPersonal-Access-Token
path Parameters
id
required
string

the id of an organization

Responses

Response samples

Content type
application/json
{
  • "URL": "string"
}

GetPersonalToken

Returns the personal ical token

Authorizations:
API_TokenPersonal-Access-Token

Responses

Response samples

Content type
application/json
{
  • "token": "string"
}

UpsertPersonalToken

Creates or updates the personal ical token

Authorizations:
API_TokenPersonal-Access-Token
path Parameters
token
required
string

token to access personal appointments

Responses

Response samples

Content type
application/json
{
  • "token": "string"
}