HumHub - Meeting API (1.0.0)

Download OpenAPI specification:

E-mail: info@humhub.com License: AGPLv2

Welcome to the HumHub meeting module API reference.

Meetings are available only in Spaces where the module "Meetings" is enabled. The containerId of all endpoints is the id of the content container (not the id of the Space).

Meeting

Meeting CRUD

Find all meetings

Returns all meetings readable by the current user. Agenda entries are not included, use /meeting/meeting/{meetingId}/items for them.

Authorizations:
BasicAuthBearer
query Parameters
page
integer >= 0

The number of page of the result set.

limit
integer [ 1 .. 50 ]
Default: 20

The numbers of items to return per page.

Responses

Response samples

Content type
application/json
{
  • "total": 76,
  • "page": 1,
  • "pages": 8,
  • "links": {
    },
  • "results": [
    ]
}

Find all meetings by container

Agenda entries are not included, use /meeting/meeting/{meetingId}/items for them.

Authorizations:
BasicAuthBearer
path Parameters
containerId
required
integer

The id of the content container

query Parameters
page
integer >= 0

The number of page of the result set.

limit
integer [ 1 .. 50 ]
Default: 20

The numbers of items to return per page.

topics
string

Comma separated list of topic names

Responses

Response samples

Content type
application/json
{
  • "total": 76,
  • "page": 1,
  • "pages": 8,
  • "links": {
    },
  • "results": [
    ]
}

Create new meeting

Creates a new meeting in the given container. Invite notifications are sent to new participants automatically. The current user must have the permission "Manage Meetings" in the Space.

Optionally an existing meeting of the same container can be duplicated with its agenda entries by MeetingForm[duplicateId], or an agenda entry of an editable meeting of the same container can be shifted into the new meeting by MeetingForm[itemId].

Date and times are expected in the system time zone (time_zone of the meeting response) unless MeetingForm[timeZone] is given.

Authorizations:
BasicAuthBearer
path Parameters
containerId
required
integer

The id of the content container

Request Body schema: application/json
required
required
object
required
object
object (ContentParams)

Optional content settings

Responses

Request samples

Content type
application/json
{
  • "Meeting": {
    },
  • "MeetingForm": {
    },
  • "content": {
    }
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "Weekly team meeting",
  • "date": "2030-10-20",
  • "begin": "10:00",
  • "end": "12:00",
  • "start_datetime": "2030-10-20 10:00:00",
  • "end_datetime": "2030-10-20 12:00:00",
  • "time_zone": "UTC",
  • "location": "Main office",
  • "room": "Conference room 2",
  • "external_participants": "John Smith, Jane Doe",
  • "participants": [],
  • "items": [
    ],
  • "content": {
    }
}

Delete meetings by container

Deletes all meetings of the container which the current user is allowed to edit.

Authorizations:
BasicAuthBearer
path Parameters
containerId
required
integer

The id of the content container

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "3 records successfully deleted!"
}

Get meeting by id

The meeting is visible for users who can view its content and for its participants.

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the meeting

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "Weekly team meeting",
  • "date": "2030-10-20",
  • "begin": "10:00",
  • "end": "12:00",
  • "start_datetime": "2030-10-20 10:00:00",
  • "end_datetime": "2030-10-20 12:00:00",
  • "time_zone": "UTC",
  • "location": "Main office",
  • "room": "Conference room 2",
  • "external_participants": "John Smith, Jane Doe",
  • "participants": [],
  • "items": [
    ],
  • "content": {
    }
}

Update meeting by id

Only provided fields are updated. Participants are kept when Meeting[inputParticipants] is not provided, otherwise they are replaced by the given list. Date and times are expected in the system time zone (time_zone of the meeting response) unless MeetingForm[timeZone] is given.

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the meeting

Request Body schema: application/json
required
object (MeetingParams)
object (MeetingFormParams)
object (ContentParams)

Optional content settings

Responses

Request samples

Content type
application/json
{
  • "Meeting": {
    },
  • "MeetingForm": {
    },
  • "content": {
    }
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "Weekly team meeting",
  • "date": "2030-10-20",
  • "begin": "10:00",
  • "end": "12:00",
  • "start_datetime": "2030-10-20 10:00:00",
  • "end_datetime": "2030-10-20 12:00:00",
  • "time_zone": "UTC",
  • "location": "Main office",
  • "room": "Conference room 2",
  • "external_participants": "John Smith, Jane Doe",
  • "participants": [],
  • "items": [
    ],
  • "content": {
    }
}

