start galerielinks impressum   suche  
galupki.de
image WindowsTools
[Alle Beiträge vollständig in alphabetischer Reihenfolge ausgeben]
 
[Index]   [GlossarGlossar]   [tag cloudtag cloud]   [klicken um dem Link zu folgen Links]   [Zuletzt]   [?]   [...]
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z *
(*=Joker) in
Begriff URL Bereich Text Datum

[klicken um dem Link zu folgen my galupki.de]

Outlook Kalender Termine auf Webserver veroeffentlichen (folge Link Outlook)

Linkdownload

Termine (inclusive Serientermine) mittels voll automatisierbarem VBscript aus einem Outlook (2003) Kalender extrahieren und in CSV-Datei zur Weiterbearbeitung bereitstellen und veröffentlichen dieser Daten als navigierbarer Monatskalender auf einem Webserver

Automizable Visual Basic script to extract outlook 2003 appointment items (personal calendar) into CSV-file - publishing this data in an web based calendar. Includes (nearly) all possible recurrence types of appointmentItems with handling exceptions too (deleted or modified instances of recurrence appointment items) (Sorry - further documentation in german language only!)...

update 05/2012:


Todo:



Wieso eigentlich?

Den Web-Monatskalender kann man prima mittels activeDesktop(?) in jeweils aktueller Form angezeigen lassen (Desktop-Hintergrund). Bei der Suche nach fertigen OpenSource Scripts zum exportieren haperte es immer an der ein- oder anderen Stelle. Insbesondere die Serientermine werden da - selbst bei HowTo-Artikeln auf MS-Webseiten - recht stiefmütterlich behandelt (entweder wurden nur ganz simple Serientermine - z.B. jährliche Wiederholungen - wenn überhaupt - mit extrahiert, oder die Scripte agierten schlicht fehlerhaft image LinkBeispielscript aus MS Technet - Retrieving a List of Recurring Appointments from Microsoft Outlook).

Prinzipielle Funktionsweise

Features des Datenextrakt-Scripts aus Outlook mit VBscript (Visual Basic Script)

Features bei der Umsetzung des Datenextraktes aus Outlook mit dem php-Script

Beispiel zur vollständigen Automatisierung der Vorgänge

...das Batchfile enthält z.B.:

(1) cscript vbs_outlook_terminliste.vbs
(2) c:/proginst/wput/wput -a wputlog.txt -u -B Outlook_Termin_Definitionen.csv Linkftp://username:passwort@ftp.irgendeine-domain.de
(3) c:/proginst/wget/wget -b -r -a wgetlog.txt -t 1 -T 30 --dns-cache=off --cache=off Linkhttp://irgendeine-domain.de/somewhere/outlookkalender.php
(1) VBscript extrahiert aus den lokalen Outlookdaten den Inhalt des Ordners Kalender in eine CSVDatei
(2) WPUT transportiert die Datei mit FTP an passende Stelle auf dem Webserver - ich empfehle den UploadManager oder - besser vielleicht - ein hierfür speziell anzulegendes Incoming-Verzeichnis oder ein /tmp-Verzeichnis
(3) WGET triggert einfach nur das Script, dass die Daten auf dem Webserver passend umsetzt, man könnte auch einen cronjob o.ä. aufsetzen

Insbesondere für das WPUT bietet sich evtl. im Einzelfall eine sicherere Alternative an, bei der man z.B. eine verschlüsselte / gesicherte Verbindung nutzt und nicht das normale FTP-Protokoll...

Modifikationen an den bisherigen Kalenderbibliotheken

Tja, das Downloadarchiv oben ist kein \\\"einsatzbereites\\\" Paket! Wenn man schon einen lauffähigen Kalender (evtl. sogar mitsamt Wiki) von mir hat, sollte es reichen, die Dateien aus dem Archiv zu extrahieren und auf dem Webspace zu ersetzen (Anpassungen und Einstellungen nicht vergessen...) bzw. hinzuzufügen. Allen Anderen wünsche ich viel Spaß beim knobeln :->

Um den Änderungsaufwand an alten Scripten zu minimieren, ist am alten CSV-Dateiformat wenig geändert, aber ich habe zwei neue Felder angehangen. Das erste - ein Notizenfeld - davon nimmt Daten auf, die bisher so nicht vorgesehen waren (Kategorien, Angaben zu Sensitivity u.a. - siehe Scripte! - aus Outlook), das letzte Feld enthält jetzt das Last Modification Date des Terminsatzes). Übrigens: Location, Uhrzeiten und ggf. der Besprechungsstatus von Outlook-Meetings landen einfach im Subject der Termine...

Neuentwicklungen

Tipps

ergänzende Infos

Aus der Microsoft Outlook (c) - Onlinehilfe entnommen: Ein Outlook recurrence AppointmentItem (Serientermin) definiert sich über folgende Eigenschaften:

