Meetings

Create a meeting

Changed on

Logs, imports or schedules a general meeting, through the same service the Atlas app uses. Returns the created meeting in the same shape as GET /api/v1/meetings/{meetingId}.

Logging or importing a past meeting: send skipCalendarEvent: true with past startAt / endAt. There is no separate backdating flag: a meeting whose endAt is already in the past is stored as completed; one that ends in the future is scheduled.

Scheduling: send skipCalendarEvent: false and senderEmail; the calendar event is created from that user’s connected calendar. If that calendar cannot be reached the meeting is still created, without a calendar event — except when its authorisation has expired, which returns 401 and creates nothing.

The user that owns the API key (or senderEmail, when given) is the organizer and is always added as an attendee; that user needs a connected mailbox in Atlas. Only general meetings can be created here — candidate interviews are not supported.

post/api/v1/meetings

Request

Request body

namestring required

Meeting title

startAtstring date-time required

Start time, ISO 8601 with Z or an explicit offset

endAtstring date-time required

End time, ISO 8601 with Z or an explicit offset. A meeting whose end is already in the past is stored as completed, so send past times to log or import a meeting that already happened.

timeZonestring required

IANA time zone the meeting is held in, used for the calendar event

communicationMethod'video_call' | 'phone_call' | 'in_person' required

How the meeting is held

skipCalendarEventboolean required

true logs the meeting in Atlas only. false also creates a calendar event, sent from senderEmail’s connected calendar.

senderEmailstring email

Email of the active agency user whose calendar sends the invite. Required when skipCalendarEvent is false; not accepted otherwise.

descriptionstring nullable

Meeting description, also used as the calendar event body

locationstring nullable

Meeting location

projectIdstring uuid nullable

Project the meeting relates to. Must belong to your agency.

isPrivateboolean

Mark the meeting private. Defaults to false.

hideAttendeesboolean

Hide the attendee list on the calendar event. Defaults to true.

inviteAINotetakerboolean

Invite the AI notetaker to record the meeting. Requires skipCalendarEvent: false. Defaults to false.

peopleNotesstring nullable

Plain-text notes about the meeting (the manual note)

Example request

{
  "name": "Intro call with Jane Doe",
  "startAt": "2026-06-01T09:00:00Z",
  "endAt": "2026-06-01T09:30:00Z",
  "timeZone": "Europe/London",
  "communicationMethod": "video_call",
  "attendees": [
    {
      "email": "jane.doe@client.com",
      "isUser": false
    }
  ],
  "skipCalendarEvent": true,
  "description": "Imported from our call recorder",
  "peopleNotes": "Discussed the senior engineer role; follow up next week."
}

Response

Meeting created

status'ok' required

Changes

    • warning

      added the new undefined enum value to the /// response property for the response status

    • warning

      added the new undefined enum value to the / response property for the response status

    • warning

      added the new undefined enum value to the / response property for the response status

    • info

      endpoint added