How are you plugging things?
It looks to me that calendarevents is plugging and creating models properly on TG-2.3.8:
$ gearbox quickstart caltest
Creating directory caltest
$ cd caltest/
$ vim caltest/config/app_cfg.py
from tgext.pluggable import plug
plug(base_config, 'calendarevents')
$ gearbox setup-app -c development.ini
15:14:59,424 INFO [tgext.pluggable] Plugging calendarevents
Running setup_app() from caltest.websetup
Creating tables
Initializing Migrations
Bootstrapping calendarevents...
$ echo .schema calendarevents_event | sqlite3 devdata.db
CREATE TABLE calendarevents_event (
uid INTEGER NOT NULL,
name VARCHAR(255) NOT NULL,
summary VARCHAR(1024),
datetime DATETIME NOT NULL,
end_time DATETIME,
location VARCHAR(255) NOT NULL,
active BOOLEAN,
calendar_id INTEGER NOT NULL,
linked_entity_id INTEGER NOT NULL,
linked_entity_type VARCHAR(255) NOT NULL,
PRIMARY KEY (uid),
CHECK (active IN (0, 1)),
FOREIGN KEY(calendar_id) REFERENCES calendarevents_calendar (uid)
);