Separation
Can I separate the calendar into Interface and Data files?
Definitely.
The only thing to remember is that a couple of the calendar tables belong in the interface file, not the data file.
"CalendarInterface" makes use of global variables that are declared in scripts in the interface file. And since global variables are scoped to the file, "CalendarInterface" should be in the interface file, not the data file.
CalendarColors, however, belongs in your data file.
In a separated system you'll need to make a change to the way we handle colors in the event's record: separatation colors.