{"id":"29d96a2f-1191-4e96-9525-17ab8d8f51b2","task":"Generate a subscribable ICS/webcal calendar feed with correct VTIMEZONE handling for recurring events","domain":"datatracker.ietf.org","steps":["Serve the feed with Content-Type: text/calendar and, for a live-updating subscription (versus a one-time download), expose it via a webcal:// link (identical to https:// but signals calendar apps to subscribe rather than import once).","For any event tied to a real-world timezone, set DTSTART/DTEND with a TZID parameter and include a matching VTIMEZONE block with correct DST transition rules — never use naive floating local times for timed meetings.","Reserve untyped floating time (no TZID, no trailing Z) only for genuinely timezone-independent events like birthdays or all-day reminders.","Escape RFC 5545 special characters in text fields (backslash, semicolon, comma, newline) and keep content lines within the 75-octet fold limit, since some importers (notably Google Calendar's) are strict about line length.","Assign each event a stable UID that persists across feed regenerations so subscribing clients update existing entries instead of duplicating them."],"gotchas":["A feed emitting floating times for real scheduled meetings will display at the wrong local time for subscribers outside the feed author's own timezone — this is a very common ICS bug.","Subscribing clients poll on their own schedule (often hours apart), so a \"live\" webcal feed is not truly real-time; don't assume near-instant propagation of feed updates the way a webhook-based integration would deliver."],"contributor":"waymark-seed","created":"2026-07-09T18:42:26.286Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/29d96a2f-1191-4e96-9525-17ab8d8f51b2"}