Please see the full REST API documentation for API implementation details.

Resource: Meetings

A meeting contains all the information necessary for scheduling and running an online meeting. Meetings are scheduled within a room, and each meeting includes its specific agenda, meeting state, list of attendees, notes, Action Items, and meeting record.


Properties

#
Field Type Notes
meeting_id integer
meeting_url url network location of the UI for this meeting
meeting_inprogress_url url network location of the running meeting, returned only when the meeting is running
room_id tuple meeting room: {room_id, name}
template_id tuple source template: {template_id, name}
name plain text (255)
description plain text meeting purpose or goal
outcomes plain text desired outcomes for this meeting
location plain text physical location of the meeting
audio plain text audio or video instructions for joining the meeting
scheduled boolean true if the meeting has a start time
state enum One of: pending , started , paused , ended , canceled
duration tuple meeting duration: {seconds, hh:mm}
start_time timestamp
end_time timestamp
meeting_series_id tuple, null meeting series: {meeting_series_id, recurrence_description}
create_ts timestamp
update_ts timestamp

Meeting States

#
  • By default a newly created meeting starts in the pending state
  • From the pending state the meeting can either be started or canceled
  • A canceled meeting can be uncanceled, returning it to pending
  • Once a meeting has been started it can be paused or ended
  • A paused meeting can be started again, or ended
  • An ended meeting can be started again on the same day

Getting a List of My Meetings

#
GET /lucid/api/v1/meetings (must be logged in)
Query parameter Notes
timeframe One of: all , past , future , scheduled , unscheduled
state One of: pending , started , paused , ended , canceled
room_id Restrict list to meetings in the specified room
after Any meetings scheduled after the specified time (should be in UTC and either timestamp or ISO8601 formatted) eg: 1375450870 or 2013-08-02T13:41:10Z
before Any meetings scheduled before the specified time (should be in UTC and either timestamp or ISO8601 formatted) eg: 1438522870 or 2015-08-02T13:41:10Z
updated Any meetings updated after the specified time (should be in UTC and either timestamp or ISO8601 formatted) eg: 1438522870 or 2015-08-02T13:41:10Z
page Page number, starting from 0
per_page Any integer between 0 and 100, inclusive
sort One of: create_ts , -create_ts , update_ts , -update_ts , state_ts , -state_ts , start_time , -start_time , end_time , -end_time
embed Comma separated list of embeddables: attendees , facilitators , participants , observers , guests , markdown_view , html_view , text_view , markdown_outline , html_outline , text_outline, text_summary, meeting_source
fields See Field Filtering
envelope See Enveloping

Timeframe Query Parameter

The timeframe query parameter provides convenient shortcuts for setting the after, before, and sort query options with meaningful values. If a timeframe value is supplied, it will override the after, before, and sort options as follows:

  • all: This is the default, with no filtering or sorting
  • past: Meetings before the current time, sorted by -start_time
  • future: Meetings after the current time, sorted by +start_time
  • scheduled: Meetings with a start time, no default sorting
  • unscheduled: Meetings without a start time, no default sorting

Sort Query Parameter

The sort query parameter for meetings is quite flexible, allowing Ascending and Descending sorting based on several relevant date/time and timestamp-based fields.

  • create_ts: The initial meeting creation timestamp
  • update_ts: The meeting last modification timestamp
  • state_ts: The meeting state last modification timestamp
  • start_time: The scheduled start time of the meeting
  • end_time: The scheduled end time of the meeting

Embed Query Parameter: Attendees

  • attendees: All attendees invited to the meeting
  • facilitators: Only attendees with the facilitator role
  • participants: Only attendees with the participant role
  • observers: Only attendees with the observer role
  • guests: Only guest attendees

Embed Query Parameter: Agenda Outlines

  • markdown_outline: A simple agenda outline in Markdown format
  • html_outline: A simple agenda outline in HTML format
  • text_outline: A simple agenda outline in text format

Embed Query Parameter: Full Agendas and Records

  • markdown_view: The full agenda (pre-meeting) or record (post-meeting) in Markdown format
  • html_view: The full agenda or record in HTML format
  • text_view: The full agenda or record in text format

