Android Kalender: File-Import?

Anforderung an eine Webseite mit Event-Daten:

Clicking the button adds the event to the phone calendar.

Mangels weiterer Anforderungen gehe ich mal von iPhone, Android, idealerweise Windows Phone als Zielplattform aus. Gehe ich also zur Wikipedia, und sehe mich ein wenig um:

Gesagt, implementiert. Stellt sich aber heraus, dass die Kalender-App auf Android eine .ics-Datei nicht öffnen kann. Hm, kann nicht angehen! Hilfe der App geöffnet, “ics” gesucht, und Folgendes gefunden:

Termine aus iCalendar- oder CSV-Dateien importieren
Wenn Sie Termine aus iCalendar- oder CSV-Dateien importieren möchten, gehen Sie wie folgt vor:
1. Klicken Sie auf den Abwärtspfeil neben “Weitere Kalender”.

Nur: Wo ist der Button “Weitere Kalender”? Tja, nirgendwo! Die Hilfe der App ist nämlich die Onlinehilfe für www.google.com/calendar! Und da gibt’s den Button! Wie link ist das denn? Und ich suche den eine halbe Stunde lang!

Ungläubig surfe ich noch ein wenig rum, und finde einen entsprechenden Bug von sage und schreibe November 2008 (und immer noch aktiv!). Die Kommentare unter dem Bug werden zusehends schärfer, und das zurecht. Denn ich war auch weitere zwei Stunden später nicht in der Lage, ein dediziertes Kalenderformat zu identifizieren, das vom Android mit dem Kalender geöffnet wird (CSV ignoriere ich dabei, denn das wird im Zweifel mit dem Texteditor oder der Excel-App geöffnet).

Fairerweise muss ich sagen, das Windows Phones .ics-Dateien auch nicht öffnen können – aber zumindest behaupten sie nicht das Gegenteil 🙁

Java/Liferay: iCal-Datei erzeugen und ausliefern [UPDATE]

Wer mit Liferay (genauer: Mit einem Portlet) eine iCal-Datei ausliefern will, benötigt zuerst mal iCal4j. Ich brauchte die JARs backport-util-concurrent-3.1 und ical4j-1.0.3, aber vermutlich benötigt man auch noch commons-lang-2.6 und commons-logging-1.1.1, davon habe ich (ältere) bereits durch/für Liferay im Projekt. Die anderen brauchte ich nicht.

Anmerkung: Außerdem habe ich eine leere Datei namens ical4j.properties direkt in src angelegt, um eine Warnung zu unterdrücken.

Um eine Ressource abzurufen, nutze ich die ResourceURL von Liferay, in meinem Fall plus einer Event-ID:

Ein Aufruf der URL landet in der serveResource() meines Portlets, und mündet in der Erzeugung des Files:

ACHTUNG: Wer einen Termin mit Startzeit (und Endzeit) erzeugen will, muss dem VEvent ein (zwei) Objekte vom Typ DateTime statt Date übergeben!

Quellen: Basis, verschiedene iCal4j-Fehlermeldungen, Filename setzen, ICS Mime type, Unterschied Date/DateTime 😉

Wer rausfindet, warum mir beim Validieren ein “Parameter [VALUE] must only be specified once” geworfen wird, bekommt ein Bier! EDIT: Es lag an der jetzt auskommentierten Zeile! Prost!

O2 Communication Center mit Windows Phone 7 synchronisieren

Wer das “O2 Communication Center” kennt, der nutzt vermutlich kein Windows Phone 7. O2-Kunden können über das Communication-Center ihre Kontakte, Nachrichten (SMS, …) und vor allem den Kalender synchronisieren. Die Idee ist, dass man bei Handy-Verlust oder -Wechsel seine Daten direkt wieder hat… das funktioniert zB für Nokias Symbian ganz hervorragend – vor allem, wenn man das Nokia-Handy von O2 bekommen hat.

Schlechter sieht es aus, wenn man ein ungebrandetes Windows Phone 7 mit dem Communication Center syncen möchte:

Aktuell gestaltet sich dies noch recht komplex. Eine direkte Synchronisation ist mit diesem Betriebssystem noch nicht vorgesehen.

sagt der O2-Support. Wer aber ein Outlook besitzt, der kann folgenden Weg ausprobieren (Windows only):

Bitte melden Sie sich hierzu mit Ihrer Rufnummer und Ihrem Kennwort auf www.o2.de an.
Im o2 Communication Center rufen Sie bitte Einstellungen auf. Die Software “Sync Software für Ihr Windows Mobile ” steht aktuell nur bis maximal Windows Mobile 6.5 zur Verfügung.
Sie können jedoch das Programm “PC-Software für Outlook” herunterladen, um das o2 Communication Center mit Ihrem Outlook zu synchonisieren.

Für weitere Synchonisationsfunktionalität benötigen Sie folgende Software von Microsoft: Outlook Hotmail Connector

Achtung #1: Prinzipiell funktioniert O2s “PC-Software für Outlook” auch mit Outlook Express – aber Outlook Express kennt natürlich keine Kalender-Daten 🙂 Mit Outlook Express dürften von daher nur Kontakte zu syncen sein

Achtung #2: Die Testversion von Outlook wird merkwürdigerweise nicht unterstützt:

Ja, Sie haben Recht, mit der Testversion von Outlook können Sie leider keine Synchronisation vornehmen.

Deshalb ist das obige Vorgehen auch nicht von mir getestet! HTH, anyway.

Photoshop Kalender Script

calendar

Ein äußert viel versprechendes JSX-Script für das automatisierte Generieren von Kalender-Templates in Photoshop gibt es auf regex.info/blog/photo-tech/calendar… Ein Dialog hilft bei den grundsätzlichen Optionen wie Sprache, Format, Kalenderwoche ja/nein, Woche startet am… –  und sogar eigene Jahrestage können importiert werden. Alle erstellten Ebenen bleiben editierbar, so dass auch Schriftarten usw. angepasst werden können. Very nice!