X-callback-url Support and Reference

A quick intro to x-callback-urls

  • The URL scheme is agenda or agenda-notes
  • Commands currently include on-the-agenda, today, open-project, etc. See below for a complete list.
  • For “open-project” and “open-note”, you can stipulate the target using a title parameter.
  • As usual, you can supply callback URLs via optional x-success and x-error parameters.

For example, to open Agenda to a note called “Meeting With Peta”, you could use this URL:
agenda://x-callback-url/open-note?title=Meeting%20With%20Peta

Read more about x-callback urls at http://x-callback-url.com

Tip: Agenda also comes with a set of App Shortcuts that match most of the below x-callback-url actions. Learn more about how to use those in the Shortcuts Support and Reference topic…

Supported Actions

Open the On the Agenda overview

  • command: on-the-agenda:
    Parameters
  • parameters: none
    Example
  • example: agenda://x-callback-url/on-the-agenda

Open the Today overview

  • command: today:
    Parameters
  • parameters: none
    Example
  • example: agenda://x-callback-url/today

Open a saved overview (identified by title or identifier)

  • command: open-overview :
    Parameters
  • parameter (optional): title
  • parameter (optional): identifier (of overview)
    New in Agenda 18.0:
  • parameter (optional): separate-window
    Result
  • result parameter: overview (holds overview identifier)
    Example
  • example: agenda://x-callback-url/open-overview?title=This%20Week

Open a search (optionally with a query)

  • command: open-search :
    Parameters
  • parameter (optional): query
    New in Agenda 18.0:
  • parameter (optional): separate-window
    Examples
  • example: agenda://x-callback-url/open-search
  • example: agenda://x-callback-url/open-search?query=%23Important

Open a project (identified by title or identifier)

  • command: open-project:
    Parameters
  • parameter (optional): title
  • parameter (optional): project-title
  • parameter (optional): identifier (of project)
    New in Agenda 18.0:
  • parameter (optional): separate-window
    Result
  • result parameter: project (holds project identifier)
    Example
  • example: agenda://x-callback-url/open-project?title=Welcome

Open a note (identified by title or identifier)

  • command: open-note:
    Parameters
  • parameter (optional): title
  • parameter (optional): identifier (of note)
  • parameter (optional): project-title
    New in Agenda 18.0:
  • parameter (optional): separate-window
    Result
  • result parameter: note (holding identifier), and note-title
    Example
  • example: agenda://x-callback-url/open-note?title=Meeting%20With%20Peta

Get identifier for note or project (identified by title)

  • command: get-identifier:
    Parameters
  • parameter (optional): project-title
  • parameter (optional): title (of note)
    Result
  • result parameter: project (holding the project identifier), or note (holding the note identifier)
    Examples
  • example1: agenda://x-callback-url/get-identifier?project-title=Welcome returns the identifier of project “Welcome”
  • example2: agenda://x-callback-url/get-identifier?project-title=Welcome&title=Things%20to%20Try returns the identifier of note “Things to Try” in project “Welcome”
  • example3: agenda://x-callback-url/get-identifier?title=Things%20to%20Try returns the identifier of note “Things to Try” in whichever project it resides

Get identifier and title of the selected project

  • command: get-selected-project:
    Parameters
  • parameters: none
    Result
  • result parameter: project (holding the project identifier), project-title (holding the project title)
    Examples
  • example: agenda://x-callback-url/get-selected-project returns the identifier and title of the currently selected project in the sidebar"

Get identifier and title of the selected note

  • command: get-selected-note:
    Parameters
  • parameters: none
    Result
  • result parameter: note (holding the note identifier), note-title (holding the note title)
    Examples
  • example: agenda://x-callback-url/get-selected-note returns the identifier and title of the currently selected note of the currently selected project"

Get identifier and title of the selected note or project (if no note is selected)

  • command: get-selection:
    Parameters
  • parameters: none
    Result
  • result parameter: note (holding the note identifier), note-title (holding the note title) or project (holding the project identifier), project-title (holding the project title)
    Examples
  • example: agenda://x-callback-url/get-selection returns the identifier and title of the currently selected note or the currently selected project if no note is selected"

