add_page_resources
ChatGPTAdd bounded staged images or file attachments to an existing OneNote page. Microsoft Graph receives raw binary multipart parts referenced by a Commands JSON part. The tool input remains file references so callers never need to put base64 data into the model-visible action arguments.
append_to_page
ChatGPTAppend HTML content to an existing page in the user's notebooks.
append_to_shared_page
ChatGPTAppend HTML content to a page in a known group or site notebook.
copy_page_to_section
ChatGPTStart one non-idempotent asynchronous copy into a personal or group section. Call this once, retain the returned operation reference, and poll get_operation. An explicit HTTP 429 rejects the request: retry after Retry-After, or use exponential backoff if no delay is supplied. For other errors, Microsoft may have accepted the copy before the error surfaced; inspect the destination before another copy or replacement page.
create_notebook
ChatGPTCreate a new personal OneNote notebook for the signed-in user. Use this only when the user explicitly asks for a new notebook. Prefer list_notebooks plus create_section when the destination notebook already exists.
create_page
ChatGPTCreate a new page in a personal or known shared OneNote section. Use section_id after location discovery for a specific notebook. Use section_name only for a top-level section in the default notebook, where Microsoft will create the section if needed. Leave both unset to create in the default section of the default notebook. For a known group or site, provide resource_type, resource_id, and section_id.
create_section
ChatGPTCreate a section in exactly one known notebook or section group. Resolve the destination with list_notebooks, list_sections, and list_section_groups first. Provide notebook_id for a top-level section or section_group_id for a nested section, but never both.
create_section_group
ChatGPTCreate a section group in exactly one notebook or parent section group.
delete_page
ChatGPTPermanently delete one page after the user explicitly confirms the removal.
export_page_as_markdown
ChatGPTExport one personal OneNote page as a downloadable Markdown file. The conversion preserves ordinary headings, paragraphs, emphasis, lists, checklists, simple tables, and safe links. Images, attachments, spatial layout, and unsupported embeds are not included. Use fetch_page_resource separately when the user also needs an observed personal-page resource.
fetch_page
ChatGPTFetch metadata and size-bounded HTML content for one page. Enable include_ids before a targeted update, checklist conversion, or checklist completion. Leave it false for ordinary reading and summarization.
fetch_page_resource
ChatGPTDownload a OneNote page image or attachment as a reusable file reference. Read a fresh get_page_text or get_page_tables result and use a non-null images[].resource_id with that page ID. list_page_resources also returns exact resource IDs, file names, and media type hints. Alternatively, fetch_page HTML supplies resource IDs in img src or data-fullres-src URLs and object data URLs. The page must belong to a notebook owned by the signed-in account, and the resource must still be referenced by that page. For visual questions, open the returned file with an image-viewing tool. Use the materialized workspace_path when available, or download file_uri with the available file tools. Downloading alone does not read the image.
fetch_shared_page
ChatGPTFetch a page from a known Microsoft 365 group or SharePoint site notebook. Enable include_ids before a targeted shared-page update. Leave it false for ordinary reading and summarization.
get_operation
ChatGPTGet the latest status of a long-running OneNote operation.
get_page_tables
ChatGPTReturn bounded table structures and cell text from one known page. Use this for table-oriented questions where fetch_page HTML is awkward. Nested tables are returned independently, and nested-table text is not duplicated into an outer cell. Generated table targets belong to this snapshot and can become stale after any page mutation. Images are inventoried but not read; use fetch_page_resource for a supported resource, then inspect the returned file before answering visual questions.
get_page_text
ChatGPTReturn bounded visible text blocks for a known OneNote page. Use this instead of fetch_page when plain text, paragraph-like blocks, checklist tags, or precise element targets are more useful than raw HTML. Generated update targets belong to this snapshot and can become stale after any page mutation. This does not search across multiple pages. Images are inventoried but not read; use fetch_page_resource for a supported resource, then inspect the returned file before answering visual questions.
list_notebooks
ChatGPTList OneNote notebooks owned by the signed-in Microsoft account. Use this before section or page operations when the user has not named a notebook ID. The result is one bounded page. When next_skip is present, pass it as skip on the next call; never construct or invoke next_link. OneNote does not change sharing. For an owned notebook, web_url can be passed to Microsoft SharePoint invite_item_recipients, which applies its own access policies before changing permissions.
list_page_resources
ChatGPTList visible downloadable resources on one known personal page. Use this before fetch_page_resource when the user needs an image, audio recording, video, or attachment from a page. The manifest is personal-only; shared group or site pages do not have a matching resource-download action.
list_pages
ChatGPTList OneNote page metadata without fetching page bodies. Use this for recent-note discovery or to enumerate a known section before calling fetch_page. Results include parent notebook/section metadata and a OneNote web URL when Microsoft supplies them. This does not perform full-text search inside page bodies. Use created_after and created_before for the page's creation window; use modified_after and modified_before for the last-edit window. Subpages are indented pages in the same section. Section-scoped results request their level and order. The response follows order_by. For an outline, enumerate the section without date filters using next_skip, then sort by returned order before interpreting level. Partial results or missing/ambiguous level/order values do not establish parent-page relationships.
list_section_groups
ChatGPTList OneNote section groups for hierarchical notebook browsing. Use this alongside list_sections when a notebook has nested groups. With notebook_id or parent_section_group_id, results are direct child groups. Without either, results can include nested groups across notebooks. For each group, use list_sections(section_group_id=...) for its sections and this action's parent_section_group_id for its child groups. Continue with next_skip at each level; use list_pages(section_id=...) to enumerate a section.
list_sections
ChatGPTList OneNote sections for location discovery before page operations. Use notebook_id for top-level sections in a known notebook, or section_group_id for sections directly inside a known section group. A notebook can also contain section groups: an empty direct-section list does not mean the notebook is empty. Use list_section_groups to discover those groups, then list_sections for their sections. Continue with next_skip at each level before treating a list as complete. Leave both unset only when a cross-notebook section scan is useful.
list_shared_notebooks
ChatGPTList notebooks in a known Microsoft 365 group or SharePoint site.
list_shared_pages
ChatGPTList page metadata in a known shared OneNote root or section. Subpages are indented pages in the same section. Section-scoped results request their level and order. The response follows order_by. For an outline, enumerate the section using next_skip, then sort by returned order before interpreting level. Partial results or missing/ambiguous level/order values do not establish parent-page relationships.
list_shared_section_groups
ChatGPTList section groups under a known shared OneNote root or parent. Notebook and parent-group scopes return direct children; the root collection can include nested groups. For each group, use list_shared_sections(section_group_id=...) for its sections and this action's parent_section_group_id for its child groups. Retain resource_type and resource_id and follow next_skip at each level. Use list_shared_pages(section_id=...) to enumerate a section's pages.
list_shared_sections
ChatGPTList sections under a known shared OneNote root, notebook, or section group. Notebook and section-group scopes return direct sections. An empty list does not rule out sections inside child groups: use list_shared_section_groups and traverse those groups with the same resource_type and resource_id. Continue with next_skip at each level before treating a list as complete.
search_pages_by_text
ChatGPTSearch visible page text across one bounded personal-page window. Microsoft Graph does not provide native OneNote page-body full-text search, so this action lists at most ten recent or date-filtered pages, owner-verifies each page, fetches bounded HTML, and searches only the hidden-content-safe visible-text extraction. Prefer a known section and narrow creation or modification window, then continue with next_skip when broader coverage is needed. A miss is not global proof of absence when search_incomplete is true.
search_pages_by_title
ChatGPTFind pages by title and optional creation or modification window. Microsoft Graph does not provide native OneNote page-body full-text search. Use this action only when title/date metadata is sufficient; use search_pages_by_text for a bounded visible-body scan. Do not treat an empty title result as proof that page bodies do not contain the requested concept.
update_page
ChatGPTApply precise target-based edits to an existing OneNote page. Use get_page_text or get_page_tables to obtain a safe generated update target when available. Use fetch_page with include_ids enabled for other elements or #data-id targets. Prefer append_to_page for simple additive notes; use this action for title changes, checklist tags, and exact element replacement. Because a replacement can overwrite the page body, confirm the intended target and replacement content with the user.
update_shared_page
ChatGPTApply precise target-based edits to a known group or site page. Fetch the shared page with include_ids enabled before targeting a generated element ID. Prefer append_to_shared_page for simple additions. Because a replacement can overwrite the page body, confirm the intended target and replacement content with the user.