Skip to main content

Natural Language

You can create events and tasks in BusyCal using natural language—simply type the details and BusyCal interprets them automatically.

To enable natural language processing, go to Settings > New Event Defaults and turn on Create with Natural Language. Once you've done this, the Title field for new events and tasks is replaced with a field that accepts freeform input.

Creating Events

You can create events with or without dates and times. Here are some examples:

Lunch with Joe next Tuesday
Lunch with Joe next Tuesday at 12:00
Meeting with Joe Nov 7 at 3:00
Staff meeting Thursday at 2:00

Adds an alarm 15 minutes before the event:

Dentist at 2:00 Monday alarm 15m

Adds Jimmys to the Location field:

Coffee at Jimmys 9:00

The keyword allday can be used to turn the event into an all-day event, even if a default start time is applied in settings. Time will automatically be omitted when allday is used.

Attend conference tomorrow allday

Events are added to the default event calendar specified in Settings > New Event Defaults > Default Calendar, unless you specify a different calendar (see Setting the Calendar below).

Time Zones

You can attach a time zone to an event simply by typing it inline. BusyCal recognises both common abbreviations (PST, EST, GMT, BST, UTC, etc.) and full IANA identifiers (America/New_York, Asia/Tokyo, Europe/London, …). The time zone is parsed out of the title, so it never ends up in the event name.

Class April 19 at 1pm PST
Meeting May 1 9am America/New_York

Trailing punctuation does not break parsing:

Apple Earnings Call Tuesday 2pm PST!

If your event has a different start and end zone — for example, a flight or a cross-zone call — write a zone after the start time, the end time, or both:

Flight April 18 9am EST to 11am PST
Class April 19 at 1pm PST to 3pm EST

End on the next day, in the same zone:

Conference April 18 12pm PST to April 19

A few finer points:

  • You can write the zone with or without a space — 9am PST and 9amPST both work. The space-less form is especially handy in Chinese, Japanese, and Korean inputs.
  • All-day events can still carry a zone, e.g. do something tomorrow 9pm PST allday.
  • Recurring events keep their zone on every occurrence — see Recurrence end and date windows for examples like every Tuesday at 9am PST until February 3.
  • Time zone parsing is supported in all of BusyCal's localized builds (English, Canadian English, German, French, Italian, Spanish, Dutch, Japanese, Korean, and Simplified Chinese).

Creating Recurring Events

BusyCal for iOS recognises a wide range of natural-language recurrence phrases and converts them into a repeating event automatically. The recurrence preview appears inline as you type, alongside the parsed title, date, and time.

Simple repeats

Yoga every day at 7am
Standup every weekday at 9:30
Project sync every Tuesday at 10am
Pay rent monthly
Sam's birthday every year on 5/16

Frequency keywords include daily, weekly, monthly, yearly, biweekly / bi-weekly, bimonthly / bi-monthly, and quarterly. You can also write the equivalent every day, every week, every month, every year, or every weekday / every weekend.

Custom intervals

Use every N <unit> for non-default intervals, or every other for every-second occurrences:

Water the plants every 3 days
Team retro every 2 weeks on Friday at 4pm
Inventory check every other Monday

Specific weekdays and ordinal patterns

Soccer practice every Tuesday with John at 6pm
Game night every Friday and Saturday at 8pm
Team meeting at 9am on the second Tuesday of every month
Board review at 10am on the last Thursday of each month

Ordinal words supported in the "Nth weekday of the month" form: first, second, third, fourth, fifth, and last (as well as 1st, 2nd, 3rd, 4th, 5th).

Recurrence end and date windows

Cap a series with until, through, thru, till, or to. To shift the start, use from, starting, starting on, beginning, or beginning on. Both can be combined to form an explicit date window:

Lunch every Tuesday until 2/5
Conference call every Saturday at 12pm PST from April 18 through June 20
Daily standup starting Monday at 9am

Time zones are preserved inside recurrence windows — every Tuesday at 9am PST until February 3 keeps PST on every occurrence, not just the first one.

Notes

  • If you want a phrase like every Tuesday to appear in the title instead of being interpreted as a recurrence, wrap it in straight quotes: "every Tuesday".
  • All the recurrence phrases above are also recognised in the localized BusyCal builds for German, French, Italian, Spanish, Dutch, Japanese, Korean, Simplified Chinese, and Canadian English. The phrasing follows each language's conventions — for example, tous les mardis à 9h in French or 毎週火曜日 9時 in Japanese.

Creating Tasks

You can create tasks with or without dates and times. If no date or time is included, BusyCal creates an undated task with no due date. For example:

Call Bob
Call Bob tomorrow
Call Bob next Tuesday
Call Bob Nov 7
Buy Toner

Tasks are added to the default task calendar configured in Settings > New Task Defaults > Default Calendar, unless you specify a different calendar (see Setting the Calendar below).

Creating Journals

You can create journal entries by preceding the text with a ">", "memo", "log" or "journal". Journal entries default to the current date unless specified. Here are some examples:

>Museum visit
memo Jimmy took his first steps today
log Project launched with hiccups yesterday

Journal entries are added to the default journal calendar specified in settings, unless you specify a different calendar (see Setting the Calendar below).

Setting the Calendar

Optionally, you can specify which calendar to create an event or task on by including a slash / followed by the calendar name (e.g., /work) or a unique portion of the calendar name (e.g., /w). Here are some examples:

Lunch with Joe next Tuesday /work` new event on Work calendar

New event on Work calendar, if no other calendars start with "w":

Lunch with Joe next Tuesday /w
Call Bob /work new task on Work calendar

New task on Shopping calendar:

Buy Toner /shop

Use calendar name abbreviations, such as /pjt to match Project Titan. Simply type a sequence of characters that appear in the name.

Team Review Meeting /pjt

Adding a URL

You can add an optional URL at the end of the phrase surrounded by angle brackets (e.g., <www.apple.com>) to include a link to that URL. Here are some examples:

Buy Toner <www.amazon.com>
Apple Earnings Conference Call Tuesday at 2pm <investor.apple.com>

Adding an Attendee

If you enter the name of someone you are meeting with (e.g., "Meeting with Joe"), the person's name will be underlined. Tap the name to display a list of matches from Contacts; tap one or more of the matching names to add those people to the event as attendees.

Adding a Location

If you enter a location (e.g "Coffee at Starbucks"), the location will be underlined. Tapping the location will display a list of matches from Location Services where you can further refine your search and select an item to set a structured location.