Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
fc7900b
Allow authentication types other than 'basic'
infostreams Feb 26, 2018
d578421
Implement missing date range filter
infostreams Mar 1, 2018
7595a4b
No longer ignore user provided 'resourcename'
infostreams Mar 1, 2018
1b3cb5c
CalendarDeletedResponse accepts 2 arguments, not 3
infostreams Mar 2, 2018
113fbdd
Add omitted namespace
infostreams Mar 2, 2018
92b72c2
Typo in namespace
infostreams Mar 2, 2018
71c1276
Merge pull request #1 from infostreams/patch-1
smarcet Mar 3, 2018
ba406b3
Merge pull request #2 from infostreams/patch-2
smarcet Mar 3, 2018
e2b7398
Merge pull request #3 from infostreams/patch-3
smarcet Mar 3, 2018
b62978f
Merge pull request #4 from infostreams/patch-4
smarcet Mar 3, 2018
0ea7809
Merge pull request #5 from infostreams/patch-5
smarcet Mar 3, 2018
5977824
[smarcet]
smarcet Mar 3, 2018
60c6a59
[smarcet]
smarcet May 3, 2018
aba1d99
Strip namespaces from XML before JSON conversion
infostreams Mar 2, 2018
cba31a4
User principals can be a multiresponse
infostreams Mar 2, 2018
f4951ea
Made tests succeed on both iCloud and SabreDAV
infostreams Mar 2, 2018
769f4e5
[smarcet]
smarcet May 4, 2018
88f47e1
Merge branch 'infostreams-patch-6'
smarcet May 4, 2018
cd63fc0
[smarcet]
smarcet Jun 1, 2018
d49988b
[smarcet]
smarcet Jun 1, 2018
6c097eb
Allow user to provide additional request headers
infostreams Jun 13, 2018
51eebf2
Add missing ‘getETag’ function
infostreams Jun 15, 2018
3350b20
[smarcet]
smarcet Oct 9, 2018
7aac9f4
[smarcet]
smarcet Oct 31, 2018
0b8c77e
[smarcet]
smarcet Mar 25, 2019
d4e88f7
[smarcet]
smarcet Jul 8, 2019
e08f28b
ETagEntityResponse status propstat fixes
gregjoy1 Feb 11, 2020
3e68132
Consolidated HTTP response status checking.
gregjoy1 Feb 10, 2020
93b20f7
Scrutinizer Auto-Fixes
scrutinizer-auto-fixer Feb 13, 2020
c3f711c
feat: add calendar color prop
anvanvan Aug 26, 2024
bbd7e65
feat(caldav): add component-set parser to detect VTODO calendars
anvanvan Nov 8, 2025
a3519ab
feat(caldav): add privilege-set parser to detect read-only calendars
anvanvan Nov 8, 2025
802cc19
test: add sanitized iCloud CalDAV fixtures for workaround migration
anvanvan Nov 13, 2025
195d058
feat(caldav): add canEdit() convenience method to GetCalendarResponse
anvanvan Nov 13, 2025
3877621
feat(caldav): add getCredentials() method to CalDavClient
anvanvan Nov 13, 2025
1b858b1
feat(caldav): add parseVAlarms() with RFC 5545 support and X-APPLE-DE…
anvanvan Nov 13, 2025
a4f630b
feat(caldav): add expandWithRRulePreservation() to preserve RRULE on …
anvanvan Nov 13, 2025
cea5099
feat(caldav): add createEventFromICS() and updateEventFromICS() methods
anvanvan Nov 13, 2025
af0c299
test(caldav): verify response methods exist
anvanvan Nov 13, 2025
351864a
docs: add changelog for workaround migration
anvanvan Nov 13, 2025
3e30d64
feat: preserve X-MASTER-DTSTART when expanding recurring events
anvanvan Nov 25, 2025
257680a
feat: add HTTP MOVE support for moving events between calendars
anvanvan Nov 26, 2025
c9221f9
fix: restore corrupted test fixture file
anvanvan Nov 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Changelog

## Unreleased (2025-01-13)

### Added
- `canEdit()` convenience method to GetCalendarResponse for checking calendar write permissions (commit f1c2c81)
- Returns true for writable calendars or when privilege-set not provided by server
- Eliminates need for null-checking `isWritable()` in application code
- `getCredentials()` method to CalDavClient for accessing stored credentials (commit 126d2fb)
- Returns array with 'user' and 'password' keys
- Removes need for reflection to access private properties
- `parseVAlarms()` static method to GetCalendarResponse with full RFC 5545 support (commit fa44101)
- Supports duration-based triggers: "-PT15M", "PT0S", "-P1D", "-PT1H30M"
- Supports absolute DATE-TIME triggers: "19760401T005545Z"
- Handles mixed time units (weeks, days, hours, minutes, seconds)
- Preserves X-APPLE-DEFAULT-ALARM property for default alarm detection
- `expandWithRRulePreservation()` static method to GetCalendarResponse (commit 8022062)
- Preserves RRULE on expanded recurring event instances
- Attaches RRULE as X-MASTER-RRULE property for frontend display
- Eliminates need to manually capture/restore RRULE during expansion
- `createEventFromICS()` and `updateEventFromICS()` methods to CalDavClient (commit d66c0c7)
- Support for raw iCalendar content in PUT requests
- Enables proper all-day event creation and custom property preservation
- Returns EventCreatedResponse/EventUpdatedResponse with ETag handling
- Comprehensive test coverage (commit 711ec62)
- Verified response methods (isSuccessFull, getCode) exist
- Tests for all new functionality

### Improved
- `getCurrentUserPrivileges()` and `isWritable()` methods now in GetCalendarResponse
- All-day event creation/update now supported via library methods
- VALARM parsing supports all RFC 5545 duration formats and absolute timestamps

### Migration Notes
For applications migrating from workarounds to native fork functionality:

1. **Privilege Checking**: Replace null-checking logic with simple `$response->canEdit()` call
2. **Credentials Access**: Replace reflection code with `$client->getCredentials()`
3. **VALARM Parsing**: Replace manual parsing with `GetCalendarResponse::parseVAlarms($vevent)`
4. **RRULE Preservation**: Replace manual RRULE capture/restore with `GetCalendarResponse::expandWithRRulePreservation($vcalendar, $start, $end)`
5. **Event Creation**: Replace direct HTTP PUT/Guzzle calls with `$client->createEventFromICS()` and `$client->updateEventFromICS()`

All changes are backward compatible with existing CalDavClient API usage.
5 changes: 3 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@
"guzzlehttp/guzzle": "^6.3",
"sabre/xml": "1.5.0",
"sabre/uri": "1.2.0",
"eluceo/ical": "^0.11.3"
"eluceo/ical": "^0.15.0"
},
"require-dev": {
"phpunit/phpunit": "^5.7"
"phpunit/phpunit": "^9.5",
"sabre/vobject": "^4.2"
},
"autoload": {
"psr-4": {
Expand Down
Loading