Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
First-class calendar plugin for elizaOS agents. Owns the calendar domain that
previously lived inside @elizaos/plugin-personal-assistant:
Calendar feed aggregated across Google Calendar (via @elizaos/plugin-google)
and Apple Calendar (native macOS/iOS bridge via @elizaos/capacitor-calendar).
Client API — client.getLifeOpsCalendarFeed / createLifeOpsCalendarEvent / …
augmented onto the @elizaos/ui client.
Owner-facing views — week / day / month / agenda calendar UI and the event
editor drawer.
Boundary
The calendar storage and provider logic live here. The connector grant
registry (which Google account, which scopes, multi-account selection) is a
cross-connector concern owned by @elizaos/plugin-personal-assistant; plugin-lifeops
injects a CalendarConnectorGate into the CalendarService at init so there is
no dependency cycle. When plugin-lifeops is absent, the service falls back to
talking to @elizaos/plugin-google and the native Apple bridge directly.
Calendar contract types (LifeOpsCalendarEvent, LifeOpsCalendarFeed, …)
live in @elizaos/shared/contracts/calendar because the contract layer is the
only package both @elizaos/ui and the plugins can depend on without a cycle.
Commands
bun run --cwd plugins/plugin-calendar build # tsup + views + types
bun run --cwd plugins/plugin-calendar build:types # declaration emit
bun run --cwd plugins/plugin-calendar test# vitest
bun run --cwd plugins/plugin-calendar typecheck # tsgo --noEmit
See the root AGENTS.md for repo-wide architecture rules.