11 {
13BEGIN:VCALENDAR
14VERSION:2.0
15PRODID:-
16CALSCALE:GREGORIAN
17BEGIN:VTIMEZONE
18TZID:Europe/Minsk
19BEGIN:DAYLIGHT
20TZOFFSETFROM:+0200
21RRULE:FREQ=YEARLY;UNTIL=20100328T000000Z;BYMONTH=3;BYDAY=-1SU
22DTSTART:19930328T020000
23TZNAME:GMT+3
24TZOFFSETTO:+0300
25END:DAYLIGHT
26BEGIN:STANDARD
27TZOFFSETFROM:+0200
28DTSTART:20110327T020000
29TZNAME:GMT+3
30TZOFFSETTO:+0300
31RDATE:20110327T020000
32END:STANDARD
33END:VTIMEZONE
34BEGIN:VEVENT
35CREATED:20160331T163031Z
36UID:B9301437-417
C-4136-8DB3-8D1555863791
37DTEND;TZID=Europe/Minsk:20160405T100000
38TRANSP:OPAQUE
39ATTENDEE;CN=User Invitee;CUTYPE=INDIVIDUAL;EMAIL=invitee@
test.com;PARTSTAT=
40 ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:invitee@
test.com
41ATTENDEE;CN=User Organizer;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:organ
43SUMMARY:Event title
44DTSTART;TZID=Europe/Minsk:20160405T090000
45DTSTAMP:20160331T164108Z
46ORGANIZER;CN=User Organizer:mailto:organizer@
test.com
47SEQUENCE:6
48RECURRENCE-ID;TZID=Europe/Minsk:20160405T090000
49END:VEVENT
50BEGIN:VEVENT
51CREATED:20160331T163031Z
52UID:B9301437-417
C-4136-8DB3-8D1555863791
53DTEND;TZID=Europe/Minsk:20160406T100000
54TRANSP:OPAQUE
55ATTENDEE;CN=User Invitee;CUTYPE=INDIVIDUAL;EMAIL=invitee@
test.com;PARTSTAT=
56 ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:invitee@
test.com
57ATTENDEE;CN=User Organizer;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:organ
59SUMMARY:Event title
60DTSTART;TZID=Europe/Minsk:20160406T090000
61DTSTAMP:20160331T165845Z
62ORGANIZER;CN=User Organizer:mailto:organizer@
test.com
63SEQUENCE:6
64RECURRENCE-ID;TZID=Europe/Minsk:20160406T090000
65END:VEVENT
66END:VCALENDAR
67ICS;
68
70 $broker = new Broker();
71
72 $reflectionMethod = new \ReflectionMethod($broker, 'parseEventInfo');
73 $reflectionMethod->setAccessible(true);
75 $this->assertInstanceOf(
'DateTimeZone',
$data[
'timezone']);
76 $this->assertEquals(
$data[
'timezone']->getName(),
'Europe/Minsk');
77 }
static read($data, $options=0, $charset='UTF-8')
Parses a vCard or iCalendar object, and returns the top component.