Meetings

Create a meeting schedule

Adds a meeting to your company's calendar. No invitation is sent to anybody.

POST
https://api.portal.magicdoor.com/company-app/meetings/schedules

Authorization

Authorizationstringrequired
Bearer token — Send your API token in the Authorization header as Bearer <token>. Requests without a valid token are rejected with 401 Unauthorized.

Body

application/json

sourceenum<string>required

Where the meeting comes from. manual for one entered directly, external for one mirrored from another calendar.

example: manualmanualexternal
titlestringrequired

The meeting's title. Up to 200 characters.

example: Owner review call
descriptionstring

What the meeting is about. Up to 1,000 characters.

linkstring

The joining link. Up to 200 characters.

startTimestring · date-timerequired

When the meeting starts, in the company's timezone. Must be in the future.

example: 2026-09-04T15:00:00
endTimestring · date-timerequired

When the meeting ends, in the company's timezone. Must not be before startTime.

example: 2026-09-04T16:00:00
startTimeUtcstring · date-time

The start time as an absolute moment with an offset. Overrides startTime when given.

endTimeUtcstring · date-time

The end time as an absolute moment with an offset. Overrides endTime when given.

externalProviderstring

The calendar system this came from. Up to 100 characters.

externalIdentifierstring

The event's id in that calendar system. Up to 100 characters.

Response

200 · The meeting.

idstring

The meeting schedule.

sourceenum<string>

manual means it was entered in MagicDoor; external that it came from a calendar somewhere else.

manualexternal
titlestring

The meeting's title.

descriptionstring

What the meeting is about.

linkstring

The joining link, for a video call.

startTimestring · date-time

When the meeting starts.

endTimestring · date-time

When the meeting ends.

statusenum<string>

Worked out from the clock and cancelled, not stored: cancelled if it was cancelled, ended if endTime has passed, active otherwise.

activeendedcancelled
cancelledstring · date-time

When it was cancelled. Absent when it was not.

cancellationReasonstring

Why it was cancelled.

externalProviderstring

The calendar system it came from, for an external meeting.

externalIdentifierstring

The event's id in that calendar system.

metadataobject

Free-form key/value data stored with the meeting. Empty for meetings created through this API.

400 · `title` is empty, `startTime` is in the past, or `endTime` is before `startTime`.

401 · The access token is missing, expired, or not valid.

A meeting schedule is a calendar record inside MagicDoor. Creating, changing, or deleting one sends no invitation, email, or SMS to anybody.

startTime and endTime carry no timezone offset and are read in the company's timezone, like every other timestamp in this API. If you would rather send UTC directly, use startTimeUtc and endTimeUtc instead — when either is present it wins over the matching plain field.