Give users the ability to schedule video-call-enabled appointments


This guide assumes that you already set up the Nabla iOS SDK as described in the setup guide.

Make sure you also integrate the video call module so that users and providers can video call on appointments.

Set up the scheduling module

Swift Package Manager

The NablaScheduling SDK comes as a part of Nabla SPM package. Since you should have added our repository as a dependency to your app already, you only need to link the NablaScheduling library to your target. There are two ways to do it, depending on how you are using SPM.

If you've added Nabla package from Xcode, simply add the library to your target:

  • Select your project in Xcode
  • Go tot the General tab
  • In the Frameworks, Libraries and Embedded Content section
  • Click the + button
  • Add NablaScheduling

If you are using a Package.swift file, add this line to your target.dependencies array:

.product(name: "NablaScheduling", package: "nabla-ios"),


Add the following dependencies in your Podfile

pod 'NablaScheduling'

And then run pod install to update your project.


Then add the NablaSchedulingModule to the list of modules when you init the NablaClient:

import NablaCore

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        apiKey: "YOUR_API_KEY",
        modules: [
          NablaSchedulingModule() // Add this line

      // ...

      return true

Use the scheduling feature

Make your organization ready

Before using the SDK to schedule appointments, make sure:

  • You specify consultation categories in your organization settings. Each category has a name, duration and associated providers.
  • At least one of the specified providers has availability. Each provider can specify their —single or recurrent— availabilities on the calendar tab.

Integrate the AppointmentListViewController

The standalone AppointmentListViewController lists the past and upcoming appointments along with a CTA to schedule a new one.

To get an instance, use the view factory:

let vc = NablaClient.shared.scheduling.views.createAppointmentListViewController()

Appointments starting in less than 10 minutes are considered imminent and cannot be canceled by patients anymore.

Imminent appointments will show a button to join the associated video call. Check the video call module.

Did this page help you?