Skip to content

Participants and alarms ​

Events and todos expose typed organizers, attendees, and nested alarms.

Organizer ​

Organizer represents one ORGANIZER property.

MemberTypeMeaning
addressstringOriginal cal-address, including mailto: when present.
email?stringAddress without the case-insensitive mailto: prefix; otherwise null.
name?stringCN parameter.
sentBy?stringSENT-BY parameter.
directory?stringDIR parameter.
parameters()array<string,string|list<string>>Every parameter, including unknown ones.

Attendee ​

Attendee represents one repeated ATTENDEE property. Attendees are not merged by address.

MemberTypeMeaning
addressstringOriginal cal-address.
email, name?stringAddress without mailto: and the CN display name.
role, status, type?stringUppercase ROLE, PARTSTAT, and CUTYPE.
rsvp?boolTRUE, FALSE, or null when absent or unrecognized.
delegatedFrom, delegatedToCollection<int,string>Every delegation address.
parameters()array<string,string|list<string>>Every parameter, including unknown ones.

Alarm and trigger ​

Each Alarm represents one VALARM inside an event or todo.

MemberTypeMeaning
action?stringACTION.
trigger?AlarmTriggerRelative or absolute TRIGGER; invalid or absent values return null.
description, summary?stringReminder text.
attendeesCollection<int, Attendee>Repeated alarm attendees in document order.
attachmentsCollection<int, Property>Repeated ATTACH properties in document order.
repeat?intREPEAT count.
duration?DateIntervalTime between repeats.
properties(), property()Collection / ?PropertyDirect standard, IANA, and extension properties.
rawComponent()VAlarmA defensive clone of the low-level alarm component.
php
$trigger = $event->alarms->first()?->trigger;

$trigger?->isRelative(); // ?bool
$trigger?->isAbsolute(); // ?bool
$trigger?->duration();   // ?DateInterval
$trigger?->dateTime();   // ?CarbonImmutable
$trigger?->relatedTo();  // START, END, or null

For a relative trigger, duration() is the offset before or after the related event or todo boundary, and relatedTo() identifies its start or end. For an absolute trigger, dateTime() is the reminder time. If the typed trigger is null and you need its normalized or low-level value, inspect the Alarm through property('TRIGGER') or rawComponent().

Last updated:

Released under the MIT License.