Appointment API specification (887cf3d4f37487346e33ee5d2c4aee5e8f74aa6e)

Download OpenAPI specification:Download

The appointment service implements all appointment and reminder functions for GroupAlarm

Authentication

API_Token

You can generate an API-Token in the permissions-settings of your organization. All requests will be performed in the scope of this organization. Requests regarding users will fail.

Security Scheme Type API Key
Header parameter name: API-TOKEN

Personal-Access-Token

You can generate a Personal Access Token in your profile settings. All requests will be performed as the user who created the token, with permissions as configured in each organization.

Security Scheme Type API Key
Header parameter name: Personal-Access-Token

appointment

CreateAppointment

Create an appointment with the passed parameters

Request Body schema: application/json

appointment payload

creationDate
any
creator
integer <int64>
description
string
endDate
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
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
integer <int64>
Array of objects (AppointmentParticipant) [ items ]
object (AppointmentRecurrence)

AppointmentRecurrence describes how an appointment is repeated

startDate
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": {
    },
  • "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": {
    },
  • "startDate": null,
  • "timezone": "\"UTC\""
}

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.

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": {
    },
  • "startDate": null,
  • "timezone": "\"UTC\""
}

UpdateAppointment

Update an appointment with the passed parameters

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

appointment payload

creationDate
any
creator
integer <int64>
description
string
endDate
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
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
integer <int64>
Array of objects (AppointmentParticipant) [ items ]
object (AppointmentRecurrence)

AppointmentRecurrence describes how an appointment is repeated

startDate
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": {
    },
  • "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": {
    },
  • "startDate": null,
  • "timezone": "\"UTC\""
}

DeleteAppointment

Deletes the appointment with the passed id

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

path Parameters
id
required
integer

id of an appointment

Request Body schema: application/json

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

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
}

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

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
[
  • {
    }
]

GetPersonalICal

Returns all personal appointments in ical/ics format

path Parameters
token
required
string

token to access personal appointments

Responses

GetPublicICal

Returns all public appointments in ical/ics format

path Parameters
token
required
string

an organization token

Responses

GetPublicICalURL

Returns a url for the public appointments for an organization

path Parameters
id
required
string

the id of an organization

Responses

Response samples

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

GetPersonalToken

Get personal ical token

Responses

Response samples

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

UpsertPersonalToken

Creates or updates the personal ical token

path Parameters
token
required
string

token to access personal appointments

Responses

Response samples

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

Returns which notification types are disabled for the current user.

Responses

Response samples