Delete meeting by id

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the meeting

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successfully deleted!"
}

Meeting management

Additional actions of the meeting

Send invites to all participants

Sends the invite notifications to all participants of the meeting again.

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the meeting

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Invites successfully sent."
}

Agenda entry

Agenda entries (meeting items) CRUD

Find all agenda entries of the meeting

The list is not paginated, begin and end times of the entries are calculated from the meeting begin and durations of the entries.

Authorizations:
BasicAuthBearer
path Parameters
meetingId
required
integer

The id of the meeting

Responses

Response samples

Content type
application/json
{
  • "total": 3,
  • "results": [
    ]
}

Create new agenda entry

The entry is added to the end of the agenda. Moderators are added to the meeting participants automatically.

Authorizations:
BasicAuthBearer
path Parameters
meetingId
required
integer

The id of the meeting

Request Body schema: application/json
required
object

The field title is required on create

object
object (ContentParams)

Optional content settings

Responses

Request samples

Content type
application/json
{
  • "MeetingItem": {
    },
  • "MeetingItemForm": {
    },
  • "content": {
    }
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "meeting_id": 1,
  • "title": "Budget planning",
  • "description": "Discuss the budget for the next year",
  • "notes": "The budget was approved.",
  • "duration": 30,
  • "sort_order": 0,
  • "begin": "10:00",
  • "end": "10:30",
  • "external_moderators": "John Smith (Partner company)",
  • "moderators": [],
  • "tasks": [
    ],
  • "content": {
    }
}

Get agenda entry by id

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the agenda entry

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "meeting_id": 1,
  • "title": "Budget planning",
  • "description": "Discuss the budget for the next year",
  • "notes": "The budget was approved.",
  • "duration": 30,
  • "sort_order": 0,
  • "begin": "10:00",
  • "end": "10:30",
  • "external_moderators": "John Smith (Partner company)",
  • "moderators": [],
  • "tasks": [
    ],
  • "content": {
    }
}

Update agenda entry by id

Only provided fields are updated, the minutes of the entry can be updated by the field MeetingItem[notes]. Moderators are kept when MeetingItemForm[inputModerators] is not provided, otherwise they are replaced by the given list.

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the agenda entry

Request Body schema: application/json
required
object

The field title is required on create

object
object (ContentParams)

Optional content settings

Responses

Request samples

Content type
application/json
{
  • "MeetingItem": {
    },
  • "MeetingItemForm": {
    },
  • "content": {
    }
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "meeting_id": 1,
  • "title": "Budget planning",
  • "description": "Discuss the budget for the next year",
  • "notes": "The budget was approved.",
  • "duration": 30,
  • "sort_order": 0,
  • "begin": "10:00",
  • "end": "10:30",
  • "external_moderators": "John Smith (Partner company)",
  • "moderators": [],
  • "tasks": [
    ],
  • "content": {
    }
}

Delete agenda entry by id

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the agenda entry

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successfully deleted!"
}

Agenda entry management

Additional actions of the agenda entry

Move agenda entry

Moves the agenda entry to a new position in the agenda of its meeting. An index out of range moves the entry to the first or last position.

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the agenda entry

Request Body schema: application/json
required
index
required
integer

New zero-based position of the entry

Responses

Request samples

Content type
application/json
{
  • "index": 0
}

Response samples

Content type
application/json
Example
{
  • "code": 200,
  • "message": "Agenda entry successfully moved."
}

Shift agenda entry to another meeting

Moves the agenda entry to the end of the agenda of another meeting in the same container.

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the agenda entry

Request Body schema: application/json
required
meetingId
required
integer

The id of the target meeting

Responses

Request samples

Content type
application/json
{
  • "meetingId": 2
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Agenda entry successfully shifted."
}

Attach files to agenda entry

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the agenda entry

Request Body schema: multipart/form-data
required
files
required
Array of strings <binary> [ items <binary > ]

The files to upload.

Responses

Response samples

Content type
application/json
{}

Remove file from agenda entry

Authorizations:
BasicAuthBearer
path Parameters
id
required
integer

The id of the agenda entry

fileId
required
integer

The id of the file

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "File successfully removed."
}