VirtualAppointment.ReadWrite.All
Allows the application to read and write virtual appointments for all users, without a signed-in user. The app must also be authorized to access an individual user’s data by the online meetings application access policy.
In short
VirtualAppointment.ReadWrite.All is an application-only permission in the Microsoft Graph API, grouped under the VirtualAppointment category. Allows the application to read and write virtual appointments for all users, without a signed-in user. The app must also be authorized to access an individual user’s data by the online meetings application access policy. It grants read and write access to resources. Application permissions always require admin consent.
Permission Details
Read-write all virtual appointments for users, as authorized by online meetings app access policy
Allows the application to read and write virtual appointments for all users, without a signed-in user. The app must also be authorized to access an individual user’s data by the online meetings application access policy.
bf46a256-f47d-448f-ab78-f226fff08d40
Properties
Properties is shown from beta metadata because a stable v1.0 schema is not available for this resource mapping.
| Property | Type | Description |
|---|---|---|
appointmentClients |
virtualAppointmentUser collection |
The client information for the virtual appointment, including name, email, and SMS phone number. Optional. |
appointmentClientJoinWebUrl |
String |
The join web URL of the virtual appointment for clients with waiting room and browser join. Optional. |
externalAppointmentId |
String |
The identifier of the appointment from the scheduling system, associated with the current virtual appointment. Optional. |
externalAppointmentUrl |
String |
The URL of the appointment resource from the scheduling system, associated with the current virtual appointment. Optional. |
settings |
virtualAppointmentSettings |
The settings associated with the virtual appointment resource. Optional. |
JSON Representation
JSON representation is shown from beta metadata because a stable v1.0 schema is not available for this resource mapping.
{
"@odata.type": "#microsoft.graph.virtualAppointment",
"appointmentClients": [
{
"@odata.type": "microsoft.graph.virtualAppointmentUser"
}
],
"appointmentClientJoinWebUrl": "String",
"externalAppointmentId": "String",
"externalAppointmentUrl": "String",
"id": "String (identifier)",
"settings": {
"@odata.type": "microsoft.graph.virtualAppointmentSettings"
}
}
Relationships
Relationships metadata is not available for this permission mapping.
View resource documentationGraph Methods
Microsoft Graph v1.0 endpoints are not available from refreshed Microsoft Learn or Microsoft Graph OpenAPI metadata for this permission.
No API methods available for this version.
Microsoft Graph beta endpoints are not available from refreshed Microsoft Learn or Microsoft Graph OpenAPI metadata for this permission.
No API methods available for this version.
Microsoft Graph PowerShell v1.0 commands are not available from refreshed Microsoft Learn PowerShell snippets for this permission.
No deterministic PowerShell command map is available for this permission.
Browse PowerShell docsMicrosoft Graph PowerShell beta commands are not available from refreshed Microsoft Learn PowerShell snippets for this permission.
No deterministic PowerShell command map is available for this permission.
Browse PowerShell docsCode Examples
using Azure.Identity;
using Microsoft.Graph;
var scopes = new[] { "VirtualAppointment.ReadWrite.All" };
var credential = new InteractiveBrowserCredential(
new InteractiveBrowserCredentialOptions
{
ClientId = "YOUR_CLIENT_ID",
TenantId = "YOUR_TENANT_ID",
RedirectUri = new Uri("http://localhost")
});
var graphClient = new GraphServiceClient(credential, scopes);
var response = await graphClient
.WithUrl("https://graph.microsoft.com/v1.0/virtualappointment")
.GetAsync();
import { Client } from "@microsoft/microsoft-graph-client";
import { InteractiveBrowserCredential } from "@azure/identity";
const credential = new InteractiveBrowserCredential({
clientId: "YOUR_CLIENT_ID",
tenantId: "YOUR_TENANT_ID",
redirectUri: "http://localhost"
});
const token = await credential.getToken(["VirtualAppointment.ReadWrite.All"]);
const client = Client.init({
authProvider: (done) => done(null, token.token)
});
const response = await client.api("/virtualappointment").get();
Connect-MgGraph -Scopes "VirtualAppointment.ReadWrite.All"
Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/v1.0/virtualappointment"
from azure.identity import InteractiveBrowserCredential
import requests
credential = InteractiveBrowserCredential(
client_id="YOUR_CLIENT_ID",
tenant_id="YOUR_TENANT_ID"
)
token = credential.get_token("VirtualAppointment.ReadWrite.All")
response = requests.get(
"https://graph.microsoft.com/v1.0/virtualappointment",
headers={"Authorization": f"Bearer {token.token}"}
)
print(response.json())
App Registration
Navigate to Azure Portal
Go to App registrations in Microsoft Entra admin center
Add API Permission
Select your app → API permissions → Add a permission → Microsoft Graph
Select Permission Type
Choose Application permissions and search for VirtualAppointment.ReadWrite.All
Grant Admin Consent
Application permissions always require admin consent.
Frequently asked questions
What is the VirtualAppointment.ReadWrite.All Microsoft Graph permission?
VirtualAppointment.ReadWrite.All is an application-only permission in the Microsoft Graph API, grouped under the VirtualAppointment category. Allows the application to read and write virtual appointments for all users, without a signed-in user. The app must also be authorized to access an individual user’s data by the online meetings application access policy. It grants read and write access to resources. Application permissions always require admin consent. It is mapped to the Microsoft Graph virtualappointment resource type.
Is VirtualAppointment.ReadWrite.All an application or a delegated permission?
VirtualAppointment.ReadWrite.All is an application permission only. It grants app-only access without a signed-in user and always requires admin consent.
Does VirtualAppointment.ReadWrite.All require admin consent?
Application permissions always require admin consent.
What is the permission ID (GUID) for VirtualAppointment.ReadWrite.All?
For VirtualAppointment.ReadWrite.All, the application (app role) ID is bf46a256-f47d-448f-ab78-f226fff08d40. These are the real Microsoft Graph identifiers and can be used directly in an app registration manifest.