Calendar Service
The calendar service allows you to create and use all the calendars in the system
Introduction
The calendar service is the interface for the calendar repository.
Calendars are either:
- Public - they are available to everybody and maintained by OpenDataDSL
- Private - they are proprietary and only available to you and your colleagues
All public calendar codes start with the # character in order to distinguish them from private calendar codes.
Getting a calendar
If you know the code for a calendar, you can get it from the service using the following active variable syntax:
calendar = ${calendar:code}
Example:
// Get the public England and Wales holiday calendar
enghols = ${calendar:"#eng"}
This returns a new Calendar variable with the England and Wales holiday rules configured.
Saving a calendar
If you create a new calendar or edit an existing one, you can save the calendar back to the service using the save command.
Example:
/**
Create an hourly calendar using a holiday calendar and
exclude hours 0-6 and 20-23
**/
ukpeak = IntradayCalendar(1h, holiday, \[0,1,2,3,4,5,6,20,21,22,23\])
// Save the calendar to the service
save ${calendar:ukpeak}
Listing Calendars
To get a list of available calendars, you can use the find command with the calendar service.
Example:
calendars = find ${calendar:public}
for cal in calendars
print cal.code
next
This gets a list of all the public calendars and prints their code to the console