# Feature MEET-8 - Add meetings and recurring meetings APIv3 endpoints

Project: Stream Meetings
Status: closed
URL: https://community.openproject.org/work_packages/MEET-8

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | 17.4.0 |
| Votes | 18 |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

_No work packages_

## Bugs and other work packages

| ID | Type | Subject | Status | Assignee | Target versions | Spent time | Module |
| --- | --- | --- | --- | --- | --- | --- | --- |
| MEET-556 | Bug | PATCH /api/v3/meetings/{id} - participants cannot be removed via _links.participants | closed | Yan Zubrytskyi | 17.6.0 |  | Modules and project features / Meetings, API |
| MEET-555 | Bug | PATCH /api/v3/meetings/{id} — adding an already existing participant via _links.participants creates a duplicate entry | closed | Yan Zubrytskyi | 17.6.0 |  | Modules and project features / Meetings, API |
| MEET-554 | Bug | GET /api/v3/meetings/{id} — _links.participants count does not match _embedded.participants count | closed | Yan Zubrytskyi | 17.6.0 |  | Modules and project features / Meetings, API |

## Technical Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Feature Flag |  |
| Requires doc change | No |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers | OP Dev Sirius Team |
| Designer |  |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work |  |
| Labor costs |  |

## Description

**As** a digitalization enabler  
**I want to** download meeting notes via the API as JSON  
**so that** I can write scripts to reformat them with my company's CI and send them as e.g. PDF to external partners.

As far as i can sse, there is currently no way to get meetings with the API. I want to retrieve planned meetings, meeting day and participants. Not sure, if this is a "bug" or something for the wish list. I thought the API should be complete at least for the objects which can be added, edited and removed.

**Added endpoints**

Meetings

  - POST /api/v3/meetings

  - PATCH /api/v3/meetings/:id

  - DELETE /api/v3/meetings/:id

  - GET /api/v3/meetings/schema

  - POST /api/v3/meetings/form

  - POST /api/v3/meetings/:id/form

Agenda Items

  - GET /api/v3/meetings/:meeting\_id/agenda\_items

  - POST /api/v3/meetings/:meeting\_id/agenda\_items

  - GET /api/v3/meetings/:meeting\_id/agenda\_items/:id

  - PATCH /api/v3/meetings/:meeting\_id/agenda\_items/:id

  - DELETE /api/v3/meetings/:meeting\_id/agenda\_items/:id

Sections

  - GET /api/v3/meetings/:meeting\_id/sections

  - POST /api/v3/meetings/:meeting\_id/sections

  - GET /api/v3/meetings/:meeting\_id/sections/:id

  - PATCH /api/v3/meetings/:meeting\_id/sections/:id

  - DELETE /api/v3/meetings/:meeting\_id/sections/:id

Recurring meetings

  - GET /api/v3/recurring\_meetings

  - POST /api/v3/recurring\_meetings

  - GET /api/v3/recurring\_meetings/:id

  - PATCH /api/v3/recurring\_meetings/:id

  - DELETE /api/v3/recurring\_meetings/:id

To be able to make use of standard index endpoint, introduce a RecurringMeetingQuery

Occurrences of recurring meetings

  - GET /api/v3/recurring\_meetings/:id/occurrences/upcoming — Computed IceCube schedule merged with persisted ScheduledMeetings

  - GET /api/v3/recurring\_meetings/:id/occurrences/past — Persisted past occurrences

  - GET /api/v3/recurring\_meetings/:id/occurrences/cancelled — Persisted cancelled occurrences

  - GET /api/v3/recurring\_meetings/:id/occurrences/open — Persisted instantiated (open) occurrences

To instantiate or cancel a meeting, we do not have a primary key yet (if the occurrence is not opened yet). The non working days API uses dates to identify them, so I think it's our best idea to use the same.

  - POST /api/v3/recurring\_meetings/:id/occurrences/:start\_time/init — Instantiate a meeting from the template

  - DELETE /api/v3/recurring\_meetings/:id/occurrences/:start\_time — Cancel an occurrence
