How it Works:
The DotCal companion program that ran in the background did all the legwork for the calendar to display the information. It worked in a couple of stages, these being split across two independent scripts that were triggered at set time intervals by the main script.
The iCal file is downloaded from wherever it is stored, this could be any service that allows download via link but we used Google Calendar
This is then read as a text file. The header and other information useful to normal calendar applications is removed leaving only the events
This is then picked apart by the script to get just the information that is needed. A configurable removal delay is also added and "All Day" events are identified.
This is all thrown into a text file for the second part of the script to read. This takes in the file and begins a series of checks.
These checks ask questions about the event such as: When should it happen?? Is it All Day? and Does it match todays date?
If the events pass these tests then they are put into a sorter which orders the events by time, with all day events at the top.
The top 8 of these results are then pulled and placed into a text file, which a much simple script within QLab reads and places within the correct slot
This covers the simplified version of the process. The script also accounts for several other possibilities including missing information, reading of the 24hr clock (not simple apparently) and accounting for operation in BST.
The display of current time, ticker and update time are handled from smaller scripts inside QLab.