MS Graph client - Code: InvalidAuthenticationToken Message: Access token has expired or is not yet valid.

Working on creating an appointment. After a couple of hours of application on the browser. it starts throwing an exception as
Code: InvalidAuthenticationToken
Message: Access token has expired or is not yet valid.
The same will be thrown even after logout the session and login in again. I need to restart the azure app service to get it worked. Please help here to resolve this issue or let me know if I am missing anything.
Below is my code:
IConfidentialClientApplication app = MsalAppBuilder.BuildConfidentialClientApplication();
AuthenticationResult result = null;
var account = await app.GetAccountAsync(ClaimsPrincipal.Current.GetAccountId());
string[] scopes = { "User.Read" };
result = await app.AcquireTokenSilent(scopes, account).ExecuteAsync().ConfigureAwait(false);
GraphServiceClient graphClient = new GraphServiceClient(
new DelegateAuthenticationProvider(
(requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", result.AccessToken);
return Task.FromResult(0);
}));
Calendar calendar = new Calendar();
try
{
calendar = await graphClient.Me.Calendar.Request().GetAsync();
}
catch (Exception ex)
{
calendar = await graphClient.Users["loggedin user email"].Calendar.Request().GetAsync();
}
TimeZone curTimeZone = TimeZone.CurrentTimeZone;
var curTimeZoneName = "";
curTimeZoneName = "UTC";
var attendees = new List<Attendee>();
attendees.Add(new Attendee
{
EmailAddress = new EmailAddress
{
Address = "<attendee email>",
Name = "<attendee name>"
},
Type = AttendeeType.Required
});
var @event = new Event
{
Subject = "Test appointment ",
Body = new ItemBody
{
ContentType = BodyType.Html,
Content = "Test appointment "
},
Start = new DateTimeTimeZone
{
DateTime = DateTime.Now.ToUniversalTime().ToString(),
TimeZone = "UTC",
},
End = new DateTimeTimeZone
{
DateTime = DateTime.Now.AddMinutes(15).ToUniversalTime().ToString(),
TimeZone = "UTC",
},
Location = new Microsoft.Graph.Location
{
DisplayName = "Teams Call"
},
Attendees = attendees,
TransactionId = Guid.NewGuid().ToString(),
IsOnlineMeeting = true,
OnlineMeetingProvider = OnlineMeetingProviderType.TeamsForBusiness
};
try
{
var eventData = await graphClient.Me.Calendars[calendar.Id].Events
.Request()
.AddAsync(@event);
}
catch (Exception ex)
{
var eventData = await graphClient.Users["loggedin user email"].Calendars[calendar.Id].Events
.Request()
.AddAsync(@event);
}