<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-calendar-sync--expand-weekly.el, branch load-graph-classify-end</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-end</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-end'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-02-05T21:13:57+00:00</updated>
<entry>
<title>feat(calendar-sync): add event details — attendees, organizer, status, URL</title>
<updated>2026-02-05T21:13:57+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-05T21:13:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=d226f80a376c97a6adbcbc800be647cb69f0b50b'/>
<id>urn:sha1:d226f80a376c97a6adbcbc800be647cb69f0b50b</id>
<content type='text'>
Add ICS text unescaping (RFC 5545), HTML stripping, and new fields
(attendees/status, organizer, meeting URL) to calendar-sync.el.
event-to-org now outputs org property drawers. 88 new tests across
10 test files, 146/146 pass. Also fix pre-existing test require
order and keymap guard issues.
</content>
</entry>
<entry>
<title>feat(keyboard): add GUI key translation for M-S- bindings</title>
<updated>2026-02-02T14:34:36+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-02T14:34:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=7de7885ba13e616eb796de77cb2cf44a37884402'/>
<id>urn:sha1:7de7885ba13e616eb796de77cb2cf44a37884402</id>
<content type='text'>
Rename terminal-compat.el to keyboard-compat.el and add GUI support.

Problem: M-S-o and other Meta+Shift bindings didn't work in GUI mode.
GUI Emacs receives M-O (uppercase) but bindings use M-S-o syntax.
Terminal can't use M-O due to arrow key escape sequence conflicts.

Solution: Use key-translation-map in GUI mode to translate M-O -&gt; M-S-o
for all 18 Meta+Shift keybindings. Terminal fixes unchanged.

Also fix two test issues:
- Remove expected-fail from expand-weekly test (timezone fix resolved it)
- Add helpful install messages to dependency-checking tests
</content>
</entry>
<entry>
<title>fix(tests): fix failing tests across multiple modules</title>
<updated>2026-01-24T19:28:12+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-24T19:28:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=9417800ea7fedc658becb550943ed9931c37d031'/>
<id>urn:sha1:9417800ea7fedc658becb550943ed9931c37d031</id>
<content type='text'>
- test-org-noter: add org-id require for org-id-uuid
- test-org-agenda: update to expect 4 base files (pcal added)
- test-org-refile: fix lambda signatures for directory-files-recursively
- test-org-sort: stub cj/custom-keymap, cj/org-map, org-dir
- test-calendar-sync: mark Saturday weekday test as expected-fail (timezone issue)
</content>
</entry>
<entry>
<title>feat(calendar-sync): multi-calendar support with property tests</title>
<updated>2025-12-02T13:55:21+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-12-02T13:55:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=703bc366cf8439a398362d98bef513ef98942fd4'/>
<id>urn:sha1:703bc366cf8439a398362d98bef513ef98942fd4</id>
<content type='text'>
Added multi-URL calendar sync supporting Google and Proton calendars.
Each calendar syncs to separate file with per-calendar state tracking.
Added 13 property-based tests for RRULE expansion. Total: 150 tests passing.
</content>
</entry>
<entry>
<title>feat(calendar-sync): Add RRULE support and refactor expansion functions</title>
<updated>2025-11-18T18:54:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-18T18:54:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=ca5a891b6259e685a1631c20916a762bdc54a4e5'/>
<id>urn:sha1:ca5a891b6259e685a1631c20916a762bdc54a4e5</id>
<content type='text'>
Implements complete recurring event (RRULE) expansion for Google Calendar
with rolling window approach and comprehensive test coverage.

Features:
- RRULE expansion for DAILY, WEEKLY, MONTHLY, YEARLY frequencies
- Support for INTERVAL, BYDAY, UNTIL, and COUNT parameters
- Rolling window: -3 months to +12 months from current date
- Fixed COUNT parameter bug (events no longer appear beyond their limit)
- Fixed TZID parameter parsing (supports timezone-specific timestamps)
- Replaced debug messages with cj/log-silently

Refactoring:
- Extracted helper functions to eliminate code duplication:
  - calendar-sync--date-to-time: Date to time conversion
  - calendar-sync--before-date-p: Date comparison
  - calendar-sync--create-occurrence: Event occurrence creation
- Refactored all expansion functions to use helper functions
- Reduced code duplication across daily/weekly/monthly/yearly expansion

Testing:
- 68 tests total across 5 test files
- Unit tests for RRULE parsing, property extraction, weekly expansion
- Integration tests for complete RRULE workflow
- Tests for helper functions validating refactored code
- All tests passing
</content>
</entry>
</feed>
