Skip to main content

Quick Entry

You can create events and tasks in BusyCal using natural language via the Quick Entry feature.

Quick Entry - Natural Language

BusyCal's Quick Entry feature allows you to rapidly create calendar events, tasks, and journal entries using everyday language instead of filling out forms. Type phrases like "Lunch with Sarah tomorrow at noon" or "Team meeting Tuesday 3pm at Conference Room" and BusyCal automatically interprets the date, time, location, and other details.

  • BusyCal — Click the + (plus) icon that appears in top left corner of the window, or press ⌘-Option-N, to expose the Quick Entry field.
  • BusyCal Menu — Click the BusyCal menu bar icon, or press ⌘-Control-B. Your cursor is placed in the Quick Entry field that appears on the top of the menu.

A preview of the event details are displayed while you type as it recognizes the title, date and time, location and more. You can even add contacts or attendees, set an alarm, add a URL, or indicate the calendar to create the event on.

Creating Events

BusyCal lets you use natural language to create new events and tasks via Quick Entry. 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

Dentist at 2:00 Monday alarm 15m
=> adds an alarm 15 minutes before the event

Dentist at 3:30 Monday alarm 15m, 10m, 5m
=> adds three alarms 15, 10 and 5 minutes before the event. Supported by BusyCal v2023.3.1+

Dentist at 2:00 Monday [45m]
=> Creates a 45-minute event (2:00 PM - 2:45 PM)

Coffee at Jimmys 9:00
=> adds Jimmys to the Location field

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 BusyCal > Settings > General > Default calendar for Events, 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

Apple Earnings Call Tuesday 2pm PST!
=> trailing punctuation does not break parsing

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

Conference April 18 12pm PST to April 19
=> end falls on the next day, in the same zone

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

Quick Entry can recognise a wide range of natural-language recurrence phrases and convert 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 by preceding the text with a hyphen “-”, “todo”, “remember to” or “remind me to.” If a date or time is included, BusyCal creates a dated or timed task. Otherwise, it creates an undated task. For example:

-Call Bob
todo Call Bob tomorrow
-Call Bob tomorrow at 10am
remember to Call Bob next Tuesday
-Call Bob Nov 7
remind me to pick up dry cleaning at 5pm

You can set the priority for a task by appending exclamation points (!). One exclamation point = low priority, two = medium priority, and three = high priority. For example:

Low priority:

-Call Bob!

Medium priority:

-Call Bob!!

High priority:

-Call Bob!!!

You can also set the duration (in minutes) for a task by appending a number within square brackets. This makes it easy to specify how long a task will take. Here are some examples:

Sets a task duration of 10 minutes, starting at 9pm

-Submit draft tomorrow at 9pm [10m]

Sets a task duration of 1 hour without specifying date or time

-Team meeting [1h]

Sets a task duration of 45 minutes

-Client call [45m]

Tasks are added to the default task calendar specified in BusyCal > Settings > Tasks > Default calendar for Tasks, 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).

Adding a Location

If you enter a location preceded by the words in, at or @, the location will be underlined. If you click on the location, you will have the option to select a structured location, which will insert the full address into the location field. Here are some examples:

Breakfast with Bob tomorrow at 8am at Streamliner
Staff Meeting Wed 10am @ Conference Room
Study Hall 3pm in Library

Adding a Contact or Attendee

If you enter a person's name preceded by the words call, contact, email, follow up with, or with, the person's name will be underlined. If you click on the name, you will have the option to add that person as a Contact (if you're using BusyContacts) or an Attendee. Here are some examples:

-Call Bob

-Follow up with Bob

Lunch with Bob tomorrow at 1pm

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:

New event on Work calendar

Lunch with Joe next Tuesday /work

New event on Work calendar, if no other calendars start with “w”

Lunch with Joe next Tuesday /w

New task on Work calendar

-Call Bob /work

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 include an optional URLin 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>

Editing Events and Tasks Created with Quick Entry

After you create an event with Quick Entry, the event is selected in BusyCal and the Info Panel is displayed, where you can make further changes to the event.