Obviously allowing them to pull data onto their systems should not be
to difficult, as it should be elemental to add a system whereby they
are request a static HTML version of the page. This can then be stored
for offline browsing, which would actually be pretty useful really.
The simplest way I can think to do this would be to have a page called
something like www.OnlineHomeBase.com/static which, when visited would
produce a static Calendar and To-Do list, as determined by user
settings. This would be the simplest way to tie in with the offline
browsing in systems like MSIE and Netscape, as they could cache a
static page and would refresh it each time they were online.
The much more difficult challenge is to transfer data the other way,
without writing a specific application, it is pretty much impossible
to hold submitted data from a website for synchronisation when you are
next online. And I will assume you do not want to have to create
specific applications for each platform people may be using - it turns
a nice compact website into a far more complex system.
However, there is ar least one simple way to submit information back
to your database, and that is email. Most email clients are more than
happy to hold an email that is composed offline and then send it when
a connection becomes available. Furthermore, with short email services
available from many cellphones and via SMS with services like M-Mail
(http://www.connectotel.com/sms/mmail.html) it is possible to make
simple updates while on the road.
I have used exactly this technology to allow me to make updates to my
website remotely without needing access to an FTP client or even a web
Obviously this will require a fairly comprehensive command system to
allow for data to be updated via a medium as freeform as email,
although templates could be provided, and you seem to have some
flexability already in your data input.
These two methods are both easily within the reach of most users
without the need for alterations or upgrades to existing applications,
and without the need for additional software.
Another option, as prassoon touched on, is XML or similar file
formats. Many of your users may have calendars and to-do software on
their computers, it maybe possible for some of them to synchronise
data using simple open file formats. However, I have been unable to
find any good examples of what applications may do this.
However, if you are game to develop a client-side application to
accompany your site, I would suggest an ideal way to communicate with
your database is by the use of XML-RPC, which will allow an
application on a user's computer to make remote procedure calls to
your backend and update data simply and efficently.
These methods are ones I proposed when developing a web-based
application with a similar intent to yours. After looking at a few
options, we decided that adapting our application to the technologies
already in use by the users was the best option.
For information of XML-RPC in Perl, see the XML-RPC Howto, which has
examples in many languages:
Let me know if you think this won't work for you and I can look at
some of the other technologies I have passed over in the past, however
I think this is the most straight forward and simple approach.