---
title: "Meeting"
url: "https://rolebase.io/en/api/meeting"
---

[Rolebase](/) ⟩ [API Reference](/en/api)

 API Reference

# `meeting`

Represents a scheduled meeting within a circle. Meetings support structured steps, attendee tracking, and video conferencing integration, and can be one-time or part of a recurring series.

## Fields

Field

Type

Description

`id`

`uuid`

Unique identifier for the meeting

`orgId`

`uuid`

Reference to the organization

`circleId`

`uuid`

Reference to the circle

`title`

`String`

Title of the meeting

`summary`

`String`

Summary or notes from the meeting

`startDate`

`Timestamp`

When the meeting starts

`endDate`

`Timestamp`

When the meeting ends

`createdAt`

`Timestamp`

When the meeting was created

`ended`

`Boolean`

Whether the meeting has ended (default: false)

`archived`

`Boolean`

Whether the meeting is archived (default: false)

`private`

`Boolean`

Whether the meeting is private (default: false)

`invitedReadonly`

`Boolean`

Whether invited members are read-only (default: false)

`currentStepId`

`uuid`

ID of the current active step (optional)

`stepsConfig`

`[meeting_step_config]`

Configuration array defining the meeting structure

`videoConf`

`videoconf`

Video conferencing details (optional)

`recurringId`

`uuid`

Reference to the recurring meeting configuration (optional)

`recurringDate`

`Timestamp`

Date in the recurring series (optional)

## Relationships

**Object Relationships:**

*   `org` — The organization this meeting belongs to
*   `circle` — The circle this meeting is associated with
*   `recurring` — The recurring meeting configuration (if part of a series)

**Array Relationships:**

*   `meeting_attendees` — Members attending the meeting
*   `steps` — Steps or agenda items in the meeting

## Query Examples

### List Meetings for an Organization

```
query GetMeetings($orgId: uuid!) {
  meeting(where: { archived: { _eq: false }, orgId: { _eq: $orgId } }) {
    id
    title
    startDate
    endDate
    ended
    circle {
      role {
        name
      }
    }
    meeting_attendees {
      member {
        name
      }
      present
    }
    steps {
      id
      data
    }
    videoConf
  }
}
```

### Get a Specific Meeting

```
query GetMeeting($id: uuid!) {
  meeting_by_pk(id: $id) {
    id
    title
    startDate
    endDate
    circle {
      role {
        name
      }
    }
  }
}
```

## Mutation Examples

### Create a Meeting

```
mutation CreateMeeting {
  insert_meeting_one(
    object: {
      orgId: "your-org-id"
      circleId: "circle-id"
      title: "Weekly Team Sync"
      startDate: "2024-01-15T10:00:00Z"
      endDate: "2024-01-15T11:00:00Z"
      summary: "Team sync meeting"
      stepsConfig: [
        { id: "step-1", type: Tour, title: "Notes" }
        { id: "step-2", type: Threads, title: "Topics" }
        { id: "step-3", type: Checklist, title: "Checklist" }
        { id: "step-4", type: Indicators, title: "Indicators" }
        { id: "step-5", type: Tasks, title: "Tasks" }
      ]
      private: false
      invitedReadonly: false
      meeting_attendees: {
        data: [{ memberId: "member-id-1" }, { memberId: "member-id-2" }]
      }
    }
  ) {
    id
    title
    startDate
  }
}
```

### Update Meeting Status

```
mutation UpdateMeeting {
  update_meeting_by_pk(
    pk_columns: { id: "meeting-id" }
    _set: { ended: true, summary: "Meeting notes and outcomes..." }
  ) {
    id
    ended
    summary
  }
}
```

## Permissions

Meeting access is controlled by multiple factors:

*   **Circle participants:** Can access and manage their circle’s meetings
*   **Private meetings:** Only visible to circle participants and invited attendees
*   **Organization members:** Can access non-private meetings
*   **Invited attendees:** Can participate based on the `invitedReadonly` setting

** Notes**

Meetings support structured agendas through the `stepsConfig` array. Video conferencing can be integrated with various providers. Recurring meetings are managed via the `meeting_recurring` entity. The combination of `private` and `invitedReadonly` settings enables flexible access control.
