Why does the Availability API fail for Google room resources even with proper admin scopes?

Even with the required admin.directory.resource.calendar.readonly scope, Google requires an additional manual step before room calendars can be accessed via the Availability API.

Required Steps for Google Room Resources:

  1. Authenticate with admin scopes - The admin user must authenticate with admin.directory.resource.calendar.readonly scope
  2. Fetch room resources - Use GET /v3/grants/{admin_grant_id}/resources to retrieve available rooms
  3. Manually add rooms to Google Calendar - The admin user must:
    • Go to Google Calendar web interface
    • Under "Other calendars", select "Browse resources"

    • Find and add the specific room resources they want to access
    • This subscribes the user to those room calendars
  4. Use Availability API - After manual subscription, the Availability API will work:
{
  "participants": [
    {
      "email": "admin@example.com",
      "calendar_ids": [
        "room@resource.calendar.google.com"
      ]
    }
  ]
}

Why This Happens:

Google's admin.directory.resource.calendar.readonly scope allows listing room resources but doesn't automatically grant calendar access to those resources. The manual subscription step in Google Calendar UI establishes the necessary calendar permissions.

Error Symptoms:

  • GET /v3/grants/{grant_id}/resources works successfully
  • Availability API returns: "None of calendars provided [room_id] belong to [user_email]"
  • Event creation with room resources may still work (different permission model)

Microsoft Comparison:

Microsoft's Place.Read.All scope provides direct access to room calendars without requiring manual subscription steps.

Workaround:

For automated workflows, consider using the Free/Busy API (POST /v3/grants/{admin_grant_id}/calendars/free-busy) which may have different permission requirements, or ensure admin users complete the manual subscription process during setup.


 

Updated

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.