Zend Framework: Zend_Ical Component Proposal
| Proposed Component Name | Zend_Ical |
|---|---|
| Developer Notes | http://framework.zend.com/wiki/display/ZFDEV/Zend_Ical |
| Proposers |
|
| Revision | 1.1 - 22 September 2007: Initial proposal 1.2 - 03 March 2008: Proposal rewrite 1.3 - 19 May 2008: Proposal update (wiki revision: 27) |
Table of Contents
1. Overview
Zend_Ical is a component to manage events, alarms and todos in calendar objects.
2. References
3. Component Requirements, Constraints, and Acceptance Criteria
- This component will handle ICS files from different data sources (Filesystem, FTP and HTTP (webDAV required for writing)).
- This component will support the entire ICS 2.0 specification
- This component will be able to create/write new ICS data
- This component will allow searching and iteration through calendar data
- This component must validate any input before writing them to the source
4. Dependencies on Other Framework Components
- Zend_Exception
- Zend_Date
- Zend_Uri
5. Theory of Operation
Zend_Ical will take an URI (String or Zend_Uri) as argument for the constructor method. Zend_Ical will then parse the ICS file through a LALR parsing mode. All time values within the ICS data will be converted to the local time zone.
After the parsing you can call different methods to gather data from the calendar or add additional data to it. You can also iterate through the calendar object to get all data available.
At the time of writing, Zend_Ical will only support the iCalender 2.0 format.
6. Milestones / Tasks
- Milestone 1: [done] Proposal finished
- Milestone 2: [done] Development of prototype started and checked into http://zend.svn.dasprids.de/
- Milestone 3: Proposal approved
- Milestone 4: Working prototype checked into the incubator.
- Milestone 5: Unit tests exist, work, and are checked into SVN.
- Milestone 6: Documentation exists.
7. Class Index
- Zend_Ical
- Zend_Ical_Exception
- Zend_Ical_Parser
- Zend_Ical_Source_Exception
- Zend_Ical_Source_Abstract
- Zend_Ical_Source_Filesystem
- Zend_Ical_Source_Ftp
- Zend_Ical_Source_Http
8. Use Cases
| UC-01 |
|---|
Open a ICS calendar file
| UC-02 |
|---|
Fetching specific events
| UC-03 |
|---|
17 Comments
comments.show.hideSep 23, 2007
Sebastian Krebs
As discussed somewhere else, here are my hints for the interface. That are ideas, which may be useful, but dont has to be, as some might be very special
1. default methods like add, set, get, ...
2. getByDateDuration($startDate,$endDate), .... Maybe with the possibility only to get only all items, which are fully in, or their start-/endtimes are in
3. getByDate($date) at the other hand can maybe return the items, which duration overspan the specified time
4. hasByDate($date)/hasByDateDuration($startDate,$endDate), if there are items. I think very useful to specify, if there is free time to plan with
5. *byType. Maybe is more useful not to provide a method for this, than provides a option to use with the other methods to filter by Type.
6. getNext, getLast (maybe with parameters). First one seems to by very useful for something like "next meeting at ...", getCurrent as a alias for "getByDate ('now')" (something like that)
7. load, store to file. maybe a kind of file locking possible? (Ive no idea)
8. Merge?
9. Export,Import?!? Seems to be quite special, properly not used very much
Feb 22, 2008
Ziyad Saeed
Will this allow generation of repeat events based on RRULE part of the iCal specification.
for eg a sample RRULE like
DTSTART;TZID=US-Eastern:19970902T090000
RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH
should return this
(1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30;October 2
Mar 03, 2008
Ben Scholzen
Yes, the entire Ical v2.0 RFC features will be supported.
Mar 17, 2008
Justin Plock
I'm really looking forward to using this on a project I'm working on.
Apr 04, 2008
Daniele Princiotta
This is going to be very useful.
Are there any plans to add also iCal creation functionality or will this component only parse existing ones?
Apr 16, 2008
Ben Scholzen
It will also be able to create new files, yes.
Jun 02, 2008
Alexander Veremyev
This proposal has been approved for laboratory development with the following suggestions:
Sep 08, 2008
Jaka Jancar
Wouldn't this be more properly called iCalendar and not iCal? I know iCal is also used for the format, but in the RFC it's always called iCalendar. Also, iCal is the name of Apple's calendar program.
Sep 08, 2008
Jurrien Stutterheim
Your reasoning is absolutely right, however... Zend_Icalendar is a very long name compared to Zend_Ical. Personally, I'd rather type less than be more correct in this case
Sep 17, 2008
Ben Scholzen
Correct, keep it simple
Mar 23, 2009
Ben Scholzen
Postponed to 1.9.
Aug 08, 2009
Tomasz Kuter
Hi,
Any progress in this project?
Now, version 1.9 is available, but iCalendar is not included..
Could you provide some more information about this project future plans?
Nov 20, 2009
Matt Simpson
I am also just checking in to see if there has or will be any progress on this component.
Jan 08, 2010
Marcus Stöhr
Is this proposal still being worked on?
Sep 18, 2010
Ben Scholzen
I'm currently working on Zend\Ical for ZF2 again.
Apr 20, 2011
Adrien Crivelli
Are you still working on that ? I had look in http://framework.zend.com/svn/framework/laboratory/Zend_Ical/library/Zend/ but it looks very incomplete. Do you have another repository ?
I would be interested in creating .ics files, so I could contribute for "export" feature, but I feel like the code in repository is not up to date at all, so I'm not sure if it's worth working on that...
Aug 24, 2011
Ben Scholzen
Check my GitHub account.