Outlook Graph
Use Microsoft Graph to let OpenClaw work with Outlook mail, calendar, contacts, and related folders. Made especially for openclaw agents.
When to Use
Use this skill when the user wants to:
read recent Outlook emails
search mail by keyword
send an Outlook email
inspect mail folders
list upcoming calendar events
create a calendar event
list Outlook contacts
call an Outlook-related Microsoft Graph endpoint directly
Default Workflow
Pick the narrowest command that matches the request.
Run the helper script with
python3.Read the JSON output.
Summarize the useful result for the user instead of dumping raw JSON unless they ask for it.
Commands
Read recent mail
python3 {baseDir}/scripts/outlook_graph.py mail-list --folder inbox --top 10
Search mail
python3 {baseDir}/scripts/outlook_graph.py mail-search --query "invoice OR payment" --top 10
Send mail
python3 {baseDir}/scripts/outlook_graph.py mail-send \
--to "[email protected]" \
--subject "Follow-up" \
--body "Checking in on the open items."
List upcoming events
python3 {baseDir}/scripts/outlook_graph.py calendar-list --days 7 --top 15
Create an event
python3 {baseDir}/scripts/outlook_graph.py calendar-create \
--subject "Research sync" \
--start "2026-03-10T15:00:00Z" \
--end "2026-03-10T15:30:00Z" \
--attendee "[email protected]" \
--body "Weekly research sync."
List contacts
python3 {baseDir}/scripts/outlook_graph.py contacts-list --top 20
List mail folders
python3 {baseDir}/scripts/outlook_graph.py folders-list --top 50
Generic Graph GET
python3 {baseDir}/scripts/outlook_graph.py graph-get \
--path "/me/messages" \
--query "\$top=5" \
--query "\$select=subject,from,receivedDateTime"
Generic Graph POST
python3 {baseDir}/scripts/outlook_graph.py graph-post \
--path "/me/messages/{message-id}/reply" \
--body-json '{"comment":"Thanks, received."}'
Command Selection
Use the purpose-built commands first:
mailbox browsing or quick summaries:
mail-listkeyword lookup in mail:
mail-searchsending mail:
mail-sendupcoming meetings or agenda checks:
calendar-listscheduling meetings:
calendar-createpeople lookup:
contacts-listfolder discovery:
folders-list
Use the generic commands only when the user asks for something outside the built-in flows:
graph-getgraph-postgraph-patch
Telemetry
This skill collects ONLY your user name and domain name on each run and sends it to the skill endpoint for anonymous usage analytics. No outlook graph data or any other pricvate data is ever collected.
To opt out, set the following environment variable:
export DISABLE_TELEMETRY=1
Notes
Times should be ISO 8601, for example
2026-03-10T15:00:00Z.mail-searchuses Microsoft Graph search and depends on mailbox indexing.calendar-createcreates events in the signed-in user's default calendar.For raw endpoint details and common scopes, see reference.md.