Login Register

Interested in working on a Calendar widget?

One of the more widely requested features we receive is for a full-fledged Dojo Calendar widget (think a lightweight version of iCal or Google Calendar rather than the more date picker like calendar we have in dojox.widget.Calendar).

I was recently contacted by Matt Simpson of Queens University in Canada, and after discussions, we decided that we'd see if we can get a calendar project rolling by starting something in dojoc, and then moving it to DojoX once it starts to evolve.

For Phase 1 in a Dojo Calendar roadmap, the focus would be on getting the user interface correct for a read-only calendar with day, week, month, and task list views, as well as an approach for parsing dates and times.

If you have an interest in helping get this project off the ground, please send me an email or respond here (I'm dylan at the domain name of this site).

Interested

Well I guess there's no need to mention that we (i.e. Matt Simpson, MEdTech Unit, Queen's University) are interested in this. To start I thought I might come up with some XHTML mockups of each of the views. I can hopefully start this very shortly.

I am interested

Just email me and we can discuss. Edit: Forgot email.. Ha. marchawg at gmail dot com

Interested too

tdowling - gmail

I'd be willing to help out

I'd be willing to help out if there aren't enough volunteers. Something like this would really help out PD/Lucid.

Hello, I am currently

Hello,
I am currently working on a Calendar widget, i will glad to show you guys what i done so far, my interest on this is the same you have, provide a Dojo Event Calendar widget for the use of every one. I start building the widget based on iCalendar spec, looking into the iCal implementation of dojo 0.4.3 i start from there, if you want i will send all the code i done so far, i am currently creating calendars, creating recurring events on the selected calendars, the user can select color for calendars, and others options, i just wondering this might help you on interfaces and data model ideas. i think you can get something to go on. I have read the full iCalendar spec and is interesting how that works. I looked into Google Calendar and Microsoft Outlook of couse for ideas of what the user interface will be, and what functionalities must be present on the widget. Well just mail me at roly.frank@gmail.com or reply this comment. Only thing i want if to contribute with more ideas or code if needed, i never contribute to any dojo projects, but i use dojo all time and i will glad to contribute in any way, Thanks, sorry for my english.

Roland.

I just finished building one

Hey Dylan I just finished building one! The code belongs to my client, but I could build another (better) one in a week -- including drag-and-drop creation of events and fluid css layout. It's fully functional in IE6-7, Safari 2-3, FF 2-3, Chrome, and Netscape 7-9.
All we'd need to do is plug in iCal support and dojo theming.

While we're at it, we should

While we're at it, we should probably hook itnuo to dojo.storage.

You mean dojo.data? Yeah, I

You mean dojo.data? Yeah, I think we should just get it into dojo.data and write a store for iCal, that would be the cleaner way IMO.

Hey unscriptable, Wow,

Hey unscriptable,

Wow, that's promising news because I need this next week. haha. Joking, joking. Glad you're able to help out.

--

Best Regards,
Matt Simpson

If the project to build a

If the project to build a Calendar widget is started, i recommended these following functionalities

- Implementation of iCalendar spec, export/import funcionality improves comunication with other Calendar software.
Implements iCalendar spec includes a lot of funcionality.

- Design of funcionalities with plug in/out in mind. This way the final user can use the event calendar widget with minimal funcionalities, mucho more or full capabilities of the Calendar.

- Fully themeable.

- Timezone requires server support, otherwise a static Timezone map must be implemented and updated with every timezone change made in the world like the half-hour in Venezuela years ago.

- Drag & Drop support for events, on the diferents views you can create/edit/delete events, daily/weekly/monthly views.

- I think the calendar widget must be implemented with a data-model in mind, this is not a grid widget, i notice that the model was erased from the grid implementation, but this widget requires some model-logic, a Calendar has several events, an event has others properties etc, its a predefined data-model described in the iCalendar spec, not like the grid that can be anything.

- Make use of import/export of iCal funcionality to load the data of a calendar from server in that format.

- Extensions points with posibilities to save any change made on the calendar to the server, also the posibility to save all the data in one shot.

- Full integration with dojo.data, here i not sure how this can be made, becouse the existence of a predefined data-model, the server comunication can be made in iCalendar format, 'text/calendar' but that requires a parser in the server to process the calendar information, othervise with dojo.data a data-model can be implemented and a predefined dataStore will be used to comunicate with the server, and the calendar data will be in a json string in a OOP model.
Hope more ideas on what is the better way to comunicate with server.