\\\'===========================================================================
\\\'RecurrenceTyp    Eigenschaften      Beispiel 
\\\'===========================================================================
\\\'0 olRecursDaily    Interval           Alle N Tage 
\\\'                   DayOfWeekMask      Jeden Dienstag, Mittwoch und Donnerstag 
\\\'  
\\\'2 olRecursMonthly  Interval           Alle N Monate 
\\\'                   DayOfMonth         Der N-te Tag im Monat 
\\\'                  
\\\'3 olRecursMonthNth Interval           Alle N Monate 
\\\'                   Instance           Der N-te Dienstag 
\\\'                   DayOfWeekMask      Jeden Dienstag und Mittwoch 
\\\'                   
\\\'1 olRecursWeekly   Interval           Alle N Wochen 
\\\'                   DayOfWeekMask      Jeden Dienstag, Mittwoch und Donnerstag 
\\\'  
\\\'5 olRecursYearly   DayOfMonth         Der N-te Tag im Monat 
\\\'                   MonthOfYear        Februar 
\\\'  
\\\'6 olRecursYearNth  Instance           Der N-te Dienstag 
\\\'                   DayOfWeekMask      Dienstag, Mittwoch, Donnerstag 
\\\'                   MonthOfYear        Februar 
\\\'===========================================================================
\\\'Legende: 
\\\'Instance         1-4(5), 6=Letzter
\\\'DayOfWeekMask Or 1=So, 2=Mo, 4=Di, 8=Mi, 16=Do, 32=Fr, 64=Sa
\\\'DayOfMonth       1-31
\\\'MonthOfYear      1-12
\\\'NoEndDate        true/false
\\\'PatternStartDate Datum
\\\'PatternEndDate   Datum oder... 
\\\'Occurrences      ...Anzahl von Wiederholungen
\\\'===========================================================================
...setzt mein Script um in eine für die php-Scripte / Kalenderlib voradaptierte Form (weil sich jetzt die meisten fragen werden wo denn hier bitteschön die/eine Verbesserung gegenüber dem Outlook-Datenmodell vorliegt)...
\\\'Minidoku
\\\'Subject              Betreff
\\\'Location             Ort
\\\'Start                Beginndatum und ggf. (nicht immer!) Uhrzeit  tt.mm.jjjj hh:mm - betrifft auch alle anderen DatFelder
\\\'End                  Endedatum und ggf. Uhrzeit - der 31.12.4500  23:59:00 scheint das \\\"Highdate\\\" zu sein (=ohne Ende)
\\\'AllDayEvent          AllDayEvent (ganztägig) oder leer
\\\'Duration             Dauer in Minuten
\\\'ReminderMinutes      Erinnern x Minuten vor dem Termin
\\\'Categories           Kategorien, getrennt durch Komma(!)
\\\'Importance           Wichtigkeit/Prio, sofern abweichend von Normal
\\\'MeetingStatus        Status des Meetings
\\\'ResponseStatus       Antworten auf Meeting-Anfrage
\\\'Sensitivity          Vertraulichkeit (z.B. \\\"Privat\\\"-Schalter)
\\\'LastModificationTime zuletzt geändert am...

\\\'Serie                S, wenn Serientermin, genau wie alle folgenden Felder nur für Terminserien relevant seind:

\\\'Ausnahmen            zu/von einer Serie (gelöscht oder geändert) nach folgendem Schema:
\\\'Trenn1 ^             trennt einzelne Ausnahmeregeln einer Serie
\\\'Trenn2 °             trennt die Felder einer Ausnahme
\\\'isDeleted°21.12.2006^... an diesem Tag findet die Terminserie nicht statt
\\\'isModified°Datum°Start°End°Duration°AllDayEvent°Subject°Location^ ... an diesem Tag ist etwas anders

\\\'StartSerie        Startdatum der Terminserie
\\\'AllDayEvent_Time  AllDayEvent oder Startzeit
\\\'EndSerie          Endedatum der Terminserie
\\\'Type              Typ der Wiederholung:       DAILY   PERIOD   WEEKLY   MONTHLY   MONTHLYnTH  YEARLY   YEARLYnTH
\\\'Monat_Interval    Monat oder Intervall           -     Tage    Interval  Interval   Interval   Monat    Monat
\\\'Day_Instanz       Tag oder Instanznummer         -       -        -        Tag      1-4/L (Wo)  Tag     1-4/L (Wo)
\\\'DayOfWeekMask     Maske betroffener Wochentage   -       -       Maske      -         Maske      -      Maske

\\\'Interval:   Gibt das regelmäßige Intervall an, z.B. bei Wochenterminen ist 1=jede Woche, 2=alle zwei Wochen...
\\\'1-4/L (Wo): Gibt bezogen auf den Wochentag die n.te Woche im Monat an (L=letzte)
\\\'Maske:      Siebenstelliges Feld (Montag-Sonntag), \\\"MDMDF--\\\" z.B. wäre Montags-Freitags, \\\"---D---\\\" wäre Donnerstags...
\\\'isModified: Beachten, dass auch andere Felder geändert sein könnten (z.B. Meeting..., Categories...)
...diverse weitere Infos finden sich im Quelltext der Scripte, die im übrigen natürlich vor erstem Einsatz angepasst werden müssen (Pfade, Dateinamen etc.).

Wie man sieht, habe ich beim Entwurf nicht \\\'\\\'aufs Bit geschaut\\\'\\\' - natürlich kann man da einiges optimieren (ist bei einer geringen Anzahl an Terminen aber nicht wirklich relevant)...
 
24.05.2012 12:40:33h Glossar top