Skip to main content

Using BusyCal with iCloud

iCloud is Apple's free online service, which includes calendar syncing among its many features. BusyCal can connect to iCloud Calendar directly for syncing calendars across your devices and sharing them with others. This guide covers everything you need to know about using BusyCal with iCloud, from initial setup to troubleshooting common issues, including when iCloud sync is failing or not working properly.

Using iCloud with 2Do

2Do offers both iCloud (CloudKit) and iCloud CalDAV. BusyCal connects to iCloud through CalDAV and cannot read 2Do's CloudKit data or iCloud shared lists. See Using BusyCal with 2Do for setup and the differences between these methods.

For complete details on setting up and using BusyCal with iCloud, see the following sections:

Setting Up and Syncing BusyCal with iCloud​

important

Apple requires third-party apps that connect to iCloud through CalDAV to use an app-specific password instead of your regular Apple Account password. Before adding your iCloud account to BusyCal, you must first generate an app-specific password (explained below). This extra step ensures security while allowing BusyCal to sync with your iCloud data. Learn how to generate an app-specific password.

BusyCal can use iCloud to sync calendar data across all your devices.

note

BusyCal supports multiple iCloud accounts of the same type. Add each Apple ID as a separate iCloud account in BusyCal > Settings > Accounts if you need to view calendars from more than one iCloud account side by side.

To sync BusyCal with iCloud, do the following:

  1. First and foremost, navigate to https://support.apple.com/HT204397 using your browser and follow instructions on generating an app-specific password for your iCloud account (see demo video below). If you have already performed this step for some other app in the past or for another device running BusyCal, you may re-use the same password on this device. App-specific passwords can be re-used multiple times in several apps, if desired. After you have generated an app-specific password, save it some place secure in order to re-use it on another device running BusyCal. When unsure, generate a new one and copy / paste it somewhere secure.
Best Practices

Over the years we've gathered some best practices:

  • If you have a @mac.com email address, replace it with @icloud.com instead when using with BusyCal (learn why)
  • iCloud allows one to generate aliases for their primary iCloud email addresses. When using it with BusyCal, you must only use your primary iCloud email address to login, aliases do not work.
  • Your device must be configured to Set time and date automatically under System Settings > General > Date & Time otherwise the password will superficially fail to work without an obvious reason.
  1. Next, open BusyCal Menu > Settings > Accounts
  2. Click the + (plus) icon, near the bottom left corner of the settings dialog, to add a new account.
  3. Choose iCloud from the Server Type pop-up menu, then enter your Apple ID / iCloud Email Address.
  4. Enter the app-specific password generated in step 1 above and click OK.
New iCloud Account

Generating App-Specific Password​

The following video demonstrates how to generate and use an app-specific password for iCloud.

  1. Log into your iCloud account: https://account.apple.com/
  2. Generate an app specific password
  3. Copy the password and use in BusyCal iOS. Preferably, save this password securely for future use.
note

On iCloud, Meeting Invitations that you received from others will automatically get added to your preferred Meeting Calendar. You can change this setting under BusyCal Setting > Accounts > iCloud Account > Meeting Calendar.

Sharing Calendars with Others through iCloud​

Please log into your account on www.icloud.com and setup sharing of calendars there. BusyCal will then pull these changes during the next sync.

Once each user has configured BusyCal to sync with their personal iCloud account, your shared calendars will be accessible to you like any other calendar, provided these have been setup on www.icloud.com.

Shared Calendar Messages​

When using shared calendars, there are two options you may want to enable, for keeping track of changes to events on shared calendars:

  • First, in BusyCal > Settings > Advanced > Other, select Confirm changes to events on shared calendars if you want to display a warning when you edit or delete an event on a shared calendar.

  • Second, in the Calendar Info dialog for any given calendar (which you can display by double-clicking the calendar name in the calendar side panel), select Show change notifications in Inbox to display a badge on the app icon and a message in the Inbox when events are added or changed by others, or deselect it to avoid seeing badges and Inbox notifications for that calendar.

Enable Change Notifications
  • Open BusyCal > Settings > General and select Inbox Notifications under Dock badge count, if desired.
Inbox Change Notification Badge Icon

Hosting Calendars on iCloud​

How iCloud Syncing Works​

iCloud functions as a CalDAV server that syncs with client apps.

