Updated on 2025-07-28 GMT+08:00

Scheduling a Meeting

API Description

This API is used to schedule a meeting.

Precautions

  • This API can be called only when you have logged in to Huawei Cloud Meeting.
  • The meeting start time must be later than the current time, and the meeting duration must be longer than 15 minutes.
  • The vmrId parameter must be passed for a personal meeting or cloud meeting room.
  • The attendees parameter must be passed if participant information needs to be carried.
  • The result parameter in the callback returns the meeting details. For details, see Table 3.

Method Definition

1
2
3
4
5
6
    /**
     * Schedule a meeting.
     * @param bookConfParam Indicates the bookConfParam object.
     * @param hwmCallback Indicates the result callback.
     */
   void bookConf(BookConfParam bookConfParam , HwmCallback<ConfInfo> hwmCallback);

Parameter Description

Table 1 BookConfParam description

Parameter

Mandatory

Type

Description

confSubject

Yes

String

Definition

Meeting topic.

Constraints

N/A

Range

1 to 385 characters.

Default Value

N/A

startTimeStamp

Yes

long

Definition

Meeting start time. The value is a UTC timestamp, accurate to seconds.

Constraints

The timestamp cannot be earlier than the current system time.

Default Value

N/A

duration

Yes

int

Definition

Meeting duration, in minutes.

Constraints

N/A

Range

15 minutes to 1,440 minutes.

Default Value

30 minutes for meetings created on the server.

timeZone

No

int

Definition

Time zone code, which is used to send meeting notifications.

Constraints

N/A

Range

See Time Zone Table.

Default Value

56 (GMT+08:00)

confType

Yes

MeetingType

Definition

Meeting type.

CONF_AUDIO(0, "Voice meeting")

CONF_VIDEO(1, "Video meeting")

Constraints

N/A

Default Value

CONF_AUDIO

attendees

No

List<AttendeeModel>

Definition

Participant list (optional).

Constraints

N/A

Default Value

N/A

vmrIdFlag

No

boolean

Definition

Whether to use the ID of a cloud meeting room for meeting scheduling.

Constraints

N/A

Default Value

false

vmrId

No

String

Definition

ID of the personal meeting or cloud meeting room.

Constraints

Required when the personal meeting is created or a cloud meeting room is used. In other cases, leave this parameter blank.

Range

0 to 128 characters.

Default Value

N/A

isNeedConfPwd

No

boolean

Definition

Whether a guest password is required.

Constraints

Valid only for meetings with a random ID.

Default Value

true

guestPwd

No

String

Definition

Guest password.

Constraints

If this parameter is left blank, the server randomly generates a value. Valid only for meetings with a random ID.

Range

0 to 64 characters.

Default Value

N/A

joinConfRestrictionType

No

JoinConfPermissionType

Definition

Users who can join the meeting.

PERMIT_EVERYONE(0, "Everyone")

PERMIT_ENTERPRISE_USER(2, "Corporate users only")

PERMIT_INVITED_USER(3, "Invited users only")

Constraints

N/A

Default Value

PERMIT_EVERYONE

isRecordOn

No

boolean

Definition

Whether to enable meeting recording.

Constraints

Valid only for cloud recording, not for local recording on clients.

Default Value

false

isAutoRecord

No

boolean

Definition

Whether to automatically start recording after the meeting starts. Meeting recording must be enabled if automatic recording is enabled.

Constraints

Valid only for cloud recording, not for local recording on clients.

Default Value

false

isSmsOn

No

boolean

Definition

Whether to send an SMS notification.

Constraints

Reserved field. SMS notification is not yet available.

Default Value

false

isMailOn

No

boolean

Definition

Whether to send an email notification.

Constraints

To use this function, enable it in the enterprise configuration. Otherwise, this parameter does not take effect.

Default Value

false

isEmailCalenderOn

No

boolean

Definition

Whether to send an email calendar.

Constraints

To use this function, enable it in the enterprise configuration. Otherwise, this parameter does not take effect.

Default Value

false

vmrIdType

No

VmrIdType

Definition

Type of the cloud meeting room ID.

FIXED_ID(0, "Fixed")

RANDOM_ID(1, "Random")

Constraints

N/A

Default Value

FIXED_ID

allowGuestStartConf

No

boolean

Definition

Whether to allow guests to join the meeting ahead of the host.

Constraints

Default Value

true

allowGuestStartConfTime

No

int

Definition

Time range allowed for guests to join the meeting in advance, in minutes.

Constraints

  • Valid only for meetings with a random ID.
  • Unsupported for meetings with fixed IDs.

Range

  • 0: anytime before the scheduled time.
  • x: x minutes before the scheduled time.

Default Value

0

isOpenWaitingRoom

No

boolean

Definition

Waiting room status.

Constraints