Embed Query Parameter: Summary

  • text_summary: A brief plain-text summary (with embedded newlines), suitable for use as the meeting description in an invitation or calendar file.

Embed Query Parameter: Meeting Source

  • meeting_source: A meeting_source object, or null. Applications may create a meeting source to indicate a "source event" for a meeting.

Sample Request

GET /lucid/api/v1/meetings?fields=meeting_id,name,start_time&per_page=3&page=2
Content-Type: application/json; charset=utf-8
Content-Length: 460
X-Requestor: jtkeith@lucidmeetings.com
X-Rate-Limit-Limit: 100
X-Rate-Limit-Remaining: 98
X-Rate-Limit-Used: 1
X-Rate-Limit-Reset: 55
X-Total-Count: 302
X-Total-Pages: 101
X-Page-Num: 2
X-Per-Page: 3
Link: <https://site.lucidmeetings.com/lucid/api/v1/meetings?fields=meeting_id%2Cname%2Cstart_time&per_page=3&page=1&envelope=&embed=&after=0&before=2147483646&timeframe=all&sort=-start_time&z=>; rel="prev",
      <https://site.lucidmeetings.com/lucid/api/v1/meetings?fields=meeting_id%2Cname%2Cstart_time&per_page=3&page=3&envelope=&embed=&after=0&before=2147483646&timeframe=all&sort=-start_time&z=>; rel="next"
[
  {
    "meeting_id": 1194,
    "name": "Review meeting",
    "start_time": {
      "value": 1431648000,
      "iso_8601": "2015-05-15T00:00:00Z"
    }
  },
  {
    "meeting_id": 1192,
    "name": "Status followup",
    "start_time": {
      "value": 1430956800,
      "iso_8601": "2015-05-07T00:00:00Z"
    }
  },
  {
    "meeting_id": 1199,
    "name": "Status update",
    "start_time": {
      "value": 1430872200,
      "iso_8601": "2015-05-06T00:30:00Z"
    }
  }
]

Getting a List of Meetings in a Room

#
GET /lucid/api/v1/rooms/:room_id/meetings
Query parameter Notes
timeframe One of: all , past , future , scheduled , unscheduled
state One of: pending , started , paused , ended , canceled
after Any meetings scheduled after the specified time (should be in UTC and either timestamp or ISO8601 formatted) eg: 1375450870 or 2013-08-02T13:41:10Z
before Any meetings scheduled before the specified time (should be in UTC and either timestamp or ISO8601 formatted) eg: 1438522870 or 2015-08-02T13:41:10Z
updated Any Action Items updated after the specified time (should be in UTC and either timestamp or ISO8601 formatted) eg: 1438522870 or 2015-08-02T13:41:10Z
page Page number, starting from 0
per_page Any integer between 0 and 100, inclusive
sort One of: create_ts , -create_ts , update_ts , -update_ts , state_ts , -state_ts , start_time , -start_time , end_time , -end_time
embed Comma separated list of embeddables: attendees , facilitators , participants , observers , guests , markdown_view , html_view , text_view , markdown_outline , html_outline , text_outline, text_summary
fields See Field Filtering
envelope See Enveloping

Sample Request