BusyCal (for both macOS and iOS) and the built-in Calendar app on macOS and iOS are CalDAV clients that sync with iCloud.

This means any data you enter into the built-in Calendar app on macOS or iOS will sync to BusyCal through iCloud, and vice versa. As long as you have all client apps configured to sync with the same iCloud account, all your calendar data remain in sync.

Calendars Must Be Hosted on iCloud​

Calendars must be stored in your iCloud account to sync through iCloud. Adding an iCloud account to BusyCal does not copy calendars from On My Mac, Fruux, Google, or other accounts into it.

You can move a local calendar to iCloud, copy a calendar from another service, or import its contents into an existing iCloud calendar.

Move a Calendar to iCloud​

In BusyCal for Mac, Move to iCloud is available only for local calendars under On My Mac. It does not appear when you Control-click a calendar under Fruux, Google, Exchange, or another account. For those calendars, use the export and import steps below.

To move a local calendar such as Work:

  1. Add iCloud directly to BusyCal, make sure the account is enabled in BusyCal > Settings > Accounts, and let it appear in the left sidebar.
  2. Under On My Mac, Control-click the individual Work calendar and choose Move to iCloud for the destination account. The command shows the destination account in brackets.
  3. Confirm the move. BusyCal moves the local calendar's contents into new calendars under iCloud and removes the local calendar.
note

Move to iCloud removes organizer and attendee details from events. Export a copy before moving a calendar if you need to keep those details.

If the command is missing, see Why is “Move to iCloud” missing?.

iCloud stores tasks separately from events and journals. If Work contains both, BusyCal creates an event calendar named Work and a task calendar named Work - To Do. Journals go with the events and remain journals in BusyCal. The task calendar has a checkmark next to its name, as shown below for DIY.

Task Calendars

Checking both calendars in the sidebar lets BusyCal display their items together. You can save that selection as a Smart Filter (calendar set) named Work for quick access. They remain separate calendars; the filter does not combine them into one calendar containing all three item types.

Copy a Calendar from Fruux or Another Service to iCloud​

Use BusyCal for Mac to export the source calendar, import a local copy, and move that copy to iCloud. Start with one calendar and keep the original calendar and exported file until you have checked the results on your devices.

  1. Let BusyCal finish syncing the source account, then select the calendar under Fruux or the other account in the left sidebar.
  2. Choose File > Export > Calendar File (.ics). In the export dialog, select Export "My" Private Fields to include My Notes, My Tags, My URL, and private alarms in the exported copy, then save the file.
  3. Choose File > Import and select that file. Click Options if the import choices are hidden. In Import events into, choose New Calendar, then click Import. This creates a local copy under On My Mac.
  4. Control-click that local copy and follow Move a Calendar to iCloud above.
  5. After syncing, check the copied events, journals, and tasks on the devices you use. You can uncheck the original calendar in BusyCal's sidebar while comparing the copies.

The imported calendar is a separate copy. Later edits to the original Fruux calendar do not update the iCloud copy. See Exporting, Importing, and Merging Calendars for more about the file options.

Merge with a Calendar on iCloud​

For this example, let's say you have a local calendar called "Work" that you want to merge with an existing calendar on iCloud called Company. Here's how to do it:

  1. Export the Work calendar by selecting it in the left sidebar and choosing File menu > Export > Calendar File (.ics). Enable Export "My" Private Fields if you want those fields in the copy, and save it to your desktop. Keep the original calendar and exported file until you have checked the imported data.
File Export
  1. Choose File menu > Import and select the file you exported in step 1. If the Import events into section does not appear at the bottom of the dialog, click Options to display it. Select Existing Calendar, and choose the Company calendar (which is hosted on iCloud). BusyCal adds the events from the Work calendar to the Company calendar on iCloud.
File Import

After the import has synced and you have checked the results, you can remove the original Work calendar if you no longer need it.

note

An iCloud calendar that supports only events rejects tasks during import. To import the tasks from a mixed calendar, import the file again into a separate calendar that supports tasks.

iCloud CalDAV task calendars and upgraded Apple Reminders lists are separate. If you want the tasks in Apple Reminders, use a list under BusyCal's Reminders account as the import destination.

tip

After merging the calendars, you can remove duplicate events by choosing Help > Find Duplicates.

