# How to implement a timer based scheduler?

  1. Define the message as a publishable message.

    publishable message GoodMorning
    
  2. Define the timer at the required interval.

    For example to schedule a message for 7am every morning, define a timer as follows:

    publishable message GoodMorning
    timer[GoodMorning] EveryMorning in Asia/Calcutta {
    	at 07:00
    }
    
  3. Define the processor and subscribe to the message set on the timer.

    processor MailSender {
    	subscribe message-ref GoodMorning
    }
    

Another complex schedule for reference:

timer[SomeMessage] CustomTimer in Asia/Calcutta {
	every 25 in AllMonths //on date 25th of all months
    every 15 in AllMonths // with above line, both 15th and 25th dates 
    every 1 of Everyday in Jan //on all days of the 1st week in Jan
    every 3 to 5 of Friday in Apr //on Friday of 3rd and 5th week in April
  
    at 11:33 , 12:55
    from 102:56 to 14:44 every 10 minute //Message raised once at 11:33 
  		//& then between 12.56 & 2.44pm in every ten minute interval.
}