Takes effect only after the waiting room function is enabled.

Default Value

false

customInfo

No

String

Definition

User-defined data on the device side. The server is unaware of the data.

Constraints

N/A

Range

0 to 64 characters.

Default Value

N/A

concurrentParticipants

No

int

Definition

Maximum number of participants allowed.

Constraints

N/A

Range

  • 0: unlimited.
  • > 0

Default Value

0

confResType

No

ConfResType

Definition

Meeting resource type.

CONF_RESTYPE_DEFAULT(0, "Default")

CONF_RESTYPE_SHARE_VMR(3, "Shared cloud meeting room")

Constraints

To use a shared cloud meeting room, pass ConfResType.CONF_RESTYPE_SHARE_VMR.

This parameter is optional for other resource types.

Default Value

CONF_RESTYPE_DEFAULT

autoMuteMode

No

AutoMuteType

Definition

Whether to automatically mute personal client users when they join the meeting.

AUTO_MUTE_TYPE_DEFAULT(0, "Default")

AUTO_MUTE_TYPE_MUTE(1, "Mute")

AUTO_MUTE_TYPE_UNMUTE(2, "Unmute")

Constraints

N/A

Default Value

AUTO_MUTE_TYPE_DEFAULT

hardTerminalAutoMuteMode

No

AutoMuteType

Definition

Whether to automatically mute meeting room device users when they join the meeting.

AUTO_MUTE_TYPE_DEFAULT(0, "Default")

AUTO_MUTE_TYPE_MUTE(1, "Mute")

AUTO_MUTE_TYPE_UNMUTE(2, "Unmute")

Constraints

N/A

Default Value

AUTO_MUTE_TYPE_DEFAULT

attendeesExcludeSelf

No

boolean

Definition

Whether the participant list does not include the meeting scheduler.

Constraints

N/A

Default Value

false: The scheduler is included.

defaultSummaryState

No

SummaryState

Definition

Default state of smart meeting minutes during recording.

SUMMARY_STATE_CLOSE(0, "Disabled")

SUMMARY_STATE_OPEN(1, "Enabled")

Constraints

Valid only when the enterprise configuration supports smart meeting minutes (corpEnableSummary). For details, see Notification of Enterprise Configuration Changes.

Default Value

SUMMARY_STATE_CLOSE

autoPublishSummary

No

boolean

Definition

Whether to automatically release minutes (without manual review).

Constraints

N/A

Default Value

false

Table 2 AttendeeModel description

Parameter

Mandatory

Type

Description

number

Yes

String

Definition

Called number.

Constraints

If this parameter is set to the SIP number (for example, +99111244216210249) allocated to the account, the Huawei Cloud Meeting app is called. If this parameter is set to a PSTN number (for example, 18700000000), the number is called through the VoIP gateway if the enterprise has enabled PSTN call. This parameter is used for account and password authentication. Either this parameter or thirdUserId must be set.

Default Value

N/A

thirdUserId

Yes

String

Definition

Third-party user ID.

Constraints

For app ID authentication. Either this parameter or number must be set.

Default Value

N/A

name

Yes

String

Definition

Name.

Constraints

N/A

Range

0 to 96 characters.

Default Value

N/A

isSelf

No

boolean

Definition

Whether you are the participant.

Constraints

N/A

Default Value

false

isAutoInvite

No

boolean

Definition

Whether to automatically make a call to the participant when the start time arrives.

Constraints

N/A

Default Value

false

isMute

No

boolean

Definition

Whether to mute the microphone when joining the meeting.

Constraints

N/A

Default Value

false

accountId

No

String

Definition

Unique ID of the user account in the corporate directory. (The login account is returned in the meeting details.)

Constraints

N/A

Default Value

N/A

type

No

HwmAttendeeType

Definition

Participant type. (This parameter is used only for obtaining the participant list.)

Constraints

N/A

Default Value

N/A

email

No

String

Definition

Email address used for receiving email notifications.

Constraints

N/A

Range

0 to 256 characters.

Default Value

N/A

sms

No

String

Definition

Mobile number used for receiving SMS notifications.

Constraints

N/A

Range

0 to 128 characters.

Default Value

N/A

role

No

ConfRole

Definition

Participant role.

ATTENDEE(0, "Guest")

HOST(1, "Host")

AUDIENCE(2, "Attendee")

COHOST(3, "Co-host")

Constraints

N/A

Default Value

ATTENDEE

orgId

No

String

Definition

ID of the enterprise to which the user belongs. It is used to identify whether the user belongs to your enterprise.

Constraints

N/A

Default Value

N/A

isAnonymous

No

boolean

Definition

Whether to join the meeting anonymously. (This parameter is used only for obtaining the participant list.)

Constraints

N/A

Default Value

N/A

state

No

ConfAttendeeState

