calternal-dav
CalDAV projection over Daily note Log entries.
The provider owns persistence and user isolation. This crate handles only protocol data and never opens a path in the data directory. DAV XML requests use one iterative budget before recursive parsers (#785, DESIGN §21), shared by the virtual collections and the Files adapter.
Source: crates/calternal-dav/src/lib.rs
Modules
Section titled “Modules”| Module | Summary |
|---|---|
areas |
Stable, path-safe identities for the Log entry area calendar projection. |
files |
RFC 4918 class 1 and class 2 access to a User’s Home. |
protocol |
Virtual DAV collections. |
reminders |
iCalendar VTODO resources for Markdown Tasks. |
Structs
Section titled “Structs”JournalEvent
Section titled “JournalEvent”pub struct JournalEventA projected Log entry. The block ID is permanent; the ETag changes with the date or canonical line, so a move at the same time cannot be missed.
Fields
pub date: Stringpub entry: LogEntrypub note_url: Option<String>: A stable linked Note deeplink, when the Log entry has such a Note.pub alarms: Vec<String>: Raw folded VALARM components that the Markdown Log line cannot model. The Notes provider stores these beside the block identity in frontmatter.
Implements: Clone, Debug, PartialEq, Eq
JournalEvent::uid
Section titled “JournalEvent::uid”pub fn uid(&self) -> Option<String>No doc comment.
JournalEvent::etag
Section titled “JournalEvent::etag”pub fn etag(&self) -> StringNo doc comment.
JournalEvent::icalendar
Section titled “JournalEvent::icalendar”pub fn icalendar(&self) -> Option<String>The persisted IANA zone is included in the wire value. Legacy lines without a zone remain floating rather than guessing an instant.
Source: crates/calternal-dav/src/lib.rs:26
Functions
Section titled “Functions”parse_journal_icalendar
Section titled “parse_journal_icalendar”pub fn parse_journal_icalendar(body: &str) -> Result<JournalEvent, &'static str>Reject data that cannot round trip through one Log line. The detailed error lets the DAV layer distinguish malformed data from valid CalDAV components and properties that this projection cannot represent.