GET /lucid/api/v1/rooms/74/meetings?fields=meeting_id,name,start_time&per_page=3
Content-Type: application/json; charset=utf-8
Content-Length: 442
X-Requestor: jtkeith@lucidmeetings.com
X-Rate-Limit-Limit: 100
X-Rate-Limit-Remaining: 98
X-Rate-Limit-Used: 1
X-Rate-Limit-Reset: 87
X-Total-Count: 77
X-Total-Pages: 26
X-Page-Num: 0
X-Per-Page: 3
[
  {
    "meeting_id": 1808,
    "name": "Engineering Team Meeting",
    "start_time": {
      "value": 1507914000,
      "iso_8601": "2017-10-13T17:00:00Z",
      "pretty": {
        "time": "10 AM",
        "date": "13 October 2017",
        "timezone": "Los Angeles"
      }
    }
  },
  {
    "meeting_id": 1804,
    "name": "Project Review",
    "start_time": {
      "value": 1506823200,
      "iso_8601": "2017-10-01T02:00:00Z",
      "pretty": {
        "time": "7 PM",
        "date": "30 September 2017",
       "timezone": "Los Angeles"
      }
    }
  },
  {
    "meeting_id": 1803,
    "name": "Quick Meeting",
    "start_time": {
      "value": 1506025544,
      "iso_8601": "2017-09-21T20:25:44Z",
      "pretty": {
        "time": "1:25 PM",
        "date": "21 September 2017",
        "timezone": "Los Angeles"
      }
    }
  }
]

Getting a Single Meeting

#
GET /lucid/api/v1/meetings/:meeting_id
Query parameter Notes
embed Comma separated list of embeddables: attendees , facilitators , participants , observers , guests , markdown_view , html_view , text_view , markdown_outline , html_outline , text_outline, text_summary
fields See Field Filtering
envelope See Enveloping

Sample Request

GET /lucid/api/v1/meetings/1192?embed=facilitators
Content-Type: application/json; charset=utf-8
Content-Length: 610
X-Requestor: jtkeith@lucidmeetings.com
X-Rate-Limit-Limit: 100
X-Rate-Limit-Remaining: 98
X-Rate-Limit-Used: 2
X-Rate-Limit-Reset: 60
{
  "meeting_id": 1192,
  "room_id": {
    "value": 74,
    "display": "Engineering Team"
  },
  "template_id": {
    "value": 192,
    "display": "Problem solving discussion"
  },
  "name": "Status followup",
  "description": "",
  "outcomes": "",
  "location": "",
  "audio": "",
  "state": "pending",
  "scheduled": true,
  "start_time": {
    "value": 1430956800,
    "iso_8601": "2015-05-07T00:00:00Z"
  },
  "end_time": {
    "value": 1430958600,
    "iso_8601": "2015-05-07T00:30:00Z"
  },
  "duration": {
    "value": 1800,
    "display": "30 minutes"
  },
  "meeting_series_id": null,
  "meeting_source": null,
  "create_ts": {
    "value": 1430781964,
    "iso_8601": "2015-05-04T23:26:04Z"
  },
  "update_ts": {
    "value": 1430859332,
    "iso_8601": "2015-05-05T20:55:32Z"
  },
  "facilitators": [
    {
      "attendee_id": 1916,
      "member_id": 1,
      "member_name": "Bob Smith",
      "member_email": "bob.smith@example.org"
    }
  ]
}

Exporting a Meeting Record

#

The default content-type for retrieving a single meeting is application/json, which delivers a json representation of the meeting model data. The Lucid API also supports alternate views of a meeting and its related data. To retrieve a meeting in a different format, specify the format as noted below.

Exporting a Meeting Agenda

#

Prior to running the meeting, the export will contain the pre-meeting state of the agenda and any associated materials. Once the meeting has been completed, the export will contain the record of activity. If the export includes file attachments, the entire bundle will be delivered as a zip archive.

GET /lucid/api/v1/meetings/:meeting_id
Query parameter Notes
format One of the following: docx , epub , html , markdown , pdf
embed Comma separated list of embeddables: attachments , attendance , chat , contexts , lists , tags

Sample Request

GET /lucid/api/v1/meetings/1475?format=markdown&embed=attendance,chat,lists
Content-Type: text/x-markdown; charset=utf-8
Content-Disposition: attachment; filename=Monthly_project_review_19_April_2016.md
Content-Length: 636
# Monthly project review

Find problems and knock them down!

## Agenda Items

### 1.0 Welcome

Duration: 5 minutes

### 2.0 Discussion

Duration: 45 minutes

### 3.0 Next Steps

Duration: 5 minutes

#### Smart List

__Discuss:__ all Action Items; created in this meeting

