Buy Me a Coffee? Your support is much appreciated!
Source Code:
import requests
from rich import console
from ms_graph import generate_access_token, GRAPH_API_ENDPOINT
console = console.Console()
APP_ID = '<APP ID>'
SCOPES = ['Calendars.ReadWrite']
# Step 1. Generate Access Token
access_token = generate_access_token(APP_ID, SCOPES)
headers = {
'Authorization': 'Bearer ' + access_token['access_token']
}
# Step 2.1 Create an event
def construct_event_detail(event_name, **event_details):
request_body = {
'subject': event_name
}
for key, val in event_details.items():
request_body[key] = val
return request_body
# response1_create = requests.post(
# GRAPH_API_ENDPOINT + f'/me/events',
# headers=headers,
# json=construct_event_detail('Movie Night')
# )
# console.print(response1_create.json())
# delete an event
event_id1 = response1_create.json()['id']
resposne1_delete = requests.delete(
GRAPH_API_ENDPOINT + f'/me/events/{event_id1}',
headers=headers
)
print(resposne1_delete.status_code)
# Step 2.2 Example (Detailed)
event_name = 'Work Holiday'
body = {
# html or text
'contentType': 'html',
'content': '<b>2 weeks vacation</b>'
}
start = {
'dateTime': '2022-04-25T08:00:00',
'timeZone': 'America/Los_Angeles'
}
end = {
'dateTime': '2022-05-02T17:00:00',
'timeZone': 'America/Los_Angeles'
}
location = {
'displayName': 'Tokyo, Japan'
}
attendees = [
{
'emailAddress': {
'address': 'jiejenn@learndataanalysis.org'
},
'type': 'required' # or optional
}
]
response2_create = requests.post(
GRAPH_API_ENDPOINT + f'/me/events',
headers=headers,
json=construct_event_detail(
event_name,
body=body,
location=location,
start=start,
end=end,
attendees=attendees,
)
)
console.print(response2_create.json())
event_id2 = response2_create.json()['id']
resposne2_delete = requests.post(
GRAPH_API_ENDPOINT + f'/me/events/{event_id2}/cancel',
headers=headers
)
print(resposne2_delete.status_code)
print(resposne2_delete.reason)