Meetings

Update a meeting schedule

Replaces a meeting's details, and is also how you cancel one. Nobody is notified.

PUT
https://api.portal.magicdoor.com/company-app/meetings/schedules/{meetingScheduleId}

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.

Path parameters

meetingScheduleIdstringrequired

The meeting to change.

example: 1831314991768416256

Body

application/json

Every field is replaced wholesale. There is no partial update, so send the values you want to keep as well as the ones you are changing.

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.

cancelledstring · date-time

Set this to mark the meeting cancelled. Leave it out to keep it active — sending it without a value clears an existing cancellation.

cancellationReasonstring

Why it was cancelled. Up to 500 characters.

Response

200 · The updated 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.

404 · No meeting schedule with that id belongs to your company.

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

To cancel a meeting rather than delete it, send cancelled with the moment it was called off and a cancellationReason. The meeting stays in the list with a status of cancelled.

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.

startTime must still be in the future, so a meeting that has already started cannot be edited through this endpoint.