Creation of cl_gcalcli and sm_cl_gcalcli_test_1#701
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addition of SMACC2 Google Calendar client library
Addition of new cl_gcalcli client library for Google Calendar integration via the gcalcli CLI tool. Enables SMACC2 state machines to react to calendar events with configurable pattern matching and timing.
Architecture
ClGcalcli (Orchestrator)
├── CpGcalcliConnection - Connection health monitoring, heartbeat
├── CpCalendarPoller - Agenda polling + TSV parsing
└── CpCalendarEventListener - Pattern matching + event dispatch
Components
CpGcalcliConnection: Monitors gcalcli connectivity via periodic
heartbeat (gcalcli list). Tracks consecutive failures and emits
connection events after 3 failures.
CpCalendarPoller: Polls calendar agenda at configurable intervals,
parses gcalcli TSV output into CalendarEvent structs. Maintains
thread-safe cached event list.
CpCalendarEventListener: Matches events against watch patterns
(regex or substring). Triggers events based on start/end times
with configurable minutes_before offset.
Client Behaviors
start time to arrive. Supports regex patterns and early trigger.
Events
Connection events:
Calendar events:
Configuration
Test State Machine (sm_cl_gcalcli_test_1)
Added reference state machine demonstrating all behaviors:
→ StTestRefresh → StDone
States test:
Files Added
cl_gcalcli package (27 files):
sm_cl_gcalcli_test_1 package (17 files):