Rolebase Developers
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
Info Circle 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.