Cronofy changelog
Cronofy changelog
www.cronofy.com

Scheduling over busy times

 

Scheduler

  

When using the Scheduler's "Custom times" mode, you are now able to override how we consider available and busy times in the host’s calendar.

For example, you may have a particularly important prospect to invite to a sales call, and are happy to move other events in your calendar to accommodate their preferred time.

Or, you may be trying to schedule an interview for a hiring manager who has blocked out interview times in their calendar to make sure that they are kept free.

By default, any events in the host's calendar will be considered busy and those times will not be offered. You may now opt-in to offering times "Whether busy or not", and the Scheduler will stop considering busy times in the host's calendar.

We'll still avoid double booking with other events that the Scheduler has created in their calendar, and their minimum notice preference will still be in effect.

Current, default behaviour:

image.png

When choosing to ignore busy times in the host's calendar:

image.png

The same options are available when you're scheduling on behalf of someone else.

Public Links for Group Scheduling

 

Scheduler

  

You can now create Public Links for any Group Scheduling Rules you've created within your Organizational Unit.

Public Links are an alternative to sending personalized Scheduling Requests to contacts. You can instead share a single link as widely as you like, and anyone with the link can use it to schedule an event according to the Rules you've defined.

To set up a Public Link, visit the details page of any Group Rule you've defined:

image.png

The option is at the bottom of the page:

image.png

Anyone visiting the link will be required to enter their details before their meeting time is confirmed and events are created:

image.png

Custom date range for Scheduler requests

 

Scheduler

  

The Scheduler now supports selecting a custom date range for your Requests.

You can select a range that is a maximum period of 35 days and this period can be up to 6 months in the future. This is available on individual Requests created using the web app or our extensions.

image.png

Event Triggers moves out of Alpha

 

Beta

 

API

  

We've updated the release status of Event Triggers from Alpha to Beta. This represents the fact that the API won't change, and that we're confident in its performance after a good amount of real-world usage by our customers.

Event Triggers allow you to subscribe to callback notifications attached to the start and/or end times of a calendar event.

Use cases such as custom event reminder notifications before an event become much easier, as your application no longer needs to have the infrastructure to schedule the action in a timely way.

Instead, simply add an appropriate subscription when creating the event:

{
  "event_id": "important-meeting",
  ...
  "subscriptions": [
    {
      "type": "webhook",
      "uri": "https://yourapp.com/callbacks/send_reminder/xxx",
      "transitions": [
        { "before": "event_start", "offset": { "minutes": 15 } }
      ]
    }
  ]
}

Read more about Event Triggers in our Developer documentation.

Longer durations for Scheduler requests

 

Scheduler

  

The Scheduler now supports creating Request links that are valid for 28 days.

This is available on individual Requests created using the web app or our extensions - and you can configure it as a default within your Scheduler Settings or within Organizational Unit Scheduling Rules.

image.png

Real-Time Scheduling - notification when no times are displayed

 

API

  

We've released a new feature within Real-Time Scheduling to help you manage the less-happy case when a recipient of your link has no times to select from at all.

While we handle the situation where none of the displayed slots are suitable to the recipient, having no times available at all was a dead end - the user couldn't choose a time, and your application had no way to react to the situation.

Now, you can add the new callback_urls.no_times_displayed_url parameter, and your application will get a callback notification when this situation arises.

POST /v1/real_time_scheduling HTTP/1.1

{
  "event": {
    "event_id": "qTtZdczOccgaPncGJaCiLg",
    "summary": "Product Manager Interview at Globex",
    "tzid": "Europe/London"
  },
  "availability": {
    ...
    "query_periods": [
      { "start": "2022-06-08T09:00:00Z", "end": "2022-06-08T18:00:00Z" }
    ]
  },
  ...
  "callback_urls": {
    "completed_url": "https://yourapp.com/callback/success",
    "no_times_displayed_url": "https://yourapp.com/callback/no_times_displayed"
  }
}

We'll send the notification automatically, as soon as the user visits the scheduling link and is presented with no times to choose from.

Rescheduling Scheduler requests: groups, sequences, integrations

 

Scheduler

  

