Schedule/Timetable Widgets (Zermelo & Untis)

In GoBright View it's possible to retrieve information from various scheduling/timetable tools like Zermelo and Untis. This information can be used to display schedule changes on signage displays within a building. The changes can be filtered according to your needs.

  Zermelo Untis
Filter classes V V
Filter teachers V V
Filter subjects V V
Display cancelled appointments V V
Display changed teacher V V
Display changed location V V
Display changed time V V
Display changed subject V V
Display only changes made today V V
Display entire schedule for today* X X

* The widgets are built to only show changes in a schedule. Showing the entire schedule would cause an overload of information on the signage display.

Configuring schedule provider

There are a few requirements that need to be set up first. Please continue following the steps for your situation.

Zermelo configuration


  • The name of the organization within Zermelo
  • A Zermelo admin account
  • An API token
  • One or more codes of the location(s)
  • The Zermelo Widget

Create the API token

Please refer to our PDF in Dutch (at the bottom of this article) for instructions on how to create the needed user/access for View within Zermelo.

Summary of the Zermelo article

The first thing we require is the name of the organization within Zermelo. This is the same name within the URL you use to login to Zermelo:


Login to Zermelo with an admin account and note down the Schoolname within the URL, we'll be needing that later. Follow these steps within Zermelo to create a new API token:

  • Create a new user 'GoBrightView' within Zermelo
  • Create a role for this user, this role needs to have read permissions on all schedules that are displayed within GoBright View
  • Assign this role to the GoBrightView user
  • Create a API token
    • Go to Beheer > Admin-paneel > API Tokens
    • Create a new API token by pressing Toevoegen
    • Assign the token to the created user

Note down the API token.

Get the code from the location(s)

The Zermelo widget will only show information from one specific location. It's possible to add multiple widgets with different locations, but for each location, a code is required. This code can be found underneath locations within Zermelo or by following the steps below:

  • https://[Schoolname] 
  • Copy the created API token to the access_token field on the top right
  • Press the reload button
  • Scroll down to branches select it and press the try it out button
  • When done correctly there should be a list with all the names of locations and their codes displayed below:
{ "response": { "status": 200, "message": "", "details": "", "eventId": 0, "startRow": 0, "endRow": 4, "totalRows": 4, "data": [ { "code": "a", "name": "Apeldoorn", "somCode": "01rl00" }, { "code": "u", "name": "Uddel", "somCode": "01rl02" },

Note down the fields next to code this is the information we'll need within the widget.

Only items (appointments) that have a "changed" state are being displayed in the widget. If you copy an item in Zermelo it can be marked as an 'original' appointment, without "changed" state and thus won't show in the widget.

Untis configuration


  • The export from Zermelo (a GPU014.txt file)
  • A OneDrive or FTP location to publish the GPU014.txt file (this location must be accessible by the GoBright Portal and View device(s)
  • The Untis Widget


To set up OneDrive and the Graph API, please follow the steps in this article.

GoBright View Widget Configuration

Now head over to GoBright View to complete the following steps.

Zermelo Widget configuration
  1. Place the Widget in a template or slide.
  2. Fill in the API Token, Schoolname, and location code in the Zermelo widget. This should display all the changes based on the current location.
  3. Define the timetable / lesson times
  4. Set the filter parameters to your need (optional)


Untis widget configuration
  1. Place the Widget in a template or slide
  2. Choose the source (OneDrive or URL)
    1. OneDrive:
      Fill in the Client ID, Client Secret, Tenant ID, User Email, Folder Name (file location) and File Name
    2. URL
      Fill in the entire URL to the GPU014.txt file
  3. Define the timetable / lesson times (see below)
  4. Set the filter parameters to your need (optional) (see below)


Widget parameters


To show only the current changes we'll need to add in the times that the lessons take place. The time here represents the end time of the lessons. These times are mandatory for the widget to function correctly.


Filter options

There are three fields that allow filtering options class, rooms, and teachers. Filters can be used to include and/or exclude. To use these, an item can be entered to filter on that specific item. For example, if V5E is entered within the class_include field it will only show schedule informatio for class V5E. It is possible to use multiple items (seperated by a pipe: '|') or to use more advanced filtering options. This is done using regex. 


Some examples:

Filter Used in Explanation
a4b1|a4b2|a4b3 classes_include  Shows only classes ‘a4b1’, ‘a4b2’ or ‘a4b3’
aula locations_exclude Hides aula
pp|tvdg teachers_exclude Hides pp and tvdg
INV subject_exclude Hides all subjects containing 'INV'

In most cases these examples will suffice. 


More advanced filtering

When more advanced filtering is needed it is good to know that all this is based on regular expressions (regex). Please be careful as it is easy to hide all results. Then the widget will show a "there are no changes" message. 

Try to keep filters as simple as possible. Do not use an exclusion regex within a include field or vice versa to prevent 'double negatives'.


^ = Starts with characters after this sign
$ = Ends with characters before this sign
| = Separation character between each item
(?!) = Everything which is not equal to these characters


^r2 Filter on rooms that starts with ‘r2’ (this is case sensitive)
^r2|^r3 Filter on rooms that starts with ‘r2’ or ‘r3’
4A$ Filter on classes that ends with ‘4A’
(?!a4b1) Filter on everything except class 'a4b1'
(?!a4b1)|(?!a4b2)|(?!a4b3) Filter on everything except classes ‘a4b1’, ‘a4b2’ or ‘a4b3’
^(?!a4b) Filter on everything except classes that starts with ‘a4b
4\. Filter on everything containing "4." (the back slash is key)

Other options

There are a couple of other options that are used to:

  • sort the information by specific types or dates
  • change the order of the columns
  • show or hide previous schedule data (for example: classroom1 > classroom2)
  • show data from the current day and/or the next day
  • apply styling
4 out of 4 found this helpful