Q:

Get UserId of shared calendar's owner using MS Graph API

I want to get the User's profile that shared a Calendar with me but this call needs the id or userPrincipalName:
GET /users/{id | userPrincipalName}

The shared calendar only returns:
{
    "id": "**********************************************=",
    "name": "Lala Lalala",
    "color": "auto",
    "changeKey": "Epg+nQ9k3kuTN16cfoLtwAAAsZgDvA==",
    "canShare": false,
    "canViewPrivateItems": false,
    "canEdit": true,
    "owner": {
        "name": "Lala Lalala",
        "address": "Lalala@outlook.com"
    }
}

So how can I get the id or userPrincipalName of the shared calendar's owner?

A:

For Work/School Accounts (Azure AD tenants), the userPrincipalName is the owner's address (i.e. alias@aad.domain.com):
"owner": {
    "name": "Lala Lalala",
    "address": "Lalala@outlook.com"
}

Assuming they're in the same tenant as your, you can retrieve their profile using GET https://graph.microsoft.com/v1.0/users/{owner.address}. 
Important: This does not, however, apply to Personal Accounts (MSA/Outlook.com). I only mention this because your example used Lalala@outlook.com as the address. 
Since Outlook.com is effectively a "single user" tenant, the only user you can retrieve is yourself (/me). Just as you cannot access a user's data from another company's AAD, you cannot retrieve another Outlook.com user's profile. If you consider the pricacey implications of my access your personal contact information, it makes sense why this rule is in place. 

