Apache OpenMeetings CalendarService API

The CalendarService API from Apache OpenMeetings — 8 operation(s) for calendarservice.

OpenAPI Specification

apache-openmeetings-calendarservice-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Apache OpenMeetings REST CalendarService API
  description: The OpenMeetings REST API provides endpoints for managing rooms, users, recordings, calendars, file uploads, whiteboards, and groups. It supports SOAP API for legacy integrations and plugin APIs for LMS integration.
  version: 9.0.0
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  contact:
    url: https://openmeetings.apache.org/
servers:
- url: https://{host}:5443/openmeetings/services
  description: Apache OpenMeetings REST API server
  variables:
    host:
      default: localhost
tags:
- name: CalendarService
paths:
  /calendar/{id}:
    delete:
      tags:
      - CalendarService
      description: "Delete a calendar event\n\n If the given sid is from an Administrator or Web-Service USER, the USER\n can delete any appointment.\n If the sid is assigned to a regular USER, he can only delete appointments\n where he is also the owner/creator of the appointment"
      operationId: delete
      parameters:
      - name: sid
        in: query
        description: The SID of the User. This SID must be marked as Loggedin
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: the id to delete
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: ServiceResult with result type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceResultWrapper'
        '500':
          description: Error in case of invalid credentials or server error
      summary: Apache OpenMeetings Delete
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calendar/room/{roomid}:
    get:
      tags:
      - CalendarService
      description: Load a calendar event by its room id
      operationId: getByRoom
      parameters:
      - name: sid
        in: query
        description: The SID of the User. This SID must be marked as Loggedin
        required: true
        schema:
          type: string
      - name: roomid
        in: path
        description: id of appointment special room
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: calendar event by its room id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentDTOWrapper'
        '500':
          description: Error in case of invalid credentials or server error
      summary: Apache OpenMeetings GetByRoom
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calendar/title/{title}:
    get:
      tags:
      - CalendarService
      description: Search a calendar event for the current SID
      operationId: getByTitle
      parameters:
      - name: sid
        in: query
        description: The SID of the User. This SID must be marked as Loggedin
        required: true
        schema:
          type: string
      - name: title
        in: path
        description: the search string
        required: true
        schema:
          type: string
      responses:
        '200':
          description: calendar event list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentDTOListWrapper'
        '500':
          description: Error in case of invalid credentials or server error
      summary: Apache OpenMeetings GetByTitle
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calendar/next:
    get:
      tags:
      - CalendarService
      description: Get the next Calendar event for the current USER of the SID
      operationId: next
      parameters:
      - name: sid
        in: query
        description: The SID of the User. This SID must be marked as Loggedin
        required: true
        schema:
          type: string
      responses:
        '200':
          description: next Calendar event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentDTOWrapper'
        '500':
          description: Error in case of invalid credentials or server error
      summary: Apache OpenMeetings Next
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calendar/next/{userid}:
    get:
      tags:
      - CalendarService
      description: Get the next Calendar event for userId
      operationId: nextForUser
      parameters:
      - name: sid
        in: query
        description: The SID of the User. This SID must be marked as Loggedin
        required: true
        schema:
          type: string
      - name: userid
        in: path
        description: the userId the calendar events should be loaded
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: next Calendar event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentDTOWrapper'
        '500':
          description: Error in case of invalid credentials or server error
      summary: Apache OpenMeetings NextForUser
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calendar/{start}/{end}:
    get:
      tags:
      - CalendarService
      description: Load appointments by a start / end range for the current SID
      operationId: range
      parameters:
      - name: sid
        in: query
        description: The SID of the User. This SID must be marked as Loggedin
        required: true
        schema:
          type: string
      - name: start
        in: path
        description: start time
        required: true
        schema:
          type: string
          format: date-time
      - name: end
        in: path
        description: end time
        required: true
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: list of appointments in range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentDTOListWrapper'
        '500':
          description: Error in case of invalid credentials or server error
      summary: Apache OpenMeetings Range
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calendar/{userid}/{start}/{end}:
    get:
      tags:
      - CalendarService
      description: Load appointments by a start / end range for the userId
      operationId: rangeForUser
      parameters:
      - name: sid
        in: query
        description: The SID of the User. This SID must be marked as Loggedin
        required: true
        schema:
          type: string
      - name: userid
        in: path
        description: the userId the calendar events should be loaded
        required: true
        schema:
          type: integer
          format: int64
      - name: start
        in: path
        description: start time
        required: true
        schema:
          type: string
          format: date-time
      - name: end
        in: path
        description: end time
        required: true
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: list of appointments in range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentDTOListWrapper'
        '500':
          description: Error in case of invalid credentials or server error
      summary: Apache OpenMeetings RangeForUser
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /calendar:
    post:
      tags:
      - CalendarService
      description: Create an appointment
      operationId: save
      parameters:
      - name: sid
        in: query
        description: The SID of the User. This SID must be marked as Loggedin
        required: true
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              required:
              - appointment
              type: object
              properties:
                appointment:
                  $ref: '#/components/schemas/AppointmentDTO'
      responses:
        '200':
          description: appointment saved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentDTOWrapper'
        '500':
          description: Error in case of invalid credentials or server error
      summary: Apache OpenMeetings Save
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    AppointmentDTOListWrapper:
      type: object
      properties:
        appointmentDTO:
          type: array
          items:
            $ref: '#/components/schemas/AppointmentDTO'
      example:
        appointmentDTO:
        - connectedEvent: false
          deleted: false
          description: Comments
          end: 2021-09-23T12:31:00+1200
          icalId: 7507ab5d-81ec-458a-bdb1-48d102978e49
          id: 1
          inserted: 2021-09-19T11:31:37+1200
          meetingMembers:
          - id: 1
            user:
              address:
                country: NZ
                deleted: false
                email: seba.wagner@gmail.com
                id: 1
                inserted:
                  date: 29
                  day: 0
                  hours: 10
                  minutes: 59
                  month: 7
                  ownerField: 1
                  seconds: 49
                  time: 1630191589000
                  timezoneOffset: -720
                  year: 121
              firstname: firstname
              id: 1
              languageId: 1
              lastname: lastname
              login: admin
              rights:
              - ROOM
              - SOAP
              - DASHBOARD
              - ADMIN
              - LOGIN
              timeZoneId: Europe/Berlin
              type: USER
          owner:
            address:
              country: NZ
              deleted: false
              email: seba.wagner@gmail.com
              id: 1
              inserted:
                date: 29
                day: 0
                hours: 10
                minutes: 59
                month: 7
                ownerField: 1
                seconds: 49
                time: 1630191589000
                timezoneOffset: -720
                year: 121
            firstname: firstname
            id: 1
            languageId: 1
            lastname: lastname
            login: admin
            rights:
            - ROOM
            - SOAP
            - DASHBOARD
            - ADMIN
            - LOGIN
            timeZoneId: Europe/Berlin
            type: USER
          passwordProtected: false
          reminder: ICAL
          reminderEmailSend: false
          room:
            allowRecording: true
            allowUserQuestions: false
            appointment: true
            audioOnly: false
            capacity: 50
            closed: false
            demo: false
            files: []
            hiddenElements:
            - MICROPHONE_STATUS
            id: 11
            moderated: false
            name: New Event
            public: false
            type: CONFERENCE
            waitModerator: false
            waitRecording: false
          start: 2021-09-23T11:31:00+1200
          title: New Event
    ServiceResultWrapper:
      type: object
      properties:
        serviceResult:
          $ref: '#/components/schemas/ServiceResult'
      example:
        serviceResult:
          message: 9dbb6907-61fc-42c0-a2b2-5dbfbe053ac6
          type: SUCCESS
    UserDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        login:
          type: string
        password:
          type: string
        firstname:
          type: string
        lastname:
          type: string
        rights:
          uniqueItems: true
          type: array
          items:
            type: string
            enum:
            - ADMIN
            - GROUP_ADMIN
            - ADMIN_CONFIG
            - ADMIN_CONNECTIONS
            - ADMIN_BACKUP
            - ADMIN_LABEL
            - ROOM
            - DASHBOARD
            - LOGIN
            - SOAP
        languageId:
          type: integer
          format: int64
        address:
          $ref: '#/components/schemas/Address'
        timeZoneId:
          type: string
        externalId:
          type: string
        externalType:
          type: string
        pictureUri:
          type: string
        type:
          type: string
          enum:
          - USER
          - LDAP
          - OAUTH
          - EXTERNAL
          - CONTACT
    Address:
      type: object
      properties:
        inserted:
          type: string
          format: date-time
          xml:
            name: created
        updated:
          type: string
          format: date-time
        deleted:
          type: boolean
        id:
          type: integer
          format: int64
        additionalname:
          type: string
        comment:
          type: string
        fax:
          type: string
        country:
          type: string
        street:
          type: string
        town:
          type: string
        zip:
          type: string
        email:
          type: string
          xml:
            name: mail
        phone:
          type: string
      xml:
        name: address
    ServiceResult:
      type: object
      properties:
        message:
          type: string
        type:
          type: string
    RoomDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        tag:
          type: string
        comment:
          type: string
        type:
          type: string
          enum:
          - CONFERENCE
          - PRESENTATION
          - INTERVIEW
        capacity:
          type: integer
          format: int64
        appointment:
          type: boolean
        confno:
          type: string
        demo:
          type: boolean
        closed:
          type: boolean
        demoTime:
          type: integer
          format: int32
        externalId:
          type: string
        externalType:
          type: string
        redirectUrl:
          type: string
        moderated:
          type: boolean
        waitModerator:
          type: boolean
        allowUserQuestions:
          type: boolean
        allowRecording:
          type: boolean
        waitRecording:
          type: boolean
        audioOnly:
          type: boolean
        hiddenElements:
          uniqueItems: true
          type: array
          items:
            type: string
            enum:
            - TOP_BAR
            - CHAT
            - ACTIVITIES
            - FILES
            - ACTION_MENU
            - POLL_MENU
            - SCREEN_SHARING
            - WHITEBOARD
            - MICROPHONE_STATUS
            - USER_COUNT
        files:
          type: array
          items:
            $ref: '#/components/schemas/RoomFileDTO'
        public:
          type: boolean
    RoomFileDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        fileId:
          type: integer
          format: int64
        wbIdx:
          type: integer
          format: int64
    MeetingMemberDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        user:
          $ref: '#/components/schemas/UserDTO'
    AppointmentDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        title:
          type: string
        location:
          type: string
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        description:
          type: string
        owner:
          $ref: '#/components/schemas/UserDTO'
        inserted:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        deleted:
          type: boolean
        reminder:
          type: string
          enum:
          - NONE
          - EMAIL
          - ICAL
        room:
          $ref: '#/components/schemas/RoomDTO'
        icalId:
          type: string
        meetingMembers:
          type: array
          items:
            $ref: '#/components/schemas/MeetingMemberDTO'
        languageId:
          type: integer
          format: int64
        password:
          type: string
        passwordProtected:
          type: boolean
        connectedEvent:
          type: boolean
        reminderEmailSend:
          type: boolean
    AppointmentDTOWrapper:
      type: object
      properties:
        appointmentDTO:
          $ref: '#/components/schemas/AppointmentDTO'
      example:
        appointmentDTO:
          connectedEvent: false
          deleted: false
          description: Comments
          end: 2021-09-23T12:31:00+1200
          icalId: 7507ab5d-81ec-458a-bdb1-48d102978e49
          id: 1
          inserted: 2021-09-19T11:31:37+1200
          meetingMembers:
          - id: 1
            user:
              address:
                country: NZ
                deleted: false
                email: seba.wagner@gmail.com
                id: 1
                inserted:
                  date: 29
                  day: 0
                  hours: 10
                  minutes: 59
                  month: 7
                  ownerField: 1
                  seconds: 49
                  time: 1630191589000
                  timezoneOffset: -720
                  year: 121
              firstname: firstname
              id: 1
              languageId: 1
              lastname: lastname
              login: admin
              rights:
              - ROOM
              - SOAP
              - DASHBOARD
              - ADMIN
              - 'LOGIN  '
              timeZoneId: Europe/Berlin
              type: USER
          owner:
            address:
              country: NZ
              deleted: false
              email: seba.wagner@gmail.com
              id: 1
              inserted:
                date: 29
                day: 0
                hours: 10
                minutes: 59
                month: 7
                ownerField: 1
                seconds: 49
                time: 1630191589000
                timezoneOffset: -720
                year: 121
            firstname: firstname
            id: 1
            languageId: 1
            lastname: lastname
            login: admin
            rights:
            - ROOM
            - SOAP
            - DASHBOARD
            - ADMIN
            - LOGIN
            timeZoneId: Europe/Berlin
            type: USER
          passwordProtected: false
          reminder: ICAL
          reminderEmailSend: false
          room:
            allowRecording: true
            allowUserQuestions: false
            appointment: true
            audioOnly: false
            capacity: 50
            closed: false
            demo: false
            files: []
            hiddenElements:
            - MICROPHONE_STATUS
            id: 11
            moderated: false
            name: New Event
            public: false
            type: CONFERENCE
            waitModerator: false
            waitRecording: false
          start: 2021-09-23T11:31:00+1200
          title: New Event