Get recurring meeting
get_recurring_meetingRead a recurring meeting series and retrieve its schedule, next occurrences, and each slot's start time and meeting ID for initializing or canceling individual meetings.
Instructions
Read one recurring series in full: the schedule plus its next occurrences.
This is the step before touching any occurrence: the occurrences rows carry the
exact start_time strings that init_recurring_meeting_occurrence and
cancel_recurring_meeting_occurrence key on, and the meeting_id that get_meeting
/ delete_meeting take once a slot is instantiated.
Returns the series fields (schedule, duration_hours, location, author,
template_meeting_id) plus occurrences in date order: {start_time, state, meeting_id}. state is 'planned' for a slot that exists only in the schedule;
once instantiated it is the backing meeting's own state, and only then is
meeting_id non-null.
Pitfalls. occurrences is capped at the next few slots — notes says when the cap
was hit, and an unbounded series always computes more. The template meeting (its
agenda seeds every occurrence) is edited through the regular meeting tools via
template_meeting_id; while it is still a draft, occurrences cannot be initialized.
A 404 means a wrong id, no 'view meetings' permission, the module is off — or
OpenProject before 17.4, which has no recurring-meetings API; the hint names all
readings.
Cross-references: list_recurring_meetings for the series id;
init_recurring_meeting_occurrence / cancel_recurring_meeting_occurrence for one
slot; update_meeting on the template to build the shared agenda or publish a draft
template; delete_recurring_meeting to remove the whole series.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| recurring_meeting_id | Yes | Numeric series id from list_recurring_meetings. Never a meeting id — a series and its occurrences are different resources. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Series id — what get_recurring_meeting and the occurrence tools take. Not a meeting id. | |
| notes | No | Degradation markers: an unreadable schedule, the occurrence cap, a time zone that could not be applied, a draft template. | |
| title | No | Series title. | |
| author | No | User who created the series. | |
| project | No | Project the series belongs to. | |
| end_date | No | Last possible date (ISO); only when end_after='specific_date'. | |
| interval | No | Every N days/weeks/months; always 1 for 'working_days'. | |
| location | No | Room name or meeting URL each occurrence inherits. | |
| end_after | No | 'never', 'specific_date' or 'iterations'. | |
| frequency | No | Repetition rule: 'daily', 'working_days', 'weekly', 'monthly_day_of_month' or 'monthly_nth_weekday'. | |
| time_zone | No | Zone the schedule computes in, as OpenProject stores it (an IANA identifier or a Rails zone name). | |
| iterations | No | Total occurrences; only when end_after='iterations'. | |
| start_time | No | First-occurrence start as ISO 8601 UTC. | |
| monthly_day | No | Day of month (1-31); only for 'monthly_day_of_month'. | |
| occurrences | No | The next upcoming slots in order (capped; see 'notes'). meeting_id is null until a slot is instantiated, and state 'planned' marks exactly those. | |
| duration_hours | No | Length of each occurrence in hours (1.5 = 90 minutes). | |
| monthly_ordinal | No | Which weekday occurrence (1-4, -1 = last); only for 'monthly_nth_weekday'. | |
| monthly_weekday | No | Weekday name; only for 'monthly_nth_weekday'. | |
| template_meeting_id | No | Id of the template meeting the occurrences are copied from. Its agenda is edited with the regular meeting tools, and a freshly created template is a DRAFT — publish it with update_meeting(meeting_id=<this>, state='open') before initialising occurrences. |