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
- Meeting States
- Getting a List of My Meetings
- Getting a List of Meetings in a Room
- Getting a Single Meeting
- Exporting a Meeting Agenda
- Exporting a Meeting Record
- Updating a Meeting via PATCH
- Updating a Meeting via PUT
- Creating a New Meeting
- Deleting a Meeting
- Related Collections
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 bestarted
orcanceled
- A
canceled
meeting can be uncanceled, returning it topending
- Once a meeting has been
started
it can bepaused
orended
- A
paused
meeting can bestarted
again, orended
- An
ended
meeting can bestarted
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
Related Collections
#
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