Upcoming Breaking Change to Time in Status by OBSS REST API


There is an upcoming breaking change in the REST API of Time in Status by OBSS

We will release an update to the Time in Status REST API on July 10th, 2023. This update will include some changes in the Public REST API response format that are not backward compatible.

As part of this update, we will be introducing a new feature that will allow users to define calendars with multi-part working hours and different working hours for each day. After this update, it will be possible to define calendars with lunch breaks, calendars with different working hours for different days, and calendars with multiple shifts within a day.

This update will change the json representation of calendar definitions. All your existing calendar definitions will be converted to the new format when you open Time in Status UI for the first time after the update.

More importantly, the update will cause a change in the json format of REST API responses.

Currently, the calendar definitions are returned like this:

   "calendar":{
      "id":148,
      "name":"normalHours",
      "monday":true,
      "tuesday":true,
      "wednesday":true,
      "thursday":true,
      "friday":true,
      "saturday":true,
      "sunday":true,
      "timeZone":"UTC",
     "startTime":"08:00",
      "endTime":"17:00",
     "holidayList": [
          {
                "date": "01/01/2022",
                "applyEachYear": true,
                "description": "New Year"
            },
            {
                "date": "31/10/2022",
                "applyEachYear": true,
                "description": "Halloween"
           },
],
"holidaysSuccessfullyLoaded": true;
     "holidays":{
           "01/01/2022": "New Year",
           "31/10/2022": "Halloween"
}
   }

After the update, calendars will be returned like this:

"calendar": {
        "clientKey": "c0b91cc2-61aa-35f7-ac4f-xxxxxxxxxxxx",
        "id": 148,
        "isDefault": false,
        "name": "Test Calendar",
        "timeZone": "Europe/Istanbul",
        "workingTimes": [
            {
                "weekday": "MONDAY",
                "start": 28800000,
                "end": 61200000
            },
            {
                "weekday": "TUESDAY",
                "start": 28800000,
                "end": 61200000
            },
            {
                "weekday": "WEDNESDAY",
                "start": 28800000,
                "end": 61200000
            },
            {
                "weekday": "THURSDAY",
                "start": 28800000,
                "end": 61200000
            },
            {
                "weekday": "FRIDAY",
                "start": 28800000,
                "end": 61200000
            }
        ],
       "holidays": [
            {
               "name": "New Year",
               "date": "2022-01-01",
               "recurring": true
            },
            {
                "name": "Halloween",
               "date": "2022-10-30",
                "recurring": true
            }
        ],
        "is7x24Calendar": false,
        "allWorkingDaysHaveEqualLengths": true,
        "calendarSuccessfullyLoaded": true,
       "dailyWorkingHours": 9.0
    }

Unfortunately, the new format is not backward compatible. After the update, it will not be possible to get calendar information in the old format.

Who will be affected by this breaking change?

The majority of customers, even the ones using the REST API are expected not to be affected by this change.

Only customers that are using the public REST API of Time in Status, getting data in json format, and consuming the calendar definition in that response json will be affected.

Will I be affected by this change?

What should I do if I am affected?

If you are expected to be affected by this change, please get make preparations to update your REST integrations according to the new calendar format shown above.

When will this change happen?

This change is planned to be released on July 10th, 2023.

If you have further questions, you can reach OBSS support team through pluginsupport.obss.com.tr or by sending an e-mail to plugin@obss.com.tr