Availability API - query_periods

We've recently updated our Availability API to support query_periods as well as available_periods as a root attribute.

A new-style example API query looks like this:

{
  "participants": [
    {
      "members": [
        { "sub": "acc_567236000909002" },
        { "sub": "acc_678347111010113" }
      ],
      "required": "all"
    }
  ],
  "required_duration": { "minutes": 60 },
  "query_periods": [
    {
      "start": "2020-06-17T09:00:00Z",
      "end": "2020-06-17T18:00:00Z"
    },
    {
      "start": "2020-06-18T09:00:00Z",
      "end": "2020-06-18T18:00:00Z"
    }
  ]
}

After working with the API for a few years now and discussing with customers, we concluded that the term available_periods wasn't expressing the intent of the syntax explicitly enough. query_periods is a far clear description of the purpose of that parameter at that level in the query structure. We recommend using query_periods going forward.

This change will also be supported in anywhere an availability query is used, eg: Real Time Scheduling, Sequenced Availability and UI Elements like the Availability Viewer and Slot Picker.

We will continue to support available_periods so no existing implementations need to change.

Naming remains, as ever, one of the hard problems. However, not one to shy away from when we recognize the need to change.

See the updated Availability API documentation for more details.

Conferencing push notifications

Our Conferencing Services feature has been updated to add the ability to subscribe to notifications when conferencing details are created on an event.

Conferencing creation is an asyncronous process that happens after the initial API call to create or update the calendar event, and by using these notifications, you can avoid having to poll our API waiting for the conferencing URL to be generated.

By adding a new subscriptions attribute to an event, you can subscribe your webhook URL to events by referencing a new interaction type of conferencing_assigned.

{
  "event_id": "qwhpaprqzzgklulmpxsb",
  "summary": "Virtual interview",
  "start": "2020-07-21T15:30:00Z",
  "end": "2020-07-21T16:00:00Z",
  "conferencing": {
    "profile_id": "default"
  },
  "subscriptions": [
    {
      "type": "webhook",
      "uri": "https://example.com/notification",
      "interactions": [
        {
          "type": "conferencing_assigned"
        }
      ]
    }
  ]
}

As soon as conferencing details have been created for your event, we'll POST to your URL with the full event details, so you don't need to make follow-up requests to our API at all.

Read more in the Push Notifications documentation.

Your Profile

We've released a series of improvements recently focused around the management of your Cronofy account.

Your Profile

Your_Profile___Cronofy.png

From here you can update your account email, name, time zone and other settings.

Calendar Services

Calendar_Services___Cronofy.png

This allows you to see all the calendar services connected to your Cronofy account. You can also add and remove. Especially useful if you during testing you end up connecting calendars you don't want to.

Conferencing Services

Similarly to calendar services, this section allows you to manage the conferencing services linked to your account. You can choose which one is the default to use for API interactions.

Account Security

Here is where you can change your password. You can also set up multi-factor authentication to protect your account from unauthorized access.

Go to Your Profile to manage your account.

Browser extension markup detection

The Cronofy browser extension allows end-users to generate personalized scheduling links straight from their browser.

Whilst we've setup contact detection for some web sites, the extension will also look for appropriately formatted markup in any web page. This allows any app to work with the extension, allowing your users to quickly create personalized scheduling links base for the contact they are viewing.

For example:

  • Recruitment software can allow a recruiter to quickly generate a scheduling link for a specific candidate.
  • CRMs can allow a sales person to generate a personalized link for a prospect. Instead of a static link that forces the prospect to fill in their details when the sales person already knows who they are.
  • Support systems can allow an engineer to generate a one-time link for a customer to book a call without making their calendar public.

It provides a quick and easy way to give users access to powerful scheduling capabilities whilst remaining in your application.

  1. You add simple, hidden markup to your web application.
  2. User installs the extension and follows the instructions to create a Cronofy account.
  3. Whenever the user clicks the extension when on one of your application's pages, it's pre-filled and ready to go.

See how in the Browser extension documentation

Zoom conferencing now live

Zoom conferencing is now available as a conferencing service option alongside 8x8, Google Meet, GoTo Meeting and Microsoft Teams.

Review the Authorization documentation for instructions as to how to allow end users to authorize using their Zoom accounts.

Auto-generate conferencing service links when creating an event

Our new Conferencing Services feature has been released in to Alpha today and is available on all plans.

By adding an additional conferencing attribute to an event, you can request that Cronofy auto-generates conferencing links for all participants.

{
  "event_id": "qTtZdczOccgaPncGJaCiLg",
  "summary": "Board meeting",
  "description": "Discuss plans for the next quarter.",
  "start": "2020-04-22T15:30:00Z",
  "end": "2020-04-22T17:00:00Z",
  "conferencing": {
    "profile_id": "default"
  }
}

This format will also work when added an event object to a Real Time Scheduling request.

See the conferencing services docs for more detail.

Supported Conferencing Providers

By default this will generate a 8x8 video conferencing link that anyone can access from a WebRTC compatible browser like Google Chrome.

We are also supporting the ability for your application end-users to authorize their preferred conferencing service. Instead of an 8x8 link, a meeting will be generated with this provider and the appropriate links and details will be added. We're launching with support for Google Meet, Zoom, Microsoft Teams and GoToMeeting.

This authorization flow is very similar to the way end-users will authorize access to their calendars. Instructions in the Authorization docs.

Support for TLS 1.0 and 1.1 removed

Support for HTTPS requests to use Transport Layer Security (TLS) versions 1.0 and 1.1 was removed yesterday for browser-based and API traffic as part of scheduled maintenance.

That traffic now uses the more secure TLS 1.2, keeping your scheduling information that little bit safer.

Office 365 Modern Auth for Enterprise Connect

Enterprise Connect now uses Modern Auth for Office 365 connectivity.

Microsoft are removing support for Basic Auth in October 2020 and this is the first step to transition Cronofy connectivity away from that.

Individual calendar connections have been using Modern Auth for many years and are unaffected by this change.

We will be reaching out with more details about the migration of Enterprise Connect connections to Office 365 in the coming months, with a view to giving those affected several months to replace their Basic Auth connections with Modern Auth connections to retain a seamless service.

Batch endpoint out of Beta

The Batch endpoint has been promoted out of Beta today.

This end-point allows the submission of multiple API transactions in one request. Used, for example, when your application needs to populate a user's calendar with a set of events.

By allowing up to 50 transactions to be encapsulated in one call, your application can both perform the operation more quickly as well as avoid hitting rate limits.

Review the Batch docs.

UI Elements are out of beta

Recent additions to our UI Elements mean we are now ready to officially move these user-interface tools out of beta. This won't affect the pace of new features - we're committed to continually updating and improving the elements - but it does mean we're guaranteeing no breaking changes or deprecations for the rest of v1.

Some highlights from the recently added features:

  • Full translations and localization for our core languages: Dutch, French, German, Italian, and Spanish (in addition to English).
  • Robust time zone support for instances where you want to force a UI Element to load in a specific time zone.
  • "Multi Select" and "Unrestricted" modes for the Availability Viewer element - further extending the use-cases for this versatile availability interface.

See the UI Elements Changelog for full details.