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

FieldTypeDescription
iduuidUnique identifier for the meeting
orgIduuidReference to the organization
circleIduuidReference to the circle
titleStringTitle of the meeting
summaryStringSummary or notes from the meeting
startDateTimestampWhen the meeting starts
endDateTimestampWhen the meeting ends
createdAtTimestampWhen the meeting was created
endedBooleanWhether the meeting has ended (default: false)
archivedBooleanWhether the meeting is archived (default: false)
privateBooleanWhether the meeting is private (default: false)
invitedReadonlyBooleanWhether invited members are read-only (default: false)
currentStepIduuidID of the current active step (optional)
stepsConfig[meeting_step_config]Configuration array defining the meeting structure
videoConfvideoconfVideo conferencing details (optional)
recurringIduuidReference to the recurring meeting configuration (optional)
recurringDateTimestampDate 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.