Definition

Participant status. (This parameter is used only for obtaining the participant list.)

Constraints

N/A

Default Value

N/A

Table 3 ConfInfo description

Parameter

Type

Description

confSubject

String

Meeting topic.

confId

String

Meeting ID.

isOtherCorpConf

boolean

Whether the meeting is held in another enterprise.

vmrConferenceId

String

Personal meeting ID.

confPwd

String

Meeting password.

confAccessNum

String

Meeting access number.

confChairPwd

String

Host password.

confGuestUri

String

Guest link.

confStartTimeStamp

String

Meeting start time.

confEndTimeStamp

String

Meeting end time.

confScheduserName

String

Meeting creator.

confOrgId

String

Enterprise ID.

audienceJoinUri

String

Attendee link (for webinars).

audienceJoinPwd

String

Attendee password (for webinars).

confType

ConfType

Meeting type, which can be general meeting or webinar.

conferenceType

ConferenceType

Whether the meeting is a general or recurring meeting.

cycleConfParam

CycleConfParam

Recurring meeting series parameters.

subConfSize

int

Number of recurring meetings.

subConfParam

List<SubCycleConfParam>

Recurring meeting parameters.

selfConfRole

ConfRole

Role in the meeting.

isInBreakoutSubConf

boolean

Whether the participant is in a breakout room.

Table 4 Enumerated values of VmrIdType

Enumeration Name

Enumerated Value

Description

FIXED_ID

0

VmrId is a fixed ID.

RANDOM_ID

1

VmrId is a random ID.

Table 5 Enumerated values of ConfResType

Enumeration Name

Enumerated Value

Description

CONF_RESTYPE_DEFAULT

0

Default.

CONF_RESTYPE_SHARE_VMR

3

Shared cloud meeting room.

Sample Code

Constructor of List<AttendeeModel>:
boolean needWithMember = true;
List<AttendeeModel> attendeeInfos = new ArrayList<>();
if (needWithMember) {
        // The following three methods are available:
	String name = getName();
	String number = getNumber();
	String thirdAccountId = getThirdAccountId();
	if (!TextUtils.isEmpty(thirdAccountId)) {
	    attendeeInfos.add(AttendeeModel.buildAttendeeByThirdUserId(thirdUserId, name));
	} else if (number.startsWith("+99")) {
	    // A SIP number is used to join the meeting.
	    attendeeInfos.add(AttendeeModel.buildAttendeeBySipNumber(number, name));
	} else {
	    // A mobile number or a fixed-line phone number is used to join the meeting.
	    attendeeInfos.add(AttendeeModel.buildAttendeeByPhone(number, name));
	}
}

Construct a participant model for login using an app ID. For details about other models, see the demo code.
public static AttendeeModel buildAttendeeByThirdUserId(@NonNull String thirdUserId,
    String nickName) {
    AttendeeModel attendeeInfo = new AttendeeModel();
    attendeeInfo.setAppId(Foundation.getAppid());
    attendeeInfo.setThirdUserId(thirdUserId);
    attendeeInfo.setName(nickName);
    attendeeInfo.setIsAutoInvite(true);
    attendeeInfo.setIsMute(true);
    attendeeInfo.setRole(ConfRole.ATTENDEE);
    attendeeInfo.setType(HwmAttendeeType.ATTENDEE_TYPE_NORMAL);
    return attendeeInfo;
}

private HwmCallback<ConfInfo> completeHandler = new HwmCallback<ConfInfo>() {
	@Override
	public void onSuccess(ConfInfo result) {
		dismissLoading();
		DemoUtil.showToast("Meeting scheduled.");
	}

	@Override
	public void onFailed(int retCode, String desc) {
		dismissLoading();
		dismiss();
		String err = ErrorMessageFactory.create(Utils.getApp(), retCode);
		if (TextUtils.isEmpty(err)) {
			err = Utils.getApp().getString(R.string.hwmconf_book_conf_fail);
		}
		DemoUtil.showToast("Schedule meeting failed.: " + retCode +", desc: "+ err);
	}
};
BookConfParam bookConfParam = new BookConfParam()
		.setConfSubject(getSubject())
		.setStartTimeStamp(1743075947)
		.setTimeZone(56)
		.setDuration(60)
		.setConfType(MeetingType.CONF_VIDEO)
		.setVmrIdFlag(false)
		.setVmrId("")
		.setNeedConfPwd(true)
		.setJoinConfRestrictionType(JoinConfPermissionType.PERMIT_EVERYONE)
		.setRecordOn(true)
		.setMailOn(true)
		.setSmsOn(true)
		.setEmailCalenderOn(true)
 
		.setAttendees(attendeeInfos);
HWMBizSdk.getBizOpenApi().bookConf(bookConfParam, this.completeHandler);