Recipient rescheduling is now an option for all types of Scheduler request, including those created from:

  • Group Scheduling Rules
  • Sequence Scheduling Rules
  • Scheduling Triggers for integrations

The option to enable rescheduling will appear when configuring any of these, and will appear like this, along with the other scheduling parameters:

image.png

Your recipients will then have more flexibility by being able to change their selected time from the original request link.

When an event (or sequence of events) is rescheduled, we'll update affected calendars automatically and will additionally notify the affected parties — the event hosts and the request coordinator — by email.

Real-Time Scheduling confirmation step

 

API

  

We've added the ability to prompt the user for confirmation during their Real-Time Scheduling journey.

The previous, and default, mode is for us to book their event immediately after selecting a time.

image.png

Adding the new optional parameter selection_mode triggers the new step:

{
  ...other RTS parameters
  "selection_mode": "confirm"
}

image.png

Read more in our Real-Time Scheduling documentation.

Real-Time Scheduling event overrides

 

API

  

We've released two updates to Real-Time Scheduling that give you more control over the calendar events it can create on your behalf.

  • events can now have conferencing settings overridden based on who is selected as the organizer of the event
  • events can have attendees automatically added when they are selected for the time slot as a result of the Availability Query you specify

There's a full example that makes use of both new features over on our docs site. For more details, read on.

These features build on top of single event creation mode and are both an addition to the target_calendars parameter.

In this mode, the Real-Time Scheduling link will create a single event in an organizer's calendar as the result of the end-user selecting a time. The organizer is chosen based on the Availability Query you provide. The Availability Query may specify that multiple members of a group of potential participants must be available at the same time for a slot to be valid. For example, an interview that requires three members out of a larger pool of potential interviewers.

Specifying the organizer's conferencing profile

target_calendars.event (docs) controls event overrides when a given user is selected as the event organizer.

{
...
  "target_calendars": [
    {
      "sub": "acc_5e591ae2815c14f86ea55caf",
      "calendar_id": "cal_Xlka34FcFPhupVxZ_K@fbCQqIXfoVEHSVR06mpg",
      "event": {
        "conferencing": {
          "profile_id": "pro_YABpIfWqk4wjcW5t"
        }
      }
    }
...
}

Here, a specific conferencing profile belonging to the account is provided. When the event is placed in their calendar, this will override any conferencing set on the top level event template.

This allows you to provide end-users with discrete control over their preferred conferencing mechanism, for events booked in their calendar.

Adding attendees from the Availability Query

target_calendars.attendee (docs) controls how the other participants in the Availability Query are added to the final event. They'll only be added if they are available at the selected time, and only as many as are required.

{
...
  "availability": {
    "participants": [
      {
        "members": [
          {
            "sub": "acc_5e591ae2815c14f86ea55caf"
          }, ...
        ],
        "required": 3
      }
...
  "target_calendars": [
    {
      "sub": "acc_5e591ae2815c14f86ea55caf",
      "calendar_id": "cal_Xlka34FcFPhupVxZ_K@fbCQqIXfoVEHSVR06mpg",
      "attendee": {
        "email": "marty@evenitron.com",
        "display_name": "Marty McFly"
      }
    }, ...
  ],
...
}

In the scenario where three members of a pool must be available at the same time:

  • the first will have the event placed in their calendar
  • the other two can now automatically be invited as an attendee, should they be specified here

Real-Time Scheduling overlapping slots

 

API

  

We've added the ability for the slot options presented by Real-Time Scheduling links to overlap, meaning your end-users can have more choice over the times they select.

As an example, consider an event that will be one hour long, but the target calendar is unavailable between 12:30 - 13:30, marked by the blue arrows:

image.png

  • With default settings, we'll consider slots every hour, meaning the one hour period of unavailability blocks two hours of slots.

  • Setting a start_interval of 30 minutes helps, since it allows us to consider slots beginning on the half hour. This was previously available.

  • This most recent change allows enabling overlapping_slots via the Availability Query's response_format parameter, giving the greatest possible choice to the user.

The default remains unchanged (non-overlapping slots), so as not to impact existing consumers.

To read more about these parameters, please see our docs here.