Install
openclaw skills install @hith3sh/onenoteManage OneNote notebooks, sections, pages, and page content via Microsoft Graph API. Use this skill when users want to read, create, or update OneNote pages, manage sections and notebooks, and work with page content as HTML via the OneNote API.
openclaw skills install @hith3sh/onenoteAccess OneNote via Microsoft Graph API with managed OAuth authentication. Manage notebooks, sections, and pages; read and update page content as HTML; and navigate the OneNote hierarchy.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure OneNote API access yourself.
| Step 1: Install | Step 2: Pair Account | Step 3: Connect OneNote |
|---|---|---|
![]() | ![]() | App-specific connection GIF coming soon |
| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect OneNote |
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Microsoft Graph │
│ (User Chat) │ │ (OAuth) │ │ (OneNote API) │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect OneNote │ │
│ │ 4. Secure Token │
│ │ 5. Proxy Requests │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ OneNote │
│ File │ │ Auth │ │ Notebooks│
└──────────┘ └──────────┘ └──────────┘
Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for OneNote again."
# List user's notebooks
clawlink_call_tool --tool "onenote_list_user_notebooks" --params '{"user_id": "me"}'
# List sections in a notebook
clawlink_call_tool --tool "onenote_list_user_notebook_sections" --params '{"user_id": "me", "notebook_id": "NOTEBOOK_ID"}'
# Get page content
clawlink_call_tool --tool "onenote_get_me_section_page_content" --params '{"section_id": "SECTION_ID", "page_id": "PAGE_ID"}'
All OneNote tool calls are authenticated automatically by ClawLink using the user's connected Microsoft account.
No API key is required in chat. ClawLink stores the OAuth token securely and injects it into every Microsoft Graph request on the user's behalf.
clawlink_begin_pairing if it is not configured yet.clawlink_list_integrations to verify the connection is active.clawlink_list_integrations
Response: Returns all connected integrations. Look for onenote in the list.
clawlink_list_tools --integration onenote
Response: Returns the live tool catalog for OneNote.
If OneNote tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration onenote| Tool | Description | Mode |
|---|---|---|
onenote_list_user_notebooks | List all notebooks for a user | Read |
onenote_get_user_notebook | Get notebook properties by ID | Read |
onenote_get_notebook_from_web_url | Get notebook from SharePoint or OneNote URL | Read |
onenote_create_me_notebooks | Create a new notebook for the signed-in user | Write |
onenote_copy_onenote_site_notebook | Copy a SharePoint site notebook | Write |
onenote_copy_onenote_group_notebook | Copy a Microsoft 365 group notebook | Write |
| Tool | Description | Mode |
|---|---|---|
onenote_list_user_notebook_sections | List sections in a user's notebook | Read |
onenote_get_site_sections | Get a SharePoint site section by ID | Read |
onenote_get_group_sections | Get a Microsoft 365 group section by ID | Read |
onenote_create_site_notebooks_sections | Create a section in a SharePoint notebook | Write |
onenote_create_me_sections_pages | Create a page in a user's section | Write |
onenote_create_user_notebooks_sections | Create a section in a user's notebook | Write |
onenote_update_me_sections | Rename a section | Write |
onenote_update_site_notebooks_sections | Update a SharePoint section | Write |
onenote_update_user_notebooks_sections | Update a user's section | Write |
onenote_copy_section_to_notebook2 | Copy a section to another notebook | Write |
onenote_copy_section_to_notebook_for_user2 | Copy a section to a user's notebook | Write |
| Tool | Description | Mode |
|---|---|---|
onenote_list_me_onenote_sections_pages4 | List pages in a user's section | Read |
onenote_get_me_section_page_content | Get HTML content of a user's page | Read |
onenote_get_onenote_user_page_content | Get HTML content of a user's page by ID | Read |
onenote_list_site_pages_content | Get HTML content of a SharePoint site page | Read |
onenote_get_site_pages_preview | Get text preview of a SharePoint page | Read |
onenote_create_me_sections_pages | Create a new page in a section | Write |
onenote_create_site_notebooks_sections | Create a page in a SharePoint site section | Write |
onenote_update_me_page_content | Update page content via HTML patch commands | Write |
onenote_update_onenote_page_content | Update a group page's content | Write |
onenote_update_site_pages_content | Update a SharePoint page's content | Write |
onenote_delete_onenote_group_sections_pages2 | Delete a page from a group notebook | Write |
onenote_delete_site_pages | Delete a SharePoint site page | Write |
onenote_delete_user_onenote_sections_pages | Delete a page from a user's section | Write |
onenote_delete_user_pages | Delete a user's OneNote page | Write |
onenote_delete_onenote_group_section_group_page_content | Delete page content from a section group | Write |
| Tool | Description | Mode |
|---|---|---|
onenote_list_group_notebook_section_groups | List section groups in a group notebook | Read |
onenote_get_notebook_section_group | Get a section group from a group notebook | Read |
onenote_list_onenote_group_section_groups_section_groups2 | List nested section groups | Read |
onenote_list_group_section_groups_sections | List sections in a section group | Read |
onenote_count_notebooks_section_groups_sections | Count sections in a section group | Read |
onenote_create_onenote_group_notebooks_section_groups | Create a section group in a group notebook | Write |
onenote_create_group_section_groups_sections | Create a section in a section group | Write |
onenote_update_site_section_groups_sections | Update a section in a section group | Write |
| Tool | Description | Mode |
|---|---|---|
onenote_get_onenote_group_operations | Check status of a group async operation | Read |
onenote_get_onenote_site_operations | Check status of a SharePoint async operation | Read |
clawlink_call_tool --tool "onenote_list_user_notebooks" \
--params '{
"user_id": "me"
}'
clawlink_call_tool --tool "onenote_get_me_section_page_content" \
--params '{
"section_id": "SECTION_ID",
"page_id": "PAGE_ID"
}'
clawlink_call_tool --tool "onenote_create_me_sections_pages" \
--params '{
"section_id": "SECTION_ID",
"html": "<html><head><title>New Page</title></head><body><p>Page content here.</p></body></html>"
}'
clawlink_call_tool --tool "onenote_update_me_page_content" \
--params '{
"page_id": "PAGE_ID",
"commands": [
{
"action": "append",
"target": "body",
"content": "<p>New paragraph added via API.</p>"
}
]
}'
clawlink_list_integrations to confirm OneNote is connected.clawlink_list_tools --integration onenote to see the live catalog.clawlink_search_tools with a short query and integration onenote.┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ list → get → search → describe → call │
│ │
│ Example: List notebooks → Read sections → Show results │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ list → get → describe → preview → confirm → call │
│ │
│ Example: Describe tool → Preview changes → User approves │
│ → Execute update │
└─────────────────────────────────────────────────────────────┘
clawlink_describe_tool first.whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.clawlink_preview_tool first.clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.html, head, and body tags.?*/:<>|&#''%~.?*\/:<>|&'".displayName property can be updated on sections — other properties are read-only.| Status / Error | Meaning |
|---|---|
| Tool not found | The tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration onenote. |
| Missing connection | OneNote is not connected. Direct the user to https://claw-link.dev/dashboard?add=onenote. |
notFound | Notebook, section, or page does not exist. Check the ID. |
InvalidArgument | Invalid parameter or missing required field. Review the tool schema with clawlink_describe_tool. |
| Operation pending | Async operation still in progress. Poll the Operation-Location endpoint. |
| Write rejected | User did not confirm a write action. Always confirm before executing writes. |
openclaw plugins list
/new as a standalone message to reload the catalog.openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
/new again and retry.onenote.clawlink_describe_tool to verify parameter names and types before calling.clawlink_preview_tool first.Powered by ClawLink — an integration hub for OpenClaw