Get identifier and title of the selected note or project

  • command: get-selection:
    Parameters
  • parameters: none
    Result
  • result parameter: note (holding the note identifier) and note-title (holding the note title), or project (holding the project identifier) and project-title (holding the project title)
    Examples
  • example: agenda://x-callback-url/get-selection returns the identifier and title of the currently selected note of the currently selected project. If there is no selected note, it will attempt to return the identifier and title of the currently selected project."

Create a category (with the given title)

  • command: create-category:
    Parameters
  • parameter: title
    Result
  • result parameter: category (holding identifier)
    Example
  • example: agenda://x-callback-url/create-category?title=New%20Category

Create a project (in the category with the given title or identifier)

  • command: create-project:
    Parameters
  • parameter (optional): category-title
  • parameter (optional): identifier (of category)
  • parameter: title
  • parameter (optional): select (true or false)
  • parameter (optional): sort-order (the sort order of the notes in the project, which can be one of the following: newest-first, oldest-first)
    Result
  • result parameter: project (holding identifier)
    Example
  • example: agenda://x-callback-url/create-project?category-title=Some%20Category&title=New%20Project

Create a note (in the project with the given project title or identifier, optionally from a template)

  • command: create-note:
    Parameters
  • parameter: title
  • parameter: text
  • parameter (optional): project-title, or
  • parameter (optional): identifier (of project). New in Agenda 14.0: If no project-title is provided the currently selected project is used (if there is no single selected project, and error is returned)
  • parameter (optional): on-the-agenda (true or false)
  • parameter (optional): date (natural language or absolute dates)
  • parameter (optional): start-date (natural language or absolute dates)
  • parameter (optional): end-date (natural language or absolute dates)
  • parameter (optional): attachment (data as base64 encoded string without linebreaks)*
  • parameter (optional): filename (the filename of the attachment, including file extension)
  • parameter (optional): event-title (of the event to link the note to) **
  • parameter (optional): template-name (as shown in template manager)
  • parameter (optional): template-input (optional input, will replace the \shared_content placeholder)
  • parameter (optional): collapsed (true or false)
  • parameter (optional): completed (true or false)
  • parameter (optional): pinned (true or false)
  • parameter (optional): footnote (true or false)
  • parameter (optional): select (true or false, whether to select the created note in Agenda)
  • parameter (optional): display-style (the display style of the attachment, which can be one of the following: full-width, thumbnail, thumbnail-with-details, inline)
  • parameter (optional): display-size (the size at which a full-width attachment is displayed, which can be one of the following: 25, 50, 75, 100, or tiny, small, medium, large)
    Result
  • parameter: note (holding identifier)
    Examples
  • example1: agenda://x-callback-url/create-note?title=New%20Note&text=Hello%20World
  • example2: agenda://x-callback-url/create-note?project-title=My%20Project&title=New%20Note&text=Hello%20World&on-the-agenda=true&date=2018-03-12
  • example3: agenda://x-callback-url/create-note?project-title=Blogposts&title=New%20Post29&text=Hello%20World&on-the-agenda=false&start-date=yesterday&end-date=tomorrow
  • example4: agenda://x-callback-url/create-note?project-title=My%20Project&text=Hello%20World&event-title=Meeting&date=2020-07-22
  • example5: agenda://x-callback-url/create-note?project-title=Reviews&template-name=Book%20Review&template-input=blablabla

Append or replace text or an attachment to a note, link to a calendar event, or change the title or date

  • command: append-to-note:, or
  • command: replace-note:
    Parameters
  • parameter (optional): title (of note)
  • parameter (optional): identifier (of note)
  • parameter (optional): project-title
  • parameter: text (to append)
  • parameter (optional): on-the-agenda (true or false)
  • parameter (optional): date (natural language or absolute dates)
  • parameter (optional): start-date (natural language or absolute dates)
  • parameter (optional): end-date (natural language or absolute dates)
  • parameter (optional): attachment (data as base64 encoded string without linebreaks)
  • parameter (optional): filename (the filename of the attachment, including file extension)
  • parameter (optional): event-title (of the event to link the note to) **
  • parameter (optional): collapsed (true or false)
  • parameter (optional): completed (true or false)
  • parameter (optional): pinned (true or false)
  • parameter (optional): footnote (true or false)
  • parameter (optional): select (true or false, whether to select the updated note in Agenda)
  • parameter (optional): display-style (the display style of the attachment, which can be one of the following: full-width, thumbnail, thumbnail-with-details, inline)
  • parameter (optional): display-size (the size at which a full-width attachment is displayed, which can be one of the following: 25, 50, 75, 100, or tiny, small, medium, large)
    Result
  • result parameter: note holding identifier, and note-title with title
    Example
  • example: agenda://x-callback-url/append-to-note?title=Some%20Note&text=More%20Text
  • example: agenda://x-callback-url/replace-note?title=Some%20Note&text=Replacement%20Text
  • see also above examples for the create-note command.

