RRULE will make you hate calendars

Calendars are not the simplest applications by far.  There are many different features, lots of different implementations, multitude of standards (just a few being RFC 2445, which was obsoleted by RFC 5545, which was updated by RFC 5546, RFC 6868, RFC 7529, RFC 7953, RFC 7986) , and plenty of other complexities.

One area in particular, which is cryptic and annoying is RRULE, or recurrence rule.  You know, those events that don’t just happen once, but repeat once in a while.  Starting with the most basic rules of repeating every day, and going into complete insanity of repeating every other Thursday, starting from next week and until the beginning of next year every other month, RRULEs can drive even the calmest of people completely insane.  Here’s a screenshot to give you an idea.

Here are a couple of tools that we found useful, when implementing and testing this functionality:

  • rrule.js – a JavaScript library for working with RRULEs.  See the demo here.
  • recurr – a PHP library for working with RRULEs.

Radicale – Free and Open-Source CalDAV and CardDAV Server

Radicale is a free and Open Source CalDAV and CardDAV server.  Here are some of the features:

  • Shares calendars through CalDAV, WebDAV and HTTP.
  • Shares contacts through CardDAV, WebDAV and HTTP.
  • Supports events, todos, journal entries and business cards.
  • Works out-of-the-box, no installation nor configuration required.
  • Can warn users on concurrent editing.
  • Can limit access by authentication.
  • Can secure connections.
  • Works with many CalDAV and CardDAV clients.

Here is a blog post that provides some instructions on how to set it up and synchronize contacts and calendars between multiple services and applications.

Important Announcement about SMS notifications in Google Calendar

Catching up with emails, I saw this email from the Google Calendar team:

Starting on June 27th, 2015, SMS notifications from Google Calendar will no longer be sent. SMS notifications launched before smartphones were available. Now, in a world with smartphones and notifications, you can get richer, more reliable experience on your mobile device, even offline.

Too bad I say.  SMS notifications is one of the features I use and love the most about the Google Calendar.  My smartphone is full of all kind notifications.  In this day and age, it seems, every up considers it it’s duty to add something to the notification bar.  I’ll never configure each one of those to have a different sound, vibration mode, or LED color.  I don’t really care about them no more.

The ONLY notification that I care about 24×7, since my sysadmin shift days, is the SMS.  An SMS wakes me up in the middle of the night.  An SMS draws my attention in the noisiest of places.  An SMS interrupts my meetings.  That’s the one and only instance notification that I respect.

And now, it’s disappearing from the Google Calendar…

Old style calendar

Growing up in USSR, since I was a kid, I remember I always had a confusion regarding the calendar. While most dates were normal, a few were referred to as “old style” dates. And even though I’ve asked around and it was explained to me a few times, I never truly understood what it was about. I just new there was some calendar change in the past that created the shift.

Today I tweeted about Russia celebrating the Unity Day. Which I think is a silly replacement holiday for a huge celebration of the October Revolution. For as long as I remember, it was celebrated on November 7th. Then I realized that celebrating an October Revolution in November sounds strange. Then I remembered that the revolution actually took place on October 25th, the “old style”. And November 7th is the same date but the “new style”.

I am not a little boy back in the USSR anymore, I thought. I am a man in the modern age, equipped with powerful tools, such as Google and Wikipedia. No more should I suffer the confusion. And thus I quickly found out the source and history of “old style” and “new style”. Here is the relevant snipped from the Wikipedia page on the migration from Julian to Gregorian calendar. I’ve highlighted the important and interesting bits.

The Julian calendar was in general use in Europe and Northern Africa from the times of the Roman Empire until 1582, when Pope Gregory XIII promulgated the Gregorian calendar. Reform was required because too many leap days are added with respect to the astronomical seasons on the Julian scheme. On average, the astronomical solstices and the equinoxes advance by about 11 minutes per year against the Julian year. As a result, the calculated date of Easter gradually moved out of phase with the March equinox. While Hipparchus and presumably Sosigenes were aware of the discrepancy, although not of its correct value, it was evidently felt to be of little importance at the time of the Julian reform. However, it accumulated significantly over time: the Julian calendar gained a day about every 134 years. By 1582, it was ten days out of alignment from where it supposedly was in 325 during the Council of Nicaea.
The Gregorian calendar was soon adopted by most Catholic countries (e.g. Spain, Portugal, Poland, most of Italy).
Protestant countries followed later, and the countries of Eastern Europe adopted the “new calendar” even later. In the British Empire (including the American colonies), Wednesday 2 September 1752 was followed by Thursday 14 September 1752. For 12 years from 1700 Sweden used a modified Julian calendar, and adopted the Gregorian calendar in 1753, but Russia remained on the Julian calendar until 1918 (1 February became 14 February), after the Russian Revolution (which is thus called the “October Revolution” though it occurred in Gregorian November), while Greece continued to use it until 1924.

Which day is your candidate for the Groundhog Day?

This blog post (in Russian) tells a story of a young woman that really loves the first day of winter, when the first snow falls. The author suggests that if there was a chance, this woman would have chosen the first day of winter to live through again and again, like the character of Phil, played by Bill Murray in the excellent movie “Groundhog Day“.

The author of that story also asks an interesting question.  If you had a choice, which would be the day you’d choose to live through and through, like in that movie.  If you could pick any day at all, which one would that be?

