Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds "teams meeting create" command. Closes #1345 #5550

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
278 changes: 278 additions & 0 deletions docs/docs/cmd/teams/meeting/meeting-add.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,278 @@
import Global from '/docs/cmd/_global.mdx';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# teams meeting add

Create a new online meeting

## Usage

```sh
m365 teams meeting add [options]
```

## Options

```md definition-list
`-s, --startTime [startTime]`
: The start time of the meeting. If not specified, the startTime will be set to the current time.

`-e, --endTime [endTime]`
: The end time of the meeting. If not specified, the endTime will be set to one hour after the startTime.

`--subject [subject]`
: The subject of the meeting.

`-p, --participantUserNames [participantUserNames]`
: A comma-separated list of participant UPNs.

`--organizerEmail [organizerEmail]`
: The organizer's email address.

`-r, --recordAutomatically`
: When using this flag, the meeting will be recorded automatically.
```

<Global />

## Remarks
This API creates a standalone meeting that is not associated with any event on the user's calendar; therefore, meetings created via this API will not show on the user's calendar.

martinlingstuyl marked this conversation as resolved.
Show resolved Hide resolved
To create an online meeting for a specific organizer, use the **--organizerEmail** parameter along with app-only permissions. The registered app should have the **OnlineMeetings.ReadWrite.All** permissions, and a special policy should be assigned to the user specified in the **organizerEmail** option. You can find more information on how to assign this policy to a user [here](https://learn.microsoft.com/en-us/graph/cloud-communication-online-meeting-application-access-policy).

## Examples

Create a new online meeting for the currently logged-in user, starting immediately and ending after one hour.

```sh
m365 teams meeting add
```

Create a new online meeting for the currently logged-in user, with a specified start date and a duration of one hour.

```sh
m365 teams meeting add --startTime "2025-09-21T13:30:00Z"
```

Create a new online meeting for the currently logged-in user, with specified end date the current date as the start date.

```sh
m365 teams meeting add --endTime "2025-09-21T23:55:00Z"
```

Create a new online meeting for the currently logged-in user, with specified start and end dates.

```sh
m365 teams meeting add --startTime "2025-09-21T13:30:00Z" --endTime "2025-09-21T23:55:00Z"
```

Create a new online meeting for the currently logged-in user, with a specified subject.

```sh
m365 teams meeting add --startTime "2025-09-21T13:30:00Z" --endTime "2025-09-21T23:55:00Z" --subject "Test Subject"
```

Create a new online meeting for the currently logged-in user, with a specified subject and a list of participantUserNames.

```sh
m365 teams meeting add --subject "Test Subject" --participantUserNames "[email protected],[email protected]"
```

Create a new online meeting for the currently logged-in user, with a specified subject, a list of participantUserNames, and automatic meeting recording.

```sh
m365 teams meeting add --subject "Test Subject" --participantUserNames "[email protected],[email protected]" --recordAutomatically
```

Create a new online meeting for a selected organizer, with a specified subject, a list of participantUserNames, and automatic meeting recording. This option is available for app-only permissions.

```sh
m365 teams meeting add --organizerEmail "[email protected]" --subject "Test Subject" --participantUserNames "[email protected]" --recordAutomatically
```

## Response

<Tabs>
<TabItem value="JSON">

```json
{
"id": "abc",
"creationDateTime": "2023-07-25T19:29:32.033109Z",
"startDateTime": "2023-07-17T03:00:00Z",
"endDateTime": "2023-07-17T04:00:00Z",
"joinUrl": "https://teams.microsoft.com/l/meetup-join/abc",
"joinWebUrl": "https://teams.microsoft.com/l/meetup-join/abc",
"meetingCode": "12345",
"subject": "Subject",
"isBroadcast": false,
"autoAdmittedUsers": "unknownFutureValue",
"outerMeetingAutoAdmittedUsers": null,
"isEntryExitAnnounced": false,
"allowedPresenters": "everyone",
"allowMeetingChat": "enabled",
"shareMeetingChatHistoryDefault": "none",
"allowTeamworkReactions": true,
"allowAttendeeToEnableMic": true,
"allowAttendeeToEnableCamera": true,
"recordAutomatically": false,
"anonymizeIdentityForRoles": [],
"capabilities": [],
"videoTeleconferenceId": null,
"externalId": null,
"iCalUid": null,
"meetingType": null,
"allowParticipantsToChangeName": false,
"allowRecording": true,
"allowTranscription": true,
"meetingMigrationMode": null,
"broadcastSettings": null,
"audioConferencing": null,
"meetingInfo": null,
"participants": {
"organizer": {
"upn": "[email protected]",
"role": "presenter",
"identity": {
"application": null,
"device": null,
"user": {
"id": "12345678-1234-1234-1234-12345678",
"displayName": null,
"tenantId": "12345678-1234-1234-1234-12345678",
"identityProvider": "AAD"
}
}
},
"attendees": [
{
"upn": "[email protected]",
"role": "attendee",
"identity": {
"application": null,
"device": null,
"user": {
"id": "12345678-1234-1234-1234-12345678",
"displayName": null,
"tenantId": "12345678-1234-1234-1234-12345678,
"identityProvider": "AAD"
}
}
}
]
},
"lobbyBypassSettings": {
"scope": "unknownFutureValue",
"isDialInBypassEnabled": false
},
"joinMeetingIdSettings": {
"isPasscodeRequired": true,
"joinMeetingId": "12345",
"passcode": "123456"
},
"chatInfo": {
"threadId": "abc",
"messageId": "0",
"replyChainMessageId": null
},
"joinInformation": {
"content": "textContent",
"contentType": "html"
},
"watermarkProtection": {
"isEnabledForContentSharing": false,
"isEnabledForVideo": false
}
}
```

</TabItem>
<TabItem value="Text">

```text
allowAttendeeToEnableCamera : true
allowAttendeeToEnableMic : true
allowMeetingChat : enabled
allowParticipantsToChangeName : false
allowRecording : true
allowTeamworkReactions : true
allowTranscription : true
allowedPresenters : everyone
anonymizeIdentityForRoles : []
audioConferencing : null
autoAdmittedUsers : everyoneInCompany
broadcastSettings : null
capabilities : []
chatInfo : {"threadId":"19:[email protected]","messageId":"0","replyChainMessageId":null}
chatRestrictions : null
creationDateTime : 2023-11-13T16:02:12.5012352Z
endDateTime : 2023-11-13T17:02:11.9711697Z
externalId : null
iCalUid : null
id : meetingID
isBroadcast : false
isEntryExitAnnounced : true
joinInformation : {"content":"data:text/html,htmlMessageTemplate","contentType":"html"}
joinMeetingIdSettings : {"isPasscodeRequired":false,"joinMeetingId":"123456789012","passcode":null}
joinUrl : https://teams.microsoft.com/l/meetup-join/abc
joinWebUrl : https://teams.microsoft.com/l/meetup-join/abc
lobbyBypassSettings : {"scope":"organization","isDialInBypassEnabled":false}
meetingCode : 123456789012
meetingInfo : null
meetingMigrationMode : null
meetingType : null
outerMeetingAutoAdmittedUsers : null
participants : {"organizer":{"upn":"[email protected]","role":"presenter","identity":{"application":null,"device":null,"user":{"id":"12345678-1234-1234-1234-12345678","displayName":null,"tenantId":"12345678-1234-1234-1234-12345678","identityProvider":"AAD"}}},"attendees":[]}
recordAutomatically : false
shareMeetingChatHistoryDefault: none
startDateTime : 2023-11-13T16:02:11.9711697Z
subject : null
videoTeleconferenceId : null
watermarkProtection : null
```

</TabItem>
<TabItem value="CSV">

```csv
id,creationDateTime,startDateTime,endDateTime,joinUrl,meetingCode,isBroadcast,autoAdmittedUsers,joinWebUrl,isEntryExitAnnounced,allowedPresenters,allowAttendeeToEnableMic,allowAttendeeToEnableCamera,allowMeetingChat,shareMeetingChatHistoryDefault,allowTeamworkReactions,recordAutomatically,allowParticipantsToChangeName,allowTranscription,allowRecording
meetingId,2023-11-13T16:03:03.5669316Z,2023-11-13T16:03:03.2213499Z,2023-11-13T17:03:03.2213499Z,https://teams.microsoft.com/l/meetup-join/abc,123456789012,,everyoneInCompany,https://teams.microsoft.com/l/meetup-join/abc,1,everyone,1,1,enabled,none,1,,,1,1
```

</TabItem>
<TabItem value="Markdown">

```md
# teams meeting add

Date: 13/11/2023

## meetingId

Property | Value
---------|-------
id | meetingId
creationDateTime | 2023-11-13T16:03:57.6531542Z
startDateTime | 2023-11-13T16:03:56.8464734Z
endDateTime | 2023-11-13T17:03:56.8464734Z
joinUrl | https://teams.microsoft.com/l/meetup-join/abc
meetingCode | 123456789012
isBroadcast | false
autoAdmittedUsers | everyoneInCompany
joinWebUrl | https://teams.microsoft.com/l/meetup-join/abc
isEntryExitAnnounced | true
allowedPresenters | everyone
allowAttendeeToEnableMic | true
allowAttendeeToEnableCamera | true
allowMeetingChat | enabled
shareMeetingChatHistoryDefault | none
allowTeamworkReactions | true
recordAutomatically | false
allowParticipantsToChangeName | false
allowTranscription | true
allowRecording | true
```

</TabItem>
</Tabs>
5 changes: 5 additions & 0 deletions docs/src/config/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -3804,6 +3804,11 @@ const sidebars = {
},
{
meeting: [
{
type: 'doc',
label: 'meeting add',
id: 'cmd/teams/meeting/meeting-add'
},
{
type: 'doc',
label: 'meeting get',
Expand Down
1 change: 1 addition & 0 deletions src/m365/teams/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export default {
GUESTSETTINGS_LIST: `${prefix} guestsettings list`,
GUESTSETTINGS_SET: `${prefix} guestsettings set`,
MEETING_ATTENDANCEREPORT_LIST: `${prefix} meeting attendancereport list`,
MEETING_ADD: `${prefix} meeting add`,
MEETING_GET: `${prefix} meeting get`,
MEETING_LIST: `${prefix} meeting list`,
MEETING_TRANSCRIPT_LIST: `${prefix} meeting transcript list`,
Expand Down
Loading