Note 1: Adding an attachment requires both the attachment and filename parameter. Attachment data should be provided as a base64 encoded string. Also make sure the string is properly URL escaped.

Note 2: If no date is provided Agenda looks for events with the given event-title on “Today”. Otherwise if either a date or start-date+end-date is given, Agenda looks for the first event that has the given event-title on the given day or in the given day range. The most precise way to link to an event is to provide both the event-title as well as the exact start_date of the event.

Note3: The text and title parameters also support the new text commands like \date(short) and \time as described in Creating and Using Templates - #4 by system

Success and Error Callbacks

Success Callback

  • command: x-success:
    Parameters
  • parameters: see the Result section of each of the above actions
    Example
  • example: agenda://x-callback-url/open-project?title=Welcome&x-success=myapp%3A%2F%2Fsuccess will open the url myapp://success?project=some_uuid

Error Callback

  • command: x-error:
    Parameters
  • parameter: errorCode (holding the error code, following common HTML style error codes)
  • parameter: errorMessage (holding a description of the error)
    Example
  • example: agenda://x-callback-url/open-project?title=Bogus&x-error=myapp%3A%2F%2Ferror will open the url myapp://error?errorCode=404&errorMessage=Target%20Not%20Found

Using x-callback URLs in the Shortcuts app

Agenda comes with a set of Shortcuts that you can use in the Shortcuts app to automate Agenda and integrate with other apps. These Shortcuts in many cases match 1-to-1 with the the above x-callback actions. The can also be mixed and matched however, learn more on how to use x-callback-urls in the Shortcuts app in the Shortcuts reference topic.

21 Likes
Trying to understand how to create a shortcut
Automatic Automation
Custom URL scheme for desktop app
Email linking from MailMate
Copy-and-Paste 2.0 – How Templates Make a World of Difference
API for working with App
Things/Agenda Crosslinked Item Shortcut
iOS Shortcut - Import from Apple Notes on iOS
Create new note using a URL handler
How to use agenda as a regular daily to-do-list?
AppleScript Integration
Rules and Automation
Tag auto-complete
Copying a x-callback-URL link
X-Callback-Url Note Completion endpoint
Release Notes
Add quick note on macOS and using Alfred shortcuts
Asking for some shortcuts
Add todos to OmniFocus
Is it possible to create a category with a shortcut?
NotePlan 3’s Daily Note In Agenda
Other Backup Options
"Quick new note" widget type
Recurring notes
Create Note for each items from a calendar every day
Connect to Spotlight
Get currently selected note using Applescript or x-callback-url
Release Notes
Quicksilver
Is there any kind of API for Agenda?
Problems with Evernote Ver 10 represent an opportunity for Agenda
Perform an action on a note programatically
Different behavior showing assigned date
Now available: Agenda 15.0 with Text Highlighting, Font choice, Focus Filters, support for Block Quotes and Syntax Coloring and more… 🎉
iOS Shortcut - So, I made a shortcut for Task Managing on Agenda
Now available: Agenda 11.0 with Widgets, Scribble, Note Appearance Customization, Accessibility, and 7 new languages 🥳
Release Notes
Web clipper browser extension for Agenda
Trying to set up an iOS shortcut using Agenda templates
Update existing entry
Can not copy Agenda Link for saved searches
Scan to Agenda from macOS
Will Agenda be compatible with systems using MCP so someone like me could plot it in automated workflows?
Automating Agenda
Release Notes
Alittle Automation Help
Release Notes
Hazel
Templates
Template how does it works?