For me personally it is a hard choice indeed.  I love and cherish every day of my life.  Except for, maybe, Mondays.  I’ve had plenty of excellent days over the years and I can’t really pick one of them.  But if I had to, I guess I’d have to go with the 1st of January, the New Year Day.  Why? Well …

I am Russian and Russian celebrate the New Year like nobody else.  It’s one of the biggest holidays in our culture.  We eat, we drink, we have fun, and everybody stays up until very late.  Until early morning even.  1st of January is a public holiday.  No matter which day of the week it is, you don’t need to go to school or work.  Since everyone stayed up late, most people sleep through the morning, waking up in the afternoon.  This is probably the only day when I am not standing out in this regard, when I’m not the only one who loves waking up past midday.

Oh, and then there is food and television.  31st of December is the evening of celebrations.  We prepare lots of food.  We call plenty of guests.  We dress nicely.  We behave.  It’s all nice, but it’s a tiny bit too official and tiring.  On the 1st of January though, it’s totally different.  It’s the relax time.  There is still plenty of food and drinks from yesterday.  Whoever survived the drunk night is not in the mood for any official behavior.  People under-dress, grab food, and spend a lot of time in front of the television watching entertainment shows or movies, taking short naps in between.

By the evening, people, and people I of course mean myself, are often recovered enough to take a short walk.  Time to see friends or relative or visit the nearest pub.  Slight tough upon the yesterday celebration with an attempt to reconstruct the chain of events from a collective memory.  And then early bed time.

I think that year on year, 1st of January is the closest day to a perfect one.  So if I had a choice to live through one day time after time after time, I’d choose that day.  Gladly, of course, I actually do have a chance to do so.  It’s just that I have to wait a year in between.

What day is your candidate for the Groundhog Day?

30 Boxes solves calendaring

http://30boxes.com is a brand new webservices. The public beta was launched last Sunday.

The purpose of the site is to solve the surprisingly difficult problem of calendaring. What’s wrong with calendaring, you might ask? Well, lots of things. Existing calendaring applications are complicated and clumsy, unpractical for sharing and social interactions, and, well, “traditional”.

http://30boxes.com chose a fresh approach. They have totally and completely minimized and simplified the user interface.

Entering events can be done with as little as filling in one single text field. Application understands human language like “tomorrow”, “yesterday”, and “next week”. You can have “buddies” which is just their term for contacts. All you have to do to add a contact is specify email address. You buddies can have calendars of their own, you can share calendars and even use the system to send invitations and confirmations/denies for events. You can track a lot more information about your buddies too – Flickr photos, LiveJournal entries, MySpace blog, and any other RSS feed. When there are new items – you get a small icon on the appropriate day of the calendar and can quickly check what they are up to.

The interface looks very clean and works pretty fast. It’s also based on AJAX technology which allows you to see updates without refreshing the page – feels nice.

Check it out – it costs nothing, and can do a lot for your organized life!

Daily del.icio.us bookmarks

I was pointed to a couple of outstanding web services that I will talk more about later. For now here are the links:

Than there was this excellent flash animation that gives a good idea of Atlantic hurricanes – their strength, timing, and pathes. Thanks to Lev for this one.

A good set of reading about blogging – why and how people do it. Also has a couple of interviews with famous bloggers.

These were shared bookmarks for del.icio.us user tvset on 2005-09-01.

Tagging calendars

While playing around with Delicious I thought about how useful it would be to have a calendar which could operate with tags. This way, a jazz festival in Cyprus that is going to happen in Cyprus during 16-18 of September this year, for example, could have been tagged as “jazz”, “festivals”, “events”, “music”, “cyprus” as well as “16sep2005”, “17sep2005”, “18sep2005”. And maybe even as “year2005” and “september”.

It is easy to find some format to express dates and times – there is no question about that. After that is done, the set of events can be represented in a variety of forms. The usual calendar table could be filled using the date format. The list of events for a certain month or year could be combined. Or it could even be categorised based on tags.

It would be possible to make queries like “Show me the list of music events that are planned for September 2005 in Cyprus” or “Show me the list of Cyprus festivals”. These could be easily used together with the usual calendaring stuff like “What is planned for September?”.

If there was some calendaring application that could work with Delicious it would awesome! Just think of the possibilities! A combined calendar of events with geographic locations and links to website for more information maintained by a bunch of interested people. And since Delicious provides RSS feeds for everything, it would be really easy to update and monitor such a calendar. That would be partially competing with the service provided by Airset. Purhaps there are even some commercial applications that could be based on this service.

Now all we need is for someone to create it…

Calendaring issues solved with AirSet

I’ve been looking for a tool to do shared calendaring for some time now. I went through manual editing of text files, ical, Korganizer, RSSCalendar.com and some other tools that I don’t remember anymore. None of these provided all the functionality and comfort that I needed. So, I used neither one of them.

Today, I finally came across a tool that looks very promising. One of the comments to this post in Alexandra Samuel blog suggested AirSet.

I tried it and it was love from the first sight! AirSet provides a free online service for managing and sharing of calendars, contact lists, and web links. It features flexible access control facilities with user and group management. Sharing of information can be neatly controlled and can be utilized either via RSS feeds or via AirSet web service.

I liked it so much that I immediately registered and created my public calendar. Check the “Calendar” link at the navigation bar at the top of the page. There you will find my public calendar and a link to the RSS feed with items for the next 30 days.

I foresee a lot of popularity for AirSet in the near future. Congratulations to the development team for a really nice service. Let’s see how stable it is.