Using graph api you can get current login user's office location and country details.
Based on it you can filter the holiday and event list in web part.
GET https://graph.microsoft.com/v1.0/me { "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity", "businessPhones": [ "+1 412 555 0109" ], "displayName": "Megan Bowen", "givenName": "Megan", "jobTitle": "Auditor", "mail": "[email protected]", "mobilePhone": null, "officeLocation": "12/1110", "preferredLanguage": "en-US", "surname": "Bowen", "userPrincipalName": "[email protected]", "id": "48d31887-5fad-4d73-a9f5-3c356e68a038" } GET https://graph.microsoft.com/beta/me { "@odata.context": "https://graph.microsoft.com/beta/$metadata#users/$entity", "id": "48d31887-5fad-4d73-a9f5-3c356e68a038", "deletedDateTime": null, "accountEnabled": true, "ageGroup": null, "businessPhones": [ "+1 412 555 0109" ], "city": "Pittsburgh", "createdDateTime": "2017-07-29T03:07:25Z", "creationType": null, "companyName": null, "consentProvidedForMinor": null, "country": "United States", "department": "Finance", "displayName": "Megan Bowen", "employeeId": null, "employeeHireDate": null, "employeeType": null, "faxNumber": null, "givenName": "Megan", .... }