Good way to make a calendar triggers?


I am wondering, how other specialist in the field make a good calendar of trigger? The result I want to have is 1 default timeline and different timelines based on different annual dates (national holidays, ect)

Right now I have this as an example for January:

  1. 1 of January - Timeline 1
  2. 2-10 of January - Default timeline
  3. 11-12 of January - Timeline 2
  4. 13-25 of January - Default timeline
  5. 26 of January - Timeline 3
  6. 27-31 of January - Default timeline

If I want to add for example, a trigger for 28th of January, I just add it between points 6 and 7 also changing the last for January so it becomes:

  1.  1 of January - Timeline 1
  2. 2-10 of January - Default timeline
  3. 11-12 of January - Timeline 2
  4. 13-25 of January - Default timeline
  5. 26 of January - Timeline 3
  6. 27 of January - Timeline 4
  7. 28-31 of January - Default timeline

My triggers are StartUp with Real time conditions and Start timeline action.  Since the controller has a daily Reset all controllers trigger, this works fine. 

Is this how you also do this or is there a better/another way? 

Kind regards,


  • You could play your default timeline at normal priority and the other timelines at above normal priority. This way you can leave the default timeline activated while timelines 1-4 play over the top when started.

    In addition, I have attached a module that you also may find useful when it comes to holidays. Cheers!Mosaic-IO

  • Depends on the project. I don't usually like the controller resetting every day but there isn't really an issue with it. Mosaic reads triggers from the top down, you could do the following...  Assume all triggers are astronomical or real time depending on your needs. 

    Trigger     Condition                               Action(s)

    trigger1 - Real Time *,1,1,*,*,*,*              Release all, Start Timeline 1

    trigger2 - Real Time *,1,2-10,*,*,*,*         Release all, Start Timeline 2

    trigger3 - Real Time *,1,11-12,*,*,*,*       Release all, Start Timeline 3

    trigger4 - Real Time *,1,13-25,*,*,*,*       Release all, Start Timeline 4

    trigger5 - Real Time *,1,26,*,*,*,*            Release all, Start Timeline 5

    trigger6 - Real Time *,1,27,*,*,*,*            Release all, Start Timeline 6

    trigger7 - Real Time *,1,28-31,*,*,*,*       Release all, Start Timeline 7

    trigger10 - X                                            Release all, Start Default timeline

    You could also have trigger 10 at the top and un-check absorb on match

    It is essentially doing the same thing without the hardware reset. Sometimes, depending on the project needs, I could have a table that is referenced by the LUA engine to automatically populate based on the date. It could even be a LUA function using else if in reference to the controllers date(time.get_current_time().month and . monthday I think). This is what I love about Mosaic... there are hundreds of ways to get the result you want. 

  • I found there is a module that may help with this: Modes.

    This Module allows you to setup 16 different Modes (think of these as what Timeline will play: Mode 1, Mode 2 etc.)

    You could set an Astronomical Trigger to Set the Mode based on your calendar dates, and then request the Current Mode Action

    This will Trigger a new Action: "Current Mode Received" which runs each time you request the Current Mode.

    So when this Current Mode Received Trigger is activated, it can present the number of the mode as a Variable, which you might be able to use for your timeline selection.

  • Hi, thank you. could you please explain the last paragraph in detail or give an example? I don't understand what you mean Slight smile

  • Thank you. For some reason it does not allow me use it - it's "unsupported". Perhaps as I am using 2.8.1

  • Thank you. The moving holidays is a useful module. Sadly, this is not what I am looking for. 

  • go to the project properties and be sure the latest API is being used 

  • The first part of the last paragraph is easy to explain. In my example my triggers are astronomical with a real time condition. If the condition is met the trigger will fire and release all timelines before starting the appropriate timeline. No need to reboot the controller to reset state or anything like that.

    Are you familiar with the LUA  API/ LUA scripting? I am afraid if I over simplify  or provide an overly complicated answer with examples I will only add more confusion. 

  • Necroposting - how do I see what dates/triggers are in the module? I would like to check if they match the local ones and (if it does not require much skill) add more events.