Outlook 日历 / Microsoft 365 日历 SECURE API CLI。当用户需要列出、搜索或读取 Outlook / Microsoft 365 日历事件,以及创建……
移植前景日历是一项面向实际任务的技能,主要用于使用移植日历来列出、 搜索和读取 Outlook / Microsoft 365 日历事件;用 -jc 旗标来优化 AI 输出;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用 porteden calendar 列出、搜索并读取当前账户中的 Outlook / Microsoft 365 日历事件。使用 -jc 参数 可获得 AI 优化的输出格式。
若尚未安装 porteden:运行 brew install porteden/tap/porteden(或 go install github.com/porteden/cli/cmd/porteden@latest)。
porteden auth login — 自动打开浏览器,使用 Microsoft 账户(个人、工作或学校账户)登录,凭据将安全存储于系统密钥环中porteden auth login --token — 令牌将存入系统密钥环porteden auth statusPE_API_KEY,CLI 将自动使用该密钥(无需额外登录)。create、update、delete 和 respond 均会修改共享状态,并通常向与会者发送通知。执行任一变更命令前,须回显目标 profile/账户、日历 ID 与事件 ID(对 create 则为摘要 + 时间)、如有变更则列出与会者列表,以及拟执行的具体变更内容,并等待用户明确确认。默认情况下 update --notify 为 true(即发送通知);如需禁用通知,请显式指定 --notify=false。delete 默认向与会者发送取消通知;如需跳过该邮件,请添加 --no-notify 参数。--profile(或环境变量 PE_PROFILE)隔离不同 Outlook 日历账户,确保任务仅影响其所需日历。登录时应优先选择最窄范围的 Microsoft Graph 权限范围。任务完成后——尤其在共用设备上——请运行 porteden auth logout 清除密钥环中的条目,并前往 Microsoft 账户的安全页面主动撤销访问权限(个人账户:account.microsoft.com → 隐私 → 具有你数据访问权限的应用和服务;工作/学校账户:myaccount.microsoft.com → 你已授权的应用),以防令牌意外泄露。porteden calendar calendars -jc--tomorrow、--week、--days N):porteden calendar events --today -jcporteden calendar events --from 2026-02-01 --to 2026-02-07 -jcporteden calendar events --week --all -jcporteden calendar events --week --include-cancelled -jcporteden calendar events -q "meeting" --today -jcporteden calendar events --week --attendees "alice@example.com,bob@example.com" -jcporteden calendar by-contact "user@example.com" -jc(或使用 --name "John")porteden calendar event -jc porteden calendar freebusy --week -jc(也可通过 --calendars 123,456 指定特定日历)porteden calendar create --calendar --summary "Meeting" --from "..." --to "..." --location "Room A" --attendees "a@b.com,c@d.com" porteden calendar create --calendar --summary "Standup" --from "..." --to "..." --recurrence "RRULE:FREQ=WEEKLY;COUNT=10" porteden calendar create --calendar --summary "Holiday" --from "2026-07-04T00:00:00Z" --to "2026-07-05T00:00:00Z" --all-day porteden calendar update --summary "New Title" (还可使用 --from、--to、--location 等参数)porteden calendar update --add-attendees "new@example.com" (也可使用 --remove-attendees;默认发送通知,如需禁用请加 --notify=false)porteden calendar delete (添加 --no-notify 可跳过向与会者发送取消邮件)porteden calendar respond accepted (可选值: declined、tentative)事件对象返回两个独立字段,请勿混淆。
事件级 status(位于 event.status):
confirmed — 正常/已排期事件tentative — 服务端标记为暂定的事件cancelled — 事件已被取消或删除(仅在指定 --include-cancelled 时可见)与会者级 response(位于 event.attendees[].response):
needs_action — 邀请对象尚未响应accepted — 已确认出席(RSVP Yes)tentative — 已暂定出席(RSVP Maybe)declined — 已拒绝出席(RSVP No)当当前用户是事件组织者时,调用 respond 将返回 409 CANNOT_RSVP_AS_ORGANIZER(组织者不可对自己发起的事件 RSVP);当当前用户不在与会者列表中时,则返回 409 NOT_AN_ATTENDEE。这两类错误均为不可重试的前置条件错误,请直接向用户展示错误信息,而非循环重试。
2026-02-01T10:00:00Z--all-day 参数,使用 UTC 时间的午夜到次日午夜(例如 2026-07-04T00:00:00Z 至 2026-07-05T00:00:00Z);API 将返回 allDay: true 和 durationMinutes: 1440startUtc、endUtc、durationMinutes、status、allDay、organizer、attendees[]、joinUrl 和 metaPE_PROFILE=work 可避免每次命令都重复指定 --profile。-jc 是 --json --compact 的简写:过滤冗余信息、截断描述文本、限制与会者数量、降低 token 消耗。--all 可自动获取全部分页结果。响应体中的 meta 字段在 /events 和 /events/by-contact 接口下均包含 count、totalCount、hasMore、limit、offset、from、to 等字段。手动分页示例:--limit 100 --offset 0,随后 --offset 100,依此类推。AAMkAGI2...AAA= 的不透明 base64 字符串)将在 externalId 字段中返回。可通过 porteden calendar calendars -jc 获取有效日历 ID。My Calendars、Other Calendars、Shared Calendars、Birthdays、各国家/地区节假日日历等)。CLI 在列表输出中将各日历组内日历作为独立条目暴露。by-contact 对传入的位置参数邮箱地址进行子串匹配(因此 "@acme.com" 可匹配该域名下所有用户);--name 则优先匹配与会者的显示名称(如存在),否则退化为匹配邮箱地址的本地部分(local-part)(因此 --name alice 可匹配 alice@example.com,但 --name acme 不会 匹配 alice@acme.com)。porteden calendar calendars -jc 获取合法日历 ID。QUOTA_EXCEEDED(月度配额已达上限)与 RATE_LIMITED(瞬时速率受限),二者通过响应体内的 code 字段区分;响应头中同时携带 x-monthly-limit/x-monthly-used/x-monthly-remaining 用于监控月度配额使用情况。被配额拦截的请求不消耗配额额度。PE_API_KEY、PE_PROFILE、PE_TIMEZONE、PE_FORMAT、PE_COLOR、PE_VERBOSE。