Following the documentation (https://marketplace.zoom.us/docs/guides/zoom-rooms/zoom-rooms-api#schedule), I’ve “scheduled” meetings for a Zoom room. The API calls return 200 with the anticipated fields populated in the response. E.g.: Result = “{“jsonrpc”:“2.0”,“result”:{“room_id”:“1BYmXV6sTt2sRido44pIqA”,“send_at”:“2021-06-04T22:10:25Z”},“id”:“46a433ce-a3a3-4921-af75-f9ba54ae4f99”}”
The documentation is a little vague on what this API should do, but I would expect room meetings created with the API to be displayed in the room controller calendar. After attempting to schedule multiple meeting for the room, none of them are displayed in the room controller.
Are my assumptions about this API correct? Should a meeting scheduled with the room schedule API show up in the room controller calendar? If so, are there admin configuration options that need to be modified to make this happen?
If this is not the expected behavior, is it possible to add a meeting or block out time on a room using only the Zoom API (not the SDK or calendar integration such as Google)?
Have you invited the room in question to the meeting as an attendee? If so, it should then appear. Please see this similar thread and let me know if this helps:
I read that post before posting my question. It appears that we can do what we need to do using a third party integration such as Google; however, that seems overly complicated and unnecessary if we can accomplish what we need to do direct using the Zoom API. Also, we are not using scheduling events, so adding a room as an attendee to get it onto its calendar is not an option.
It would help if you can give me a better explanation of what the Zoom room “Scheduling” API does. The documentation says “Schedule a meeting using the Zoom Rooms Client.” The description and the request payload leads me to believe that using this interface, a meeting would be scheduled using the Zoom room as the host and, as a stretch, would show up on the Zoom rooms calendar.
As I noted above, when I call the API, it comes back successful with an id, but nothing appears to take place!?
My payload looks something like this: method = “schedule”,
** @params = new**
** {**
** topic = message,**
** password = “1234”,**
** start_time = “2021-06-01T12:00:00Z”,**
** //timezone = “GMT-9:00”,//“America/Anchorage”,**
** duration = “60”**
** }**
For endpoint: https://api.zoom.us/v2/rooms/{roomId}/meetings
In summary as a first step, can you give me a more detailed explanation of what calling the scheduling API does?
Thanks for the reply and the additional context. I realize our Zoom Rooms endpoints can be a bit confusing. From a high level, the main point of using the Schedule a Meeting endpoint under our Zoom Rooms API is to schedule the meeting such that the Zoom Room itself is the host of the meeting. The Zoom Rooms Client can be used to start this meeting.
This is different from our Create Meeting API which creates the meeting under the given host user.
In regards to getting a meeting to appear on the Zoom Rooms controller, you’re correct in that this can be accomplished with Google and Outlook plugins. However, in order to have a Zoom Room appear on the Zoom Rooms controller using Zoom alone, the room itself must be invited to the meeting.
Let me know if you have additional questions about this.
I assumed that it was the case that the rooms schedule API would create a meeting using the room as the host. However, I am not able to launch the room into its own meeting, nor am I able to call another Zoom user into the meeting. I’ve tried the following:
Scheduled the room meeting using “Schedule” as the method for the room API. The response contained an id. I assumed this to be the meeting id, which I used in the two subsequent calls.
At the time of the above meeting I attempted to start and join the room to the meeting by calling the room API using “Join” as the method. The room did not join its own meeting when I did this. The room was idle.
After unsuccessfully attempting to start/join the meeting in the previous step, I attempted to call a Zoom user by invoking the room API “Invite” method and by placing the Zoom user id that I wanted to call in the “callee” field. Again, the user was not called and no meeting was started on the room.
Is the above a valid workflow for scheduling/creating a room meeting, launching the meeting on the room and calling in a Zoom user? If not, can you provide one?
Our end goal is to inject a meeting/entry into the Zoom room calendar (I was hoping to do this by calling the “Schedule” API discussed above). Ultimately, is there a way to do this using the Zoom API alone? Using the Google or Outlooks plugin is not an option for us given the latency of submitting the request and getting it on the room calendar. I’ve experimented with “inviting” in the room (to its own scheduled meeting) by using the Zoom Room API with the “Invite” method (which as it’s documented appears to be for calling in a Zoom user, not the room that created the meeting and is the host) and by adding the room as a registrant to a scheduled meeting (/meetings/{meetingId}/meetings). Neither of these approaches inject the meeting onto the room calendar.
Thank you for providing that detailed information. This is something that @will.zoom should be able to comment on further but it sounds like the issue could be how to obtain the meeting ID from that API.
Just to clarify, have you set up the callback for that API and used the meeting_number field returned to obtain the meeting number? We have more information on this here:
If it is of use to others who may see this post, I was not able to get the Schedule API to insert an event into the Zoom room calendar until a calendar integration was added to the room. In our case, an Exchange account was linked to our Zoom room. The documentation does not list this as a pre-requisite.
Also, on a somewhat related topic, I was never able to get the Zoom room Cancel API to remove a Zoom room calendar entry that I created using the Schedule API (even if it was the same day). Per the forum, other users have had varying levels of success with the Cancel API. In general I don’t understand why a composite key of start time, duration and topic would be used over the ID (or meeting ID) that is returned from the Schedule API as the input to the Cancel API.