Skip to content

Commit d4a1fec

Browse files
committed
docs: add changelog for workaround migration
1 parent 711ec62 commit d4a1fec

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

CHANGELOG.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Changelog
2+
3+
## Unreleased (2025-01-13)
4+
5+
### Added
6+
- `canEdit()` convenience method to GetCalendarResponse for checking calendar write permissions (commit f1c2c81)
7+
- Returns true for writable calendars or when privilege-set not provided by server
8+
- Eliminates need for null-checking `isWritable()` in application code
9+
- `getCredentials()` method to CalDavClient for accessing stored credentials (commit 126d2fb)
10+
- Returns array with 'user' and 'password' keys
11+
- Removes need for reflection to access private properties
12+
- `parseVAlarms()` static method to GetCalendarResponse with full RFC 5545 support (commit fa44101)
13+
- Supports duration-based triggers: "-PT15M", "PT0S", "-P1D", "-PT1H30M"
14+
- Supports absolute DATE-TIME triggers: "19760401T005545Z"
15+
- Handles mixed time units (weeks, days, hours, minutes, seconds)
16+
- Preserves X-APPLE-DEFAULT-ALARM property for default alarm detection
17+
- `expandWithRRulePreservation()` static method to GetCalendarResponse (commit 8022062)
18+
- Preserves RRULE on expanded recurring event instances
19+
- Attaches RRULE as X-MASTER-RRULE property for frontend display
20+
- Eliminates need to manually capture/restore RRULE during expansion
21+
- `createEventFromICS()` and `updateEventFromICS()` methods to CalDavClient (commit d66c0c7)
22+
- Support for raw iCalendar content in PUT requests
23+
- Enables proper all-day event creation and custom property preservation
24+
- Returns EventCreatedResponse/EventUpdatedResponse with ETag handling
25+
- Comprehensive test coverage (commit 711ec62)
26+
- Verified response methods (isSuccessFull, getCode) exist
27+
- Tests for all new functionality
28+
29+
### Improved
30+
- `getCurrentUserPrivileges()` and `isWritable()` methods now in GetCalendarResponse
31+
- All-day event creation/update now supported via library methods
32+
- VALARM parsing supports all RFC 5545 duration formats and absolute timestamps
33+
34+
### Migration Notes
35+
For applications migrating from workarounds to native fork functionality:
36+
37+
1. **Privilege Checking**: Replace null-checking logic with simple `$response->canEdit()` call
38+
2. **Credentials Access**: Replace reflection code with `$client->getCredentials()`
39+
3. **VALARM Parsing**: Replace manual parsing with `GetCalendarResponse::parseVAlarms($vevent)`
40+
4. **RRULE Preservation**: Replace manual RRULE capture/restore with `GetCalendarResponse::expandWithRRulePreservation($vcalendar, $start, $end)`
41+
5. **Event Creation**: Replace direct HTTP PUT/Guzzle calls with `$client->createEventFromICS()` and `$client->updateEventFromICS()`
42+
43+
All changes are backward compatible with existing CalDavClient API usage.

0 commit comments

Comments
 (0)