These are some ideas, i just want a Calendar Widget with complex funcionalities, like Google Calendar and Outlook does, becouse a simple calendar widget with limited funcionalities just let the people to wait for a more serius Calendar widget, and Dojo can do this, the tools are there.
Thanks.

Roland.

Interested but not sure how I can help?

I used to work on Jical which is an early java ical parser with some other bits. Since then, others have written better ical parsers but I am familiar with the spec and love DOJO. I'd love to help in some capacity, even if it's just testing and documentation.

One comment I would make is that the hardest bit of icalendars is the 'repeat events' as these need to be handled with some sort of forward and backward window from the point of reference.

eg: weekly meeting on Fridays at 10am. Event established in 2003, still running. You need to be aware of the effect this vevent has on your most recent time periods.

If I can help, please tell me how?

I completely agree, the

I completely agree, the hardest part of modeling the solution is the recurring events, must be maintaned in time correctly.

Yes, recurring events are a

Yes, recurring events are a pain... Stuart, please send me an email...

A smart calendar example

Hi all.
As an example, the smartest calendar I have met was MooMonth, and for some reasons I can't explain, it's no more maintained.
It may be a good candidate for porting to dojox.widget...

http://code.google.com/p/moomonth/

I spoke to Roland (the

I spoke to Roland (the MooMonth developer) about MooMonth a while back when he was just getting going... and he really needed help, but just didn't have the community backup he may have deserved for the project to really reach a critical mass. It really was a nice direction he was headed in, but development by yourself is a lonely adventure sometimes.

--

Best Regards,
Matt Simpson

Hey All, Wow, I am very

Hey All,

Wow, I am very happy to see so much interest in this project. It sounds like we've got a great range of experience right off the bat to get this going. Dylan has been epic in getting this off-the-ground so thanks very much.

I have a few design paradigms I would like us to consider for this if I may be so bold:

Keep it absolutely simple, especially for the first release. This will ensure we're going in the right direction. Yes, absolutely we can do drag & drop events, recurring events, iCalendar support, etc, etc. But can I suggest for the first release we get the visual design, usability, and foundations perfected before adding a lot of features? Lets think read-only day, week, month, agenda view calendar capable of displaying multiple calendar sources in a single view, with really nice overlapping event support (as in how iCal and Google Calendar do it).

Keep it fast, lightning fast. Which is another major concern of mine when we start talking about parsing iCalendar files. I believe that Dylan (and correct me if I'm wrong) was talking about Apple's iCal application vs. the iCalendar standard, when he mentioned it in the original post. I've had a bit of experience with the iCalendar format (love the standard BTW), but I also know what it takes for PHP to parse large iCalendar files... Javascript I could then only imagine may take just that much more.

What I suggest is this for the first release then:
1. Read-only
2. Ability to on-the-fly add multiple calendar sources.
3. Load calendar data via JSON (lightening fast), makes the calendar widget usable from any programming language. If you want to load iCalendar files, simply have a PHP, Perl, Java, what-have-you ReST web-service parse the iCalendar files and output JSON.
4. Have the part of the calendar that loads the calendar data source a bit of an abstraction layer so that in the future, we can add direct (i.e XML, iCalendar, NewCalFormatX) parser support / plug-ins.

Comments?

--

Best Regards,
Matt Simpson

Dojo.data should be used

Hi,

With regards to loading the calendar data, this should definitely be done using a dojo.data store. This will provide the abstraction layer you need. It will also mean that any dojo.data classes implemented later, e.g. iCal etc, will be usable by other widgets

Shane

calendar and dojo.data store

@Shane: I agree completely. Do you have time/interest in this project?

Can't commit, but...

Hi Dylan,

It's definitely an interesting project, and I'd like to help out in some way. However, I'm crazy busy at the moment.

Perhaps a good place for my input would be in the creation of a data store that works with one of the calendar standards. This could be done in parallel to the main work, while the other guys work off an ItemFileReadStore, but not hold things up if I drop behind.

Shane

Calendar data store

Shane, that would be great... send me an email with your preferred address for a google group, and I'll add you to the discussion,

Really interested

HI, starting from this code for dojo 0.4.3: http://ekrantz.com/index.php/2007/03/01/creating-a-dojo-calendar.html
i started doing and got the dojo 1.2 version quite working.
If you are interested i have the source code and a test page,
just mail me at either
michele at vico10.com
or
michele.bertoldi at gmail.com

Michele.

Reuse dijit._Calendar

While Dylan refers to the _Calendar-based widgets as "Date Pickers", it's my hope that _Calendar could serve as the basis for any month-based calendar view by modifying the template and using mixins. I'm not sure whether it's reasonable for Week- or Day-based views to use the same base widget, but perhaps some of the same utilities could be leveraged to provide i18n.

For parsing of dates/times, I assume the functionality required beyond dojo.date.locale would be more along the lines of nls (likely more difficult to do with i18n) Would this be central to the project or just an add on for input/output for the GUI? (i.e. scheduling and notifications of events)

Reusing dijit._Calendar

Adam,

I agree, dijit._Calendar provides a lot of very useful functionality that would be good to include in any calendar widget we create.

I attempted to do just that with the dojox.widget.Calendar widget but was unable to without rewriting dijit._Calendar, as it wasn't flexible enough. So, I basically copied out what I needed and put it into an easily mixable base class for dojox.widget.Calendar. Perhaps we could use either that base, or would you prefer to rewrite the dijit._Calendar to provide the necessary flexibility?

Thanks

Shane

Ideally, I'd like to add

Ideally, I'd like to add hooks to dijit._Calendar to provide the necessary flexibility. Perhaps we need to look a this on a case-by-case basis. dijit._Calendar has to stay very light. If that's not possible, perhaps a new base class, at least in the interim, would make sense. dojox.widget.Calendar in its current state appears to embed a lot of functionality.

Hey DylanSign me up

Hey Dylan
Sign me up disappearedng at gmail dot com

I'd be glad to be involved

I'd be glad to be involved with this as well having done lots of work in this area multiple times.

I agree that the widget should talk to a dojo.data and we can pretty easily provide a dojo.data source to both interpret and present an iCalendar file as well as speaking to an ical service (or at least in iCal service proxy). It would be really cool to be able to connect to Google's new iCal capabilities!

Late last year we completed a widget that does something similar, though it was based on caldav instead of ical to meet the customer's needs (though there are a lot of similarities). In this implementation, we did _not_ resolve recurring events on the client side, which made it much faster and easier to implement...the server sent us the events by day. However in the store, the store understood the recurrences were part of the same event.

OSAF?

The Chandler Project seems to have a pretty Dojo-heavy web calendar system. I wonder if you could join up with them?

Code from Mozilla Lightning?

Another place to look might be Mozilla Lightning/Sunbird ( http://www.mozilla.org/projects/calendar/ ). Although it uses internal Mozilla APIs, large chunks are written in JavaScript, and you may be able to adapt some of the logic, or at least see how they've dealt with particular problems. Mimicking behaviour might help with CalDAV compatibility, too.

For back-end testing, have a look at DAViCal : http://wiki.davical.org/

No more comments ???? Is

No more comments ???? Is this project sleeping, I found no more informations anywhere ??

Please sign me up too. My

Please sign me up too. My email address is prakash.reddy AT gmail DOT com

Calendar updates

Hi Eric,

A small team has been working on a project. We expect to have a first version ready for review by late February. If you are interested in participating, please send me an email and I'll add you to the team. Otherwise, expect to hear some news in the very near future.

Regards,
-Dylan Schiemann
CEO, SitePen and Co-founder, Dojo Toolkit
SitePen Dojo Support

If i'm not too busy, i'm interrested

Hi Dylan,

my email e dot sancerry at a6t dot fr

Eric

Oh man...

I feel like such a noob. I replied to this post (2x!) but the reply doesn't seem to show up (perhaps it needs to be approved?). I would really love to find out more about this project as I am searching for a simple calendar widget to display an iCalendar feed (read-only, nothing fancy). roaming at gmail dot com

I am interested

Hi Dylan, Please Sign me up joelai7 at hotmail dot com thanks.

Interested in participating

Hi,

I would like to be involved with the development/feedback of the calendar widget.
carey at zestgroup dot com

Very interested in this

I was wondering if there are any updates regarding this project -- I'm looking for a simple calendar widget to display iCalendar data, just parse the events and display them in a calendar gui. Let me know please!
roaming at gmail dot com

Interested in this project

Any news/updates regarding this project?

Hi Dylan, Your most recent

Hi Dylan,

Your most recent update suggested a February preview, would you mind giving us another update? I have a project that needs such a facility and am wondering whether to just start myself or wait upon a look at what you guys have been up to. carey at zestgroup dot com