## Invited to this Meeting
*    Sally Johnson
*    Bob Smith
*    Maggie West
*    Fred Keith
*    Jack Bronson
*    jtkeith

Updating a Meeting via PATCH

#
PATCH /lucid/api/v1/meetings/:meeting_id
Field Required Notes
name no The meeting name
description no The meeting goal or purpose
outcomes no The meeting desired outcomes
location no The physical location of the meeting, if any
audio no The audio or video instructions for joining the meeting
start_time no The meeting start time as either Unix timestamp or ISO 8601 date
end_time no The meeting end time as either Unix timestamp or ISO 8601 date
duration_minutes no The meeting duration in minutes. This will override the end_time if present.
duration_seconds no The meeting duration in seconds. This will override the end_time or duration_minutes if present.
state no One of: pending , started , paused , ended , canceled

Sample Request

PATCH /lucid/api/v1/rooms/74/meetings/1475
Content-Type: application/json
{
  "name":"Monthly project review",
  "duration_seconds": 3600
}
200 OK
Content-Type: application/json
{
  "meeting_id": 1475,
  "room_id": {
    "value": 74,
    "display": "Engineering Team"
  },
  "template_id": {
    "value": 114,
    "display": "Basic Agenda"
  },
  "name": "Monthly project review",
  "description": "",
  "outcomes": "",
  "location": "",
  "audio": "",
  "state": "pending",
  "scheduled": true,
  "start_time": {
    "value": 1461106800,
    "iso_8601": "2016-04-19T23:00:00Z"
  },
  "end_time": {
    "value": 1461110400,
    "iso_8601": "2016-04-20T00:00:00Z"
  },
  "duration": {
    "value": 3600,
    "display": "1 hour"
  },
  "create_ts": {
    "value": 1461104451,
    "iso_8601": "2016-04-19T22:20:51Z"
  },
  "update_ts": {
    "value": 1461627109,
    "iso_8601": "2016-04-25T23:31:49Z"
  }
}

Updating a Meeting via PUT

#
PUT /lucid/api/v1/meetings/:meeting_id
Field Required Notes
name yes The meeting name
description yes The meeting goal or purpose
outcomes yes The meeting desired outcomes
location yes The physical location of the meeting, if any
audio yes The audio or video instructions for joining the meeting
start_time yes The meeting start time as either Unix timestamp or ISO 8601 date
end_time yes The meeting end time as either Unix timestamp or ISO 8601 date
duration_minutes no The meeting duration in minutes. This will override the end_time if present.
duration_seconds no The meeting duration in seconds. This will override the end_time or duration_minutes if present.
state yes One of: pending , started , paused , ended , canceled

Sample Request

PUT /lucid/api/v1/rooms/74/meetings/1475
Content-Type: application/json
{
  "name":"Monthly project review",
  "description": "Find problems and knock them down!",
  "outcomes": "",
  "location": "",
  "audio": "",
  "start_time": 1461106800,
  "end_time": 1461110400,
  "duration_seconds": 3600,
  "state":"pending"
}
200 OK
Content-Type: application/json
{
  "meeting_id": 1475,
  "room_id": {
    "value": 74,
    "display": "Engineering Team"
  },
  "template_id": {
    "value": 114,
    "display": "Basic Agenda"
  },
  "name": "Monthly project review",
  "description": "Find problems and knock them down!",
  "outcomes": "",
  "location": "",
  "audio": "",
  "state": "pending",
  "scheduled": true,
  "start_time": {
    "value": 1461106800,
    "iso_8601": "2016-04-19T23:00:00Z"
  },
  "end_time": {
    "value": 1461110400,
    "iso_8601": "2016-04-20T00:00:00Z"
  },
  "duration": {
    "value": 3600,
    "display": "1 hour"
  },
  "create_ts": {
    "value": 1461104451,
    "iso_8601": "2016-04-19T22:20:51Z"
  },
  "update_ts": {
    "value": 1461627392,
    "iso_8601": "2016-04-25T23:36:32Z"
  }
}

Creating a New Meeting

#

