agentleFS
HybridAIOneHybridAIOne/hybridclaw/skills/microsoft-365/SKILL.md

microsoft-365

Skill159 starsChanged 6 months agoMITView on GitHub

Read Microsoft 365 data through Microsoft Graph: Outlook mail/calendar, OneDrive/SharePoint files, Teams, chats, and user profile.

  • Reads credentials

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 6 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill for read-only Microsoft 365 workflows backed by Microsoft Graph.

    line 48
  2. Distinctive:

    read the signed-in user's Microsoft 365 profile

    line 52
  3. Distinctive:

    read calendar events in a requested time window

    line 54
  4. Very specific:

    Use OAuth login for normal setup.

    line 78
  5. Distinctive:

    Use a Microsoft Entra app registration with a localhost/mobile-desktop redirect URI matching the callback URL printed by the login command.

    line 83
  6. Distinctive:

    Never paste client secrets, refresh tokens, or access tokens into chat.

    line 91
  7. Distinctive:

    Start by building a helper request:

    line 101
  8. Very specific:

    If using the built-in http_request tool directly, pass only the emitted httpRequest object.

    line 107
  9. Very specific:

    If a call returns 401, 403, Authorization_RequestDenied, or insufficient_claims, stop after the first failure and tell the operator to run …

    line 109
  10. Very specific:

    If Graph returns 429, respect Retry-After.

    line 113

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Microsoft 365

Use this skill for read-only Microsoft 365 workflows backed by Microsoft Graph.

Scope

  • read the signed-in user's Microsoft 365 profile
  • list or search Outlook messages
  • read calendar events in a requested time window
  • list or search recent OneDrive files
  • list joined Teams, team channels, channel messages, and recent chats
  • interpret common Microsoft Graph auth, permission, and throttling errors

This skill is read-only. Do not send mail, create or update calendar events, modify files, post Teams messages, or change tenant state with this skill.

Credential Rules

HybridClaw stores Microsoft Entra OAuth refresh-token material in encrypted runtime secrets. At request time the gateway mints a short-lived Microsoft Graph access token and injects it only for graph.microsoft.com.

Recommended setup:

hybridclaw auth login microsoft365 \
  --client-id "<entra-app-client-id>" \
  --tenant-id organizations \
  --account you@example.com
hybridclaw auth status microsoft365

Use OAuth login for normal setup. If an operator must manually replace stored Microsoft credential material, advise this order: browser admin at /admin/secrets, /secret set ... in browser /chat or TUI, then hybridclaw secret set ... in a local console.

Use a Microsoft Entra app registration with a localhost/mobile-desktop redirect URI matching the callback URL printed by the login command. The default scope set is read-only: User.Read, Mail.Read, Calendars.Read, Files.Read.All, Sites.Read.All, Team.ReadBasic.All, Channel.ReadBasic.All, ChannelMessage.Read.All, Chat.Read, plus offline_access.

Tenant admins may need to grant consent for the broader Graph read scopes. Never paste client secrets, refresh tokens, or access tokens into chat.

For direct Graph calls outside this helper, configure a route:

hybridclaw secret route add https://graph.microsoft.com/v1.0/ microsoft-oauth Authorization Bearer

Default Workflow

  1. Start by building a helper request:
    node skills/microsoft-365/m365.cjs --format json http-request ...
  2. For live reads, prefer the helper run command so the CJS script owns endpoint selection, gateway submission, and auth-error handling.
  3. If using the built-in http_request tool directly, pass only the emitted httpRequest object. Do not handcraft Microsoft Graph requests from memory.
  4. If a call returns 401, 403, Authorization_RequestDenied, or insufficient_claims, stop after the first failure and tell the operator to run hybridclaw auth status microsoft365, verify tenant admin consent, and reconnect with hybridclaw auth login microsoft365 if needed.
  5. If Graph returns 429, respect Retry-After; do not loop retries.

Command Contract

Profile:

node skills/microsoft-365/m365.cjs --format json run me
node skills/microsoft-365/m365.cjs --format json http-request me

Outlook mail:

node skills/microsoft-365/m365.cjs --format json run mail recent --top 10
node skills/microsoft-365/m365.cjs --format json run mail search --query "from:alex@example.com" --top 10

Calendar:

node skills/microsoft-365/m365.cjs --format json run calendar events \
  --start 2026-06-26T00:00:00Z \
  --end 2026-06-27T00:00:00Z \
  --timezone Europe/Berlin

OneDrive and SharePoint-backed files:

node skills/microsoft-365/m365.cjs --format json run drive recent --top 25
node skills/microsoft-365/m365.cjs --format json run drive search --query "quarterly plan" --top 10

Teams and chats:

node skills/microsoft-365/m365.cjs --format json run teams joined --top 25
node skills/microsoft-365/m365.cjs --format json run teams channels --team-id "<team-id>"
node skills/microsoft-365/m365.cjs --format json run teams messages --team-id "<team-id>" --channel-id "<channel-id>" --top 10
node skills/microsoft-365/m365.cjs --format json run chats list --top 10

Output Rules

Summarize returned JSON into concise user-facing answers. For mail, show sender, subject, received time, read state, and a short snippet. For calendar events, group by day and include timezone. For files, show name, modified time, and link. For Teams/chats, show display names, timestamps, and links or IDs needed for a follow-up read.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.