You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python读取Outlook当日日历事件(无需Django框架)

无需Django实现Outlook当日日历事件获取的方案

你完全不需要搭建Django这类Web框架,直接写本地Python脚本就能实现,核心用微软身份验证库MSAL + 普通HTTP请求即可,步骤如下:

  • 先在Azure应用注册页面创建一个公共客户端类型的应用,委派权限勾选Calendars.Read,无需配置Web类重定向URI
  • 安装依赖库:pip install msal requests
  • 极简实现逻辑参考:
import msal
import requests
from datetime import datetime, timedelta

# 替换为你自己注册应用的客户端ID
CLIENT_ID = "你的应用客户端ID"
SCOPES = ["https://graph.microsoft.com/Calendars.Read"]

# 初始化MSAL客户端,走交互式登录(本地弹出浏览器登录即可)
app = msal.PublicClientApplication(CLIENT_ID, authority="https://login.microsoftonline.com/common")
result = app.acquire_token_interactive(scopes=SCOPES)

if "access_token" in result:
    # 构造当日的起止时间,转ISO格式
    today_start = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0).isoformat() + "Z"
    today_end = (datetime.now() + timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0).isoformat() + "Z"
    # 调用Microsoft Graph接口拉取当日日历视图
    headers = {"Authorization": f"Bearer {result['access_token']}"}
    response = requests.get(
        "https://graph.microsoft.com/v1.0/me/calendarView",
        headers=headers,
        params={"startDateTime": today_start, "endDateTime": today_end}
    )
    events = response.json().get("value", [])
    # 遍历输出事件
    for event in events:
        print(f"事件标题:{event['subject']},开始时间:{event['start']['dateTime']}")
else:
    print("登录失败:", result.get("error_description"))
GET请求基础说明
  • GET <url>是HTTP协议定义的标准请求方法的表述格式,核心作用是从指定的服务端地址获取资源,本身不会修改服务端的原有数据,属于只读类请求
  • 适用场景:所有仅需要查询、拉取数据的API调用场景,你获取日历事件的需求就完全符合GET请求的适用范围
  • 实际使用不需要手动写原始GET命令,Python中可以直接用requests.get()方法封装调用,命令行场景可以用curl工具发送GET请求,核心需要配置的就是请求地址、请求头(比如身份验证的token信息)、查询参数即可
  • 调用微软Graph API的核心逻辑就是:先通过身份验证拿到访问令牌,再把令牌放到请求头里,用对应的HTTP方法(这里拉取用GET)调用指定的接口地址,就能拿到返回数据。

内容的提问来源于stack exchange,提问作者Dragos Spiridon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:06:05