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.
Calendar Rows makes use of global variables that are declared in scripts in the interface file. And since global variables are scoped to the file, CalendarRows should be in the interface file, not the data file. Even though it has "records", they are really interface records, not data records.
I'd say the same for the calendar interface table. 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: separated colors.