Why Doesn't BusyCal Sync Directly with Apple Calendar?​

BusyCal offers direct iCloud syncing via the open CalDAV protocol, allowing full access to all features. While it also supports connecting to Apple Calendar without needing to connect to iCloud, this method comes with significant limitations.

Apple Calendar restricts third-party apps from accessing many advanced scheduling features when syncing this way, leading to a reduced experience. We've outlined these limitations in more detail here.

Why is Push Sync Not Supported?​

The Push Sync option in BusyCal Settings > Accounts > iCloud > Refresh Calendars is intentionally disabled because iCloud does not allow third-party apps to subscribe to push updates. Instead, you can select a periodic sync interval, such as Every 5 minutes.

That said, BusyCal intelligently syncs in the background at various times to keep your calendar up to date. The lack of a push sync option should not impact your overall experience.

iCloud Limitations​

iCloud places certain limits on calendar data.

Quota Limitations​

Irrespective of how much you're paying iCloud for online storage, iCloud places fixed limits on the amount of data that can be stored within the Calendar app. For instance, you may have a 2 TB storage option but will still have the following limits applied. These limits also apply to the built-in Apple Calendar app:

  • Total number of calendars, events, and reminders: 50,000*

  • Maximum combined number of calendars and reminder lists you can have: 100*

  • Maximum size of all calendar and reminder data (not including attachments): 1GB*

  • Maximum number of characters in a reminder title: 1,000*

  • Maximum size of a calendar event including attachments: 20MB

  • Maximum number of attachments per event: 20

  • Maximum number of attendees you can invite to an event: 300

  • Maximum number of people with whom you can share a private calendar: 100

  • If you have upgraded your iCloud reminders on a device running iOS 13, iPadOS, or macOS Catalina or later, these limits on reminders do not apply. Learn more about the Reminders upgrade process.

For more information, see iCloud: Limits for Contacts, Calendars and Reminders.

Solution​

One thing that could help is to archive old events. We have instructions on how to archive old events here.

Calendar Limitations​

BusyCal syncs all its data types (events, tasks, journals, graphics, stickies, attachments, tags, etc.) with iCloud.

If you are syncing multiple Macs running BusyCal with the same iCloud account, all these data types should sync seamlessly. However, there are some limitations to be aware of when syncing these data types with other apps (such as Calendar for macOS or iOS) through iCloud:

  • Stickies, Journals, and Graphics in BusyCal sync between BusyCal clients through iCloud, but appear as all-day events in Calendar and other clients.
  • Tags applied to events in BusyCal sync with other copies of BusyCal through iCloud, but do not appear in Calendar or other clients.
  • Tasks stored in BusyCal's Reminders account sync with the Reminders app. Tasks stored in iCloud CalDAV calendars remain separate from upgraded Reminders lists.

⚠️ Troubleshooting iCloud Sync Issues & Failures​

If your iCloud sync is failing, your calendar is not updating, or iCloud fails to connect (sometimes with cryptic error codes like -1012), it may be due to an incorrect or expired app-specific password.

This can happen for various reasons, especially if you recently reset your main iCloud password—doing so automatically revokes all existing app-specific passwords.

The most reliable solution is to remove your iCloud account from BusyCal and set it up again by following these steps. Please check tips under the Best Practices section as it could be due to one of the things mentioned in that section.

To remove and re-add your account:​

  1. Open BusyCal Settings > Accounts.
  2. Select your iCloud account and click [-] to delete it.
  3. Click [+] to add a new account and follow these steps.

🛠️ Duplicate Tasks Appearing​

Apple migrated tasks from iCloud Calendars to the dedicated Reminders app as part of an upgrade, explained here. This upgrade is triggered when launching the Reminders app and tapping the Upgrade button.

If you did not complete the upgrade, your task lists may appear in two places:

  1. Reminders app
  2. iCloud CalDAV server

Since both still reside on iCloud, adding both Reminders and your iCloud account to BusyCal will result in duplicate tasks, as BusyCal will fetch the same data from both sources.

To remove duplicates, follow these steps:

  1. Open BusyCal Settings > Accounts.
  2. Select Reminders from the list.
  3. Click the [-] button to delete the Reminders account.

This ensures that tasks sync only from your iCloud account, preventing duplicates.