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.
repeat?intREPEAT count.
duration?DateIntervalTime between repeats.
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 the original value, inspect the parent event or todo through its generic properties or raw component.

Last updated:

Released under the MIT License.