Skip to main content

Using BusyCal with Office 365 (Microsoft Graph)

In our continuous effort to enhance BusyCal's connectivity and feature set, we have transitioned our syncing mechanism for Office 365 accounts to utilize Microsoft Graph API, Microsoft's latest sync offering.

Why the Change? Microsoft Graph represents the next generation in Microsoft's cloud services, offering broader capabilities and better security than its predecessor, Exchange Web Services (EWS). This change comes in anticipation of Microsoft's announcement to end support for Exchange Web Services (EWS) in 2025. By adopting Microsoft Graph, BusyCal ensures continued compatibility with Office 365 and Outlook.

What's Different? While the core functionality of syncing calendars, events and tasks remains the same, Microsoft Graph enables enhanced performance and compatibility with Outlook and its newest offerings, such as receiving updates from Microsoft Bookings and creating one-click conference calls with Microsoft Teams, features that are otherwise not available via EWS.

For more details, please explore the following:

Personal Outlook

When it comes to personal Outlook accounts, including those on outlook.com, hotmail.com, and similar non-enterprise services, the integration process is slightly distinct. Microsoft has phased out basic authentication methods (such as passwords) for these accounts in favor of more secure authentication protocols. This change aims to enhance security for personal users by reducing the reliance on passwords, which are vulnerable to various security threats. As a result, BusyCal's connection to personal Outlook accounts leverages modern authentication techniques, ensuring a secure and streamlined experience for managing your calendars and tasks. This adjustment ensures that personal Outlook accounts benefit from the same robust Microsoft Graph connectivity as enterprise accounts.

Syncing Calendars and Tasks

To sync BusyCal with your Office 365 account via Microsoft Graph, follow these steps:

  1. Open BusyCal > Settings > Accounts.
  2. Tap Add Account to add a new account.
  3. Tap Connect next to Office 365 (under the Microsoft Graph label) from the list of options, enter your email address, then click Add
  4. Follow any additional prompts to complete the setup. Once configured, BusyCal will begin syncing with your Office 365 account via Microsoft Graph.
important

In case you're prompted to provide Admin Consent during the authentication process, you would need to reach out to your Office 365 admin and ask them to grant BusyCal permission to connect to your account. We have detailed instructions on how to grant BusyCal acceess using the Azure Portal.

Resources

Conference Rooms / Printers and other resources on a Microsoft Graph / Exchange server can be added to events in BusyCal as an attendee. Simply typing in the name of the resource will auto-complete the resource name for you.

Microsoft Teams Conference Calls

You can add one-tap Teams meetings to events / invitations. Simply open BusyCal Settings > View Preferences > Event Details and make sure you have enabled the Microsoft Teams option to show. You should now see a Add Meeting button appear in the Event Details screen when editing / adding new events. Tapping on this button will automatically create a conference call (using Teams) and add it to the event.

Please be aware that this functionality is contingent on specific account settings. It is available for Enterprise Office 365 accounts that have not restricted Teams access via the Office 365 Portal. Additionally, the visibility of this feature depends on the absence of administrative restrictions on your calendar. For those using Personal Outlook accounts, look for the Add Skype call option instead, allowing for easy incorporation of Skype calls into your events.

Shared Calendars

important

Some secondary calendars created a long time ago on Exchange (and still visible via EWS) will not be available via Microsoft Graph. Overall however, you should see the same calendars in BusyCal that you do in Outlook, for instance. If there are some shared calendars not syncing through, you may need to separately configure these in BusyCal:

  • Open BusyCal Settings, click on the Accounts tab
  • Select the account from the list, then on the Manage Sharing
  • Enter the email address of the person that has shared their calendars with you in the Add delegate field
  • Go back to main Settings and tap Sync Now

Shared calendars should now appear in the calendar list for this account, which you can manage under Calendar Set settings. In some situations, you may see duplicate calendars in the list for the same user that has shared their calendars with you. This is because the server is syncing these normally as well as separately via the sharing setting. The only workaround is to edit the calendar and toggle off the Enable Calendar option.

This way you will only see a single shared calendar.

In case you're still unable to see certain calendars shared with you, please note that Microsoft Servers treat calendars shared via Outlook differently than those share from the Exchange Portal.

Microsoft Graph Limitations

While the Microsoft Graph API represents Microsoft's latest offerings, it continues to evolve. It offers significant improvements over Exchange Web Services (EWS) across several fronts, including better security, more flexibility, and broader feature support. However, the transition towards fully adopting Microsoft Graph in place of EWS is still underway and you may find a few differences. The most glaring worth mentioning:

Possibly slow, initial sync

The Graph API imposes strict limits on the number of events that can be synced at any one time — a maximum of 20 currently. The server excessively throttles connections from 3rd party apps now. Therefore, if your calendar contains hundreds or more events, the initial sync may take a considerable amount of time. Complicating matters, Microsoft's Graph servers are prone to frequent timeouts and have additional restrictions on the number of times a third-party app can connect to the server within an hour. Consequently, you may encounter timeout errors and quota exhaustion errors when setting up sync for the first time. The workaround is to simply retry the sync every few minutes until the initial sync is complete. From then on, sync speeds should be considerably faster, as the app will only sync delta changes.

note

In the utmost worse case sync may never seem to end if you have thousands of events. The only way around this would be to trim / delete / archive some old events using Outlook and then attempt to re-add the account to BusyCal so there's less initial data to sync.

Due Times unavailable for Tasks

Exchange / Office 365 (also known as Microsoft To Dos) do not support due times. You can only assign due dates to tasks. Having said that, BusyCal still makes these available via additional meta-data that's stored in Outlook and is synced reliably across devices running BusyCal.

Sharing Secondary Calendars Limitations

To share a secondary calendar with someone (in Outloook), you must also share your primary calendar with them, with at least Availability access. Once you’ve granted someone Availability access or higher to your primary calendar, you can share secondary calendars with them.

Floating Times Unavailable

Floating Times are not supported by Exchange. If you create an event in floating time in BusyCal, it appears in GMT time in other apps.

Alarm Limitations

  • Exchange allows only one alarm per event.
  • Exchange does not allow Alarms to trigger after an event's start time. If you create an alarm that triggers after the start of an event, it is converted to an “At start” alarm after syncing with Exchange.

Repeating Event Limitations

  • If you create a repeating event with a recurrence rule that is illegal on Exchange, it is modified during syncing to be compatible with Exchange and your local copy is updated to match Exchange.
  • Exchange doesn’t allow detached events (or alarms) to overlap the next/previous occurrence of the event.
  • Exchange doesn’t allow "undoing" the cancellation or deletion of particular occurrences. If you delete an occurrence in BusyCal and perform undo, Exchange will revert the change during sync.

Attachments Limitations

  • Attachments are currently only supported for Events. Support for attachments for Tasks is coming soon.

Public Calendars / Folders Unavailable

  • There does not seem to be a way to explore and subscribe to public calendars / folders at the moment.

Troubleshooting

If you are unable to connect to your account or you're being prompted for Admin Consent, you would need to reach out to your Office 365 admin and ask them to grant BusyCal permission to connect to your account. We have detailed instructions on how to grant BusyCal acceess using the Azure Portal.