Add CalenderExport.py
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
import requests
|
||||
import pandas as pd
|
||||
from msal import ConfidentialClientApplication
|
||||
|
||||
# Replace with your values
|
||||
CLIENT_ID = "2a1cb9f1-2c0c-46ad-9887-fd2bb835bc2e"
|
||||
CLIENT_SECRET = "8fH8Q~RAzS0Q8dG.PEBtb~twd6Nh5Bwp2_o1idzx"
|
||||
AUTHORITY = "https://login.microsoftonline.com/40f52dd9-93f5-4e52-b871-652ef67bb0d0"
|
||||
SCOPES = ["https://graph.microsoft.com/.default"]
|
||||
|
||||
app = ConfidentialClientApplication(
|
||||
CLIENT_ID,
|
||||
authority=AUTHORITY,
|
||||
client_credential=CLIENT_SECRET
|
||||
)
|
||||
|
||||
result = app.acquire_token_for_client(scopes=SCOPES)
|
||||
access_token = result.get("access_token")
|
||||
|
||||
if access_token:
|
||||
# Example: Get user ID for a given email
|
||||
headers = {"Authorization": f"Bearer {access_token}"}
|
||||
|
||||
url = "https://graph.microsoft.com/v1.0/users"
|
||||
response = requests.get(url, headers=headers).json()
|
||||
print(response)
|
||||
|
||||
email = "zisco@zisco.at"
|
||||
url = f"https://graph.microsoft.com/v1.0/users/{email}"
|
||||
|
||||
response = requests.get(url, headers=headers).json()
|
||||
user_id = response.get("id")
|
||||
print("User ID:", user_id)
|
||||
|
||||
user_id = "f92b34ea-a2ea-4a09-b9a8-012988cd4417"
|
||||
user_id = "35bf5591-13f2-4c1a-9d1b-8818eb0eaa43"
|
||||
|
||||
# Get events
|
||||
#headers = {"Authorization": f"Bearer {access_token}"}
|
||||
url = f"https://graph.microsoft.com/v1.0/users/{user_id}/calendar/events?$top=10000"
|
||||
events = []
|
||||
|
||||
while url:
|
||||
res = requests.get(url, headers=headers).json()
|
||||
events.extend(res.get("value", []))
|
||||
url = res.get("@odata.nextLink") # pagination
|
||||
|
||||
# Parse to DataFrame
|
||||
df = pd.DataFrame([{
|
||||
"Subject": e.get("subject"),
|
||||
"Start": e["start"]["dateTime"],
|
||||
"End": e["end"]["dateTime"],
|
||||
"Location": e.get("location", {}).get("displayName"),
|
||||
"Body": e.get("bodyPreview")
|
||||
} for e in events])
|
||||
|
||||
# Save to CSV
|
||||
df.to_csv("outlook_calendar_export.csv", index=False)
|
||||
print("Exported to outlook_calendar_export.csv")
|
||||
else:
|
||||
print("Auth failed:", result.get("error_description"))
|
||||
|
||||
|
||||
|
||||
#bafad0ef-0e6e-4388-b335-e6a8a373bebd
|
||||
Reference in New Issue
Block a user