Skip to main content

URL Handler

BusyCal iOS supports URL handlers for creating new events and performing a few other tasks.

Creating Events in BusyCal

You can create a new event in BusyCal using natural language by opening a percent-escaped URL in the following format. This will launch BusyCal and present you with the edit screen to allow you to add more details as needed:

busycal://new/<event description>/<notes>/<autosave>

The URL takes up to 3 parameters:

  1. <event description>: The event description must contain an event title, date (today is assumed if no date), and a start time (an all-day event is assumed if no start time). In addition, you can include an optional calendar name preceded by a slash (e.g., /Work), and an optional final parameter containing a URL surrounded by angle brackets (e.g., <www.apple.com>). NOTE: All text must be URL encoded.

  2. <notes>: The text you would like to show in the notes section.

  3. <autosave>: Optional boolean parameter (true or 1) that, when provided, automatically saves the event without requiring user interaction. When omitted, BusyCal will launch the event editor for manual editing.

Here are some example natural language phrases for creating events and the corresponding percent escaped URLs:

Baseball game tomorrow

busycal://new/Baseball%20game%20tomorrow

Try it out

Staff meeting Thursday at 10am

busycal://new/Staff%20meeting%20Thursday%20at%2010am

Try it out

Meeting with Joe June 7 at 3pm /Work

busycal://new/Meeting%20with%20Joe%20June%207%20at%203pm%20%2FWork

Try it out

important

/Work must be encoded as %2FWork, preceded by a space %20

Meeting with Joe June 7 at 3pm /Work Some Notes

busycal://new/Meeting%20with%20Joe%20June%207%20at%203pm%20%2FWork/Some%20Notes

Try it out

important

You must add a space %20 after the title for the list name to be interpreted /Work (%2FWork)

Creating Events with Auto-Save

These examples will automatically create and save the event without requiring user interaction:

Baseball game tomorrow

busycal://new/Baseball%20game%20tomorrow//true

Try it out

Project review 3pm /Work

busycal://new/Project%20review%203pm%20%2FWork//1

Try it out

See Quick Entry for more information on the natural language syntax for creating events in BusyCal.

Creating Tasks in BusyCal

You can create a new task in BusyCal using natural language by opening a percent-escaped URL in the following format:

busycal://new/-<task description>/<notes>/<autosave>

The URL takes up to 3 parameters:

  1. -<task description>: To create a task, precede the task description with a hyphen (-). You can provide a due date (an undated task is created if no date is provided), an optional priority via exclamation points (! = low, !! = medium, !!! = high), an optional calendar name preceded by a slash (e.g., /Work), and an optional final parameter containing a URL surrounded by angle brackets (e.g., <www.apple.com>).

  2. <notes>: The text you would like to show in the notes section.

  3. <autosave>: Optional boolean parameter (true or 1) that, when provided, automatically saves the event without requiring user interaction. When omitted, BusyCal will launch the event editor for manual editing.

Here are some example natural language phrases for creating tasks and the corresponding percent-escaped URLs:

-Call Bob tomorrow

busycal://new/-Call%20Bob%20tomorrow

Try it out

-Pay Taxes April 15!!! /Personal

busycal://new/-Pay%20Taxes%20April%2015!!!%20%2FPersonal

Try it out

-Buy Toner /Shopping <www.amazon.com>

busycal://new/-Buy%20Toner%20%2FShopping%20%3Cwww.amazon.com%3E/true

Try it out

See Quick Entry for more information on the natural language syntax for creating tasks in BusyCal.

Selecting a Date in BusyCal

You can highlight a date in BusyCal by opening the busycal://date/ URL, appended with the date in yyyy-MM-dd format:

busycal://date/2021-05-31

Try it out

To go to the current date:

busycal://date/now

Try it out

Opening BusyCal

The following can be used to open BusyCal and switch to a specific view:

To open List view:

busycal://launch/list

Try it out

To open Day view:

busycal://launch/day

Try it out

To open Week view:

busycal://launch/week

Try it out

To open Month view:

busycal://launch/month

Try it out

To open Tasks view:

busycal://launch/tasks

Try it out