Single calendar event in hosted CMS

We are using Xibo in our school. We have a rotating schedule days such as “A” day, “B” day, “C” day, and these days cycle only on days when school is in session (i.e. the rotation does not advance over the weekend, on holidays, in-service days, etc.). We have an iCal accessible calendar in our student information system that maintains the cycle as an all-day event for each given day. I would like to be able to pull this event each day to display on our signs but I am not sure how to achieve this.

For clarification, the calendar that these “events” reside on, ONLY contain these single letter titled events, and each event is all day. Other school related events are maintained in a different calendar.

I’m afraid there’s no built in route to import schedules from an iCal feed.

I don’t think any of the recurring schedule patterns will get that for you either.

To get what you want, there’s a first part, and then two broad options:

  1. Make up three campaigns, A B and C. Add your layouts for each of those to those campaigns as you want.

Then either

a. Manually create all-day schedules to match your MIS system’s definition of the days - one for each day, excluding holidays, weekends etc. You can then add/remove layouts from the three campaigns to have them appear/disappear from the rotation. It’ll be tedious initially, but you can do a whole term at a time and then forget about it for a couple of months, before having to create more schedule events.

b. Write an integrator to consume the iCal feed, and then create schedules via the Xibo API to schedule those campaigns for the coming x days, then run that integration every x days. Again, you can then just add/remove layouts from the three campaigns to have them appear/disappear from the rotation.

I have considered the “1/a” method. Unfortunately, we actually have 8 different rotating schedules (I just used A, B, C as an example), so this would create a lot of extra management just to display a single letter. It’s certainly not a deal breaker, but we thought it’d be a nice extra touch if we could add that to the signs.

From what I’ve seen, there didn’t appear to be a built-in direct approach (as you mentioned), but I was hoping that maybe someone had a creative solution, even if it meant using tools outside of Xibo to get the information into something usable by Xibo.

I see.

Sorry cross purposes. What I’d do in that case is write some trivial PHP to get today’s event from the iCal feed, and serve that as a 1 item RSS feed.

Xibo can then consume that and show the letter.

Alternatively, convert your iCal feed to CSV file (there must be a converter out there for that!) and then import the date and letter in to a dataset and use a dataset view to show just the letter.

I’ll check in with our dev guy here and see if he can’t throw together a PHP script to try out what you had recommended there.

I have noticed the ability to use datasets, but we haven’t explored that component just yet.

Thanks for the tip!

1 Like

I’ve exported the calendar entries into a CSV. How would I setup a dataset? The CSV contains columns with the following headings:

Start Date
Start Time
End Date
End Time

It’s very similar to this:

This helped a lot!

I was able to import my CSV into a data set and almost duplicate what was explained in the article to get what I need. It is at least displaying what it needs correctly today, I will obviously have to keep an eye on it for tomorrow to verify that it updates properly.

1 Like