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.
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:
- Syncing with iCloud
- Sharing Calendars with Others through iCloud
- Hosting Calendars on iCloud
- iCloud Limitations
- Troubleshooting iCloud Sync Issues & Failures
Setting Up and Syncing BusyCal with iCloud
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.
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:
- 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.
Over the years we've gathered some best practices:
- If you have a
@mac.comemail address, replace it with@icloud.cominstead 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.
- Next, open BusyCal Menu > Settings > Accounts
- Click the
+(plus) icon, near the bottom left corner of the settings dialog, to add a new account. - Choose iCloud from the Server Type pop-up menu, then enter your Apple ID / iCloud Email Address.
- Enter the app-specific password generated in
step 1above and click OK.

Generating App-Specific Password
The following video demonstrates how to generate and use an app-specific password for iCloud.
- Log into your iCloud account: https://account.apple.com/
- Generate an app specific password
- Copy the password and use in BusyCal iOS. Preferably, save this password securely for future use.
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.

- Open BusyCal > Settings > General and select Inbox Notifications under Dock badge count, if desired.

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:
- Add iCloud directly to BusyCal, make sure the account is enabled in BusyCal > Settings > Accounts, and let it appear in the left sidebar.
- 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.
- Confirm the move. BusyCal moves the local calendar's contents into new calendars under iCloud and removes the local calendar.
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.

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.
- Let BusyCal finish syncing the source account, then select the calendar under Fruux or the other account in the left sidebar.
- 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.
- 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.
- Control-click that local copy and follow Move a Calendar to iCloud above.
- 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:
- 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.

- 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.

After the import has synced and you have checked the results, you can remove the original Work calendar if you no longer need it.
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.
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:
- Open BusyCal Settings > Accounts.
- Select your iCloud account and click
[-]to delete it. - 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:
- Reminders app
- 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:
- Open BusyCal Settings > Accounts.
- Select Reminders from the list.
- Click the
[-]button to delete the Reminders account.
This ensures that tasks sync only from your iCloud account, preventing duplicates.