API Reference

The data model

TimeEdit’s data model is built to support an infinite amount of flexibility for our customers, allowing each and everyone to design a scheduling process that fits with their existing workflows and operations

The core concepts of TimeEdit’s data model

The data model revolves around 7 core concepts.

Types

Types, or object types, define which shape an object could take. For example, a type could be “room” or “professor”. Types are hierarchical meaning that one type could be “Room”, with sub types “Classroom” and “Study room”.

Fields

Fields define key value pairs of information. Fields are assigned to both objects and reservations. Fields come in many different varieties, e.g., text fields, integer fields, category fields, etc. For objects, the type of the object determines which fields can be assigned to it. For reservations, the relevant fields are determined by the reservation template.

Objects

Objects are instances that meet one or many types. An object contains the information specified by the fields associated with each type that the object inherits from. Almost everything in TimeEdit is an object, for example Study Room A could be an object of the type “Study room”, containing the fields that have been associated with that type.

Reservations

Reservations are simply a collection of objects reserved during a specified time. To make sure that reservations always contain the necessary information for all stakeholders, a set of rules are defined, specifying for instance which set of objects that have to be present on a reservation for it to be valid. In addition to objects and time, a reservation may also contain field information, e.g., free text comments etc. Which fields a reservation may contain is also determined by the rules defined for the type of reservation. Different types of reservation rules are collected in sets referred to as reservation situations. The reservation situations can be thougth of as different situations where reservations can be used like “scheduling” or “room bookning”. Note that the reservation situation is not maintained on the reservation itself, it’s merly a filter that can be applied when searching for reservations or creating reservations. Reservations can also be in several different states, e.g., confirmed, preliminary, or requested.

Cancellations

Cancellations are reservations that were made but ultimately cancelled. They are stored separately for performance reasons. A cancellation can not be reverted to a reservation, but contains the same information as the original reservation.

Orders

An order serves as an outline for one or many future reservations, defining what future reservations should contain. An order defines a time span, a start date, and an end date inbetween which future reservations are valid. An order also contains the number of future reservations the order should be converted into, as well as the length of each reservation. As an order has been converted to actual reservations, the order also contains a summation of the corresponding new reservations.

Users

Users, just like almost everywhere else, are the different people who have access to the scheduling software. It’s important to note the difference between a user and an object that represents a person.

Even without being a user, all professors, students, and staff can always find their personalized schedule on TimeEdit’s schedule viewer, called TE Viewer.

Time Stamps

Time stamps use the iCal string format. This consists of year, month, date, the letter ‘T’, hours, minutes and seconds, formatted like this YYYYMMDDTHHMMSS.

For example is the time stamp 10 august 2020 at 14:45:08 written as 20200810T144508. This time stamp is in the local time of the current user. The time stamp may be followed by the letter ‘Z’ in which case it represents a time stamp in UTC time zone, for example 20200810T144508Z.

XML Encoding

Please note that some characters have to be encode before they can be used in XML. This is especially true for the application key that is used in most TimeEdit SOAP calls. Some of the characters that require encoding in XML and SOAP are:

CharacterEncoded as
<&lt;
>&gt;
&&amp;
"&quot;
'&apos;

So for examples:

The application key chXAma<PCue#f(2R8Y1BR9LjvWx would when coded in to XML be <applicationkey>chXAma&lt;PCue#f(2R8Y1BR9LjvWx</applicationkey>.

The comment Ice & cream is > "chili" would in XML become <comment>Ice &amp; cream is &gt; &quot;chili&quot;</comment>.

SOAP example

An example of a SOAP call to the register function.

Content-Type: text/xml;charset=UTF-8  
SOAPAction: "register"  
Host: cloud.timeedit.net  
User-Agent: SampleClient

<soapenv:Envelope xmlns:soapenv="<http://schemas.xmlsoap.org/soap/envelope/>" xmlns:tns="<http://www.timeedit.se/timeedit3/version3">>  
   <soapenv:Header/>  
   <soapenv:Body>  
      <tns:register>  
         <tns:certificate>Base64 encoded certificate goes here\</tns:certificate>  
      </tns:register>  
   </soapenv:Body>  
</soapenv:Envelope>