A member's individual meeting list lives at /lucid/api/v1/meetings, but meetings themselves are always created in a specific room context. This allows the creation function to inherit all the room templates and default settings for meetings in the room.

Everything about a meeting, including the agenda, name, description (goal or purpose), desired outcomes, physical location, attendees, start time, and duration can be derived from the template you choose. And even better, you can configure your room defaults to decide automatically which template is first in the selection order, and thereby the default. This means that creating a meeting is as simple as doing a POST to the meetings collection in a room.

POST /lucid/api/v1/rooms/:room_id/meetings
Field Required Notes
template_id no The room template describing this meeting
name no The meeting name
description no The meeting goal or purpose
outcomes no The meeting desired outcomes
location no The physical location of the meeting, if any
audio no The audio or video instructions for joining the meeting
start_time no The meeting start time as either Unix timestamp or ISO 8601 date
end_time no The meeting end time as either Unix timestamp or ISO 8601 date
duration_minutes no The meeting duration in minutes. This will override the end_time if present.
duration_seconds no The meeting duration in seconds. This will override the end_time or duration_minutes if present.
state no One of: pending , started , ended
skip_attendees no Pass true to omit any default attendees associated with the room template.
meeting_source no An object with fields source_type, source_id, and optionally source_data. See Meeting Sources.

Sample Request

POST /lucid/api/v1/rooms/74/meetings
Content-Type: application/json
{
  "duration_seconds": 1800
}
201 Created
Location: https://site.lucidmeetings.com/lucid/api/v1/rooms/74/meetings/1230
Content-Type: application/json
{
  "meeting_id": 1230,
  "room_id": {
    "value": 74,
    "display": "Engineering Team"
  },
  "template_id": {
    "value": 192,
    "display": "Quick discussion"
  },
  "name": "Briefing meeting",
  "description": "",
  "outcomes": "",
  "location": "",
  "audio": "",
  "state": "pending",
  "scheduled": true,
  "start_time": {
    "value": 1442862000,
    "iso_8601": "2015-09-21T19:00:00Z"
  },
  "end_time": {
    "value": 1442863800,
    "iso_8601": "2015-09-21T19:30:00Z"
  },
  "duration": {
    "value": 1800,
    "display": "30 minutes"
  },
  "create_ts": {
    "value": 1442859957,
    "iso_8601": "2015-09-21T18:25:57Z"
  },
  "update_ts": {
    "value": 1442859957,
    "iso_8601": "2015-09-21T18:25:57Z"
  }
}

Deleting a Meeting

#
DELETE /lucid/api/v1/meetings/:meeting_id

Sample Request

DELETE /lucid/api/v1/meetings/1422


204 No Content


#

An individual meeting resource contains a set of collections that are managed in context: attendees , notes , and Action Items

Attendees

Please see the attendees resource for more information.

GET /lucid/api/v1/meetings/:meeting_id/attendees
GET /lucid/api/v1/meetings/:meeting_id/attendees/:attendee_id

The Lucid Meetings API provides collection shortcuts for interacting with subsets of the meeting attendees: facilitators , participants , observers , and guests .

GET /lucid/api/v1/meetings/:meeting_id/facilitators
GET /lucid/api/v1/meetings/:meeting_id/facilitators/:attendee_id
GET /lucid/api/v1/meetings/:meeting_id/participants
GET /lucid/api/v1/meetings/:meeting_id/participants/:attendee_id
GET /lucid/api/v1/meetings/:meeting_id/observers
GET /lucid/api/v1/meetings/:meeting_id/observers/:attendee_id
GET /lucid/api/v1/meetings/:meeting_id/guests
GET /lucid/api/v1/meetings/:meeting_id/guests/:attendee_id

Action Items

Please see the Action Items resource for more information.

GET /lucid/api/v1/meetings/:meeting_id/action_items
GET /lucid/api/v1/meetings/:meeting_id/action_items/:action_item_id

Notes

Please see the notes resource for more information.

GET /lucid/api/v1/meetings/:meeting_id/notes
GET /lucid/api/v1/meetings/:meeting_id/notes/:note_id