Tobias Gaiselmann
Öfters mal was neues …
Öfters mal was neues …
Leider werden die Geburtstage, die man im iPhone bei den Kontakten hinterlegt, nicht automatisch in den Kalender eingetragen. Es gibt also auch keinerlei Erinnerung, wenn jemand Geburtstag hat. Inzwischen gibt es zwar die nette App “HappyDayz!“, aber auch hier bekommt man die geburtstage lediglich schön angezeigt. Eine Erinnerungs-Funktion ist hier ebenfalls nicht möglich, da Apple in den Richtlinien verbietet Applikationen im Hintergrund auszuführen. Viele User von HappyDayz! haben angeregt, die Geburtstage von der App in den Kalender eintragen zu lassen. Allerdings erlaubt auch hier das SDK den Zugriff nicht.
Mich hat dies auch schon seit längerem gestört. Heute kam mir dann die Idee, wieso das ganze denn nicht über Outlook machen? Ich verwende mein iPhone ja sowieso mit einem Exchange Server. Von daher bietet es sich ja an. Outlook trägt in der Regel die Geburtstage, die man bei Kontakten einträgt, automtisch in den Kalender ein. So weit so gut. Ich hätte aber doch ganz gerne, dass ich direkt im Kalendereintrag sehe, wie alt die betroffene Person denn eigentlich wird. Also musste auch hier etwas anderes her.
Ich hab mich als hingesetzt und mir ein VBA Script erstellt. Dieses Script geht alle meine Kontakte, bei denen ein Geburtstag hinterlegt ist, durch und erstellt am entsprechenden Tag einen Eintrag (mit Alter) im Kalender. Das Script generiert die Geburtstage 10 Jahre im Vorraus – was für mich völlig ausreichend ist. Mit dem Anlegen des Eintrages wird automatisch die Erinnerung auf “0 Minuten” vor dem Ereignis eingestellt. Das funktioniert auch alles soweit super.
Anmerkung: Auf dem iPhone wurde noch keine Benachrichtigung angezeigt, weil noch keiner Geburtstag hatte / hat. Dieser Fall wird aber spätestens heute Nach um 0Uhr eintreten ;-)
Während dem Scripten stieß ich dann auf die Frage: Wie aktualisiere ich denn Einträge, wenn ein Geburtstag oder der Name eines Kontaktes geändert wird?! Da ich keine eindeutige ID o.ä. zur Verfügung habe musste ich einen etwas umständlichen – dafür aber sauberen – Weg einschlagen. Und zwar werden zu Beginn des Scriptes alle Einträge aus dem Kalender gelöscht. Der ein oder andere wird jetzt sicherlich Panik bekommen, aber auch hierfür habe ich eine Lösung gefunden. Zum einen verwende ich bei mir einen extra Kalender (Geburtstage) für die Einträge und zum anderen schreibe ich in jeden Eintrag in das Feld Kategorie den Namen des Kontaktordners rein. Es werden beim Löschvorgang dann nur die Einträge gelöscht, die eben diesen Namen im Kategoriefeld stehen haben.
Soviel ersteinmal zur Theorie. Wie das ganze jetzt in der Praxis funktioniert zeige ich euch jetzt.
Ich gehe davon aus, dass ihr auf eurem iPhone und in Outlook bereits den Exchange Account eingerichtet habt und es einen neuen Kalender Geburtstage (nicht zwingend notwendig) gibt. Ebenso sollten bei den Kontakten die Geburtstage eingetragen sein – aber das habt ihr ja sicherlich schon, sonst würdet ihr das hier gar nicht lesen :)
Das wars eigentlich schon. Bitte habt ein wenig Geduld bis die Einträge auch auf dem iPhone erscheinen. Je nach Anzahl der Kontakte und somit der erstellten Einträge kann das gut und gerne mal mehrere Minuten gehen.
Bei Anregungen und Fragen benutzt einfach die Kommentar-Funktion auf dieser Seite oder schreibt mir eine Mail an tobias (ett) gaiselmann (punkt) net. Ich sag euch aber gleich vorweg, dass ich in den nächsten Tagen kaum erreichbar sein werden. Habt also ein wenig Geduld und steinigt mich nicht direkt :)
Changelog:
Version 1.0
22. Mai 2009 - 16:57
Hallo!
Erstmal TOP die Arbeit von Dir, klappt bestens. Auch wenn ich erst Verteilerlisten hatte, das ist aber nun auch geklärt ;-)
Eine Frage:
Kann man es einstellen, dass bei “Geburtstag von Heinz Müller (33)” in der Klammer statt die Zahl zwei Striche stehen, wenn man kein Geburtsjahr weiss und in den Outlook Kontakten statt dem richtigen Geburtstjahr z.b. 06.02.1900 eingegeben hat?
Gruß
Marcus
18. Juni 2009 - 13:57
Hallo, erstmal ein großes Dankeschön für das Script. (Läuft super). Jedoch eine Frage: meine Geburtstage der Kontakte werden bis 2019 eingetragen. (bei mir ca. 6000 Datensätze).
Gibt es die Möglichkeit nur bis zum Beispiel 2010 auszugeben?
mfg, rweigand
18. Juni 2009 - 14:02
Ja, das geht schon. Du musst dazu aber eine kleine Änderung im Script selbst vornehmen.
In Zeile 47:
For x = 0 To 10 Step 1
Ändern in:
For x = 0 To 1 Step 1
Grüße,
Tobias
21. Juni 2009 - 10:11
Da ich nun seit einer Woche ein iPhone besitze, bin ich auf Dein Script gestoßen, hat alles wunderbar funtioniert, Vielen Dank.
Ich hab zusätzlich nun aus einem Kalender 7 Kalender gemacht, entsprechend der Kategorie.
Dies hat jetzt mit dem Scipt nichts zu tun, aber wie kann ich im Outlook 2007 die Farben den verschiedenen Kalendern zuordnen?
Unter Extras – Optionen – Kalenderoptionen – Standardfarbe (?) sind nur blasse Farben vorhanden! Bin ich hier richtig? Die Farben stimmen dann auch nicht mit dem iPhone überein!
Danke für Deine Hilfe.
Gruß
roke
22. Juni 2009 - 12:55
hi,
also bei mir klappt fast alles. das makro da einfügen und starten. aber dann kommt immer das: (hab screenshot mal hochgeladen)
http://i43.tinypic.com/opwz2w.jpg
und dann wenn ich auf schließen drücke, werden keine kalendereinträge erstellt…
22. Juni 2009 - 13:21
Hey,
das Fenster ist völlig normal. Es zeigt die vergangenen Kalendereinträge mit Erinnerung. Verwunderlich ist nur, dass du sagst, dass keine Kalendereinträge vorhanden sind. Denn wenn es das Fenster zeigt, dann wurden auch Einträge erstellt.
Stell mal unter Anzeige -> Aktuelle Anzeige um auf “Alle Einträge”.
Da müsste dann auf jeden Fall etwas drin sein.
Gruß,Toby
28. Juni 2009 - 22:05
Schönes ding, habe nur noch eine Frage. Wie kann ich das aktualisieren wen ich einen neuen Geburstag eingefügt habe?
Ichabe noch was für dich wie wars wen die “der Jahrstag noch eingefügt wird.
danke hast du gut gemacht
29. Juni 2009 - 14:43
Einfach das Script nochmal laufen lassen.
Jahrestag wäre mal etwas für eine neue Version.
Allerdings fehlt mir ein wenig die Zeit dazu.
Grüße,
Tobias
3. Juli 2009 - 15:12
Hallo, super Makro, aber bei mir hängt er sich leider bei “categories” auf mit der Meldung: “Die Methode ‘Categories’ für das Objekt ‘AppointmentItem’ ist fehlgeschlagen”. Was kann ich machen? Danke im voraus
3. Juli 2009 - 15:15
Welche Version von Outlook verwendest du denn?
3. Juli 2009 - 15:22
2003 mit aktuellen SPs
9. Juli 2009 - 15:56
Hallo TG. Besteht noch die Chance auf eine Lösung? Wie schon mitgeteilt, verwende ich Outlook 2003.
15. Juli 2009 - 17:15
wahnsinn was man mit so einem script beweltigen kann.
Hast ja sogar an mehrere Kontakt Ordner gedacht “um einen verwende ich bei mir einen extra Kalender (Geburtstage) für die Einträge und zum anderen schreibe ich in jeden Eintrag in das Feld Kategorie den Namen des Kontaktordners rein. Es werden beim Löschvorgang dann nur die Einträge gelöscht, die eben diesen Namen im Kategoriefeld stehen haben.”
Funktioniert super!!! lob an den verfasser! schwach von apple das so eine simple und dennoch sehr wichtige Funktion nicht intergreigt ist. So wie KW, als Geschäftshandy ist der Kalender kaum zu gebrauchen…
17. August 2009 - 21:08
Hi.
Habe das, was du oben geschrieben hattest, bezügl. Makro-Prüfung kurzzeitig zu deaktivieren, ausprobiert, es kommt aber dennoch immer die Fehlermeldung.
Was kann man dann tun?
MfG
Dom
18. August 2009 - 19:28
Hi.
Also bei mir gehts jetzt wieder. Wieso auch immer.
Aber: gebt doch einfach, wenn ihr nach der Erinnerung gefragt werdet, z.B. 300 ein (= 5 Std.) also bei mir klappts
Gruß
7. September 2009 - 20:42
Hi,
also erstmal … endlich ein vernünftiges Tool/Script.
Bin relativ lange am rumgooglen und habe mix gescheites gefunden – bisher!!!
Nur ein Problem habe ich:
Wenn ich das Script über meine Kontakte laufen lasse, habe ich am Ende im Kalender zwei Einträge. Einmal mit Altersangabe und einmal ohne.
Gibt es eine Möglichkeit diese Doppeleinträge abzuschalten ?
Ich verwende noch Outlook 2002 und bin in dieser Frage ein NewBee..
Danke und viele Grüße,
Daniel
8. September 2009 - 00:53
Hi,
ich vermute, dass die Einträge ohne Alter von Outlook direkt kommen. Erstell einfach mal einen neuen Kalender und lasse dort die Geburtstage von meinem Script eintragen.
Es dürften dann dort auf jeden Fall nur diese vorhanden sein. Anstatt eines neuen Kalenders anlegen kannst du auch den bestehenden leer machen – sofern nichts anderes wichtiges dort drin steht. Oder du suchst über die Suchfunktion alle “Geburtstag von ” Einträge raus uns löscht sie ….
Es gibt viele Wege ;) Aber ich bin mir sicher, dass die ohne Alter von Outlook kommen.
Grüße,
Tobias
8. September 2009 - 12:05
Hi,
erstmal bedank ich mich für das super Makro. Läuft 1a. Ich hätte nur noch eine Frage und zwar wegen den Erinnerungen kann man irgendwie einstellen das man nicht vorher erinnert wird sondern an dem Tag wo jemand geburtstag hat?
Würd mir wünschen mich immer um 8:30 an dem Tag wo einer Geburtstag hat erinnert zu werden.
mfg
wolfgang
6. Oktober 2009 - 14:58
hi kurze frage…
erstmal: schade das ne einfache fkt wie geburtstagserinnerung mit dem iphone net möglich ist!!!
so zur frage. ich kann die einträge in den kalender mit hilfe des makros erledigen, doch leider übernimmt er nicht alle. heißt, obwohl die einträge der kontakte identisch sind, werden zwischendurch welche weggelassen.
woran kann das liegen?
danke für die hilfe
13. Oktober 2009 - 09:00
absolut genial! Besten Dank! Auch die Anleitung dazu ist spitzenmässig!!
28. Oktober 2009 - 07:53
Viele lieben Dank, hat super geklappt
20. November 2009 - 07:53
Bei mir werden nur ein paar Geburtstage ausgelesen. Dann kommt die Meldung:
Laufzeitfehler ‘13′
Typen unverträglich
Kann mir da jemand weiterhelfen?
20. November 2009 - 08:04
hat sich erledigt…..es war ein Verteiler in dem Kontakteordner. Daran ist das Skript wohl gestolpert.
Hat alles super funktioniert! Vielen Dank!
14. Dezember 2009 - 13:06
Vielen Dank auch von mir für das geniale kleine Tool!
Ich schließe mich der Bitte von Wolfgang (Kommentar #18) an:
Es wäre klasse, wenn man einstellen kann, zu welcher Uhrzeit die Benachrichtigung erfolgt. Momentan kommt sie immer um 0 Uhr, was ich etwas ungünstig finde, da dies am Morgen vergessen ist ; ))
Grüße,
Christoph
6. Januar 2010 - 17:15
Hallo,
vielen Dank, war sehr hilfreich.
Wenn es interessiert, ich habe die Einträge nicht für 10 Jahre erstellt, sondern die Einträge jährlich wiederholen lassen, dies kommt dann auch im iphone an.
Auszug:
Dim myPattern As Outlook.RecurrencePattern
…
Schleife für 10 Jahre weglassen
…
Kalendereintrag.NoAging = True
Set myPattern = Kalendereintrag.GetRecurrencePattern
myPattern.RecurrenceType = olRecursYearly
Uwe Mayer
22. Januar 2010 - 23:51
Guten abend,
ich habe auch die Fehlermeldung:
Laufzeitfehler ‘13′
Typen unverträglich
Ich nutze Outlook 2007 und habe keine Verteiler in meinen Kontakten. Hat jemand eine Idee wie ich das Problem beheben kann?
24. Januar 2010 - 12:01
Hey
Erstmal echt gutes Script einfach und erledigt das was es soll. Wirklich gute Idee. :-)
Ich habe aber leider auch ein Problem und weis nicht weiter. Es werden alle Geburtstage wie gewünscht eingetragen in den Kalender aber ich sag mal so bei der Hälfte etwa stimmt das Datum nicht ist da auf 1 Tag später. Also ich habe welche da hab ich in den Kontakten stehen 24.11.1977 und im Kalender ist dann 25.11.2010. Bei der anderen hälfte ist alles OK.
Habe Office 2007
Ist der Fehler vieleicht bekannt oder gibts nen Ansatz wo ich nach suchen soll / kann ???
Danke schonmal Robi
2. Februar 2010 - 15:28
Hatte auch das Problem
Laufzeitfehler ‘13′
Typen unverträglich
hab dann auf Debuggen geklickt und für cErinnerungen ‘keine’ eingegeben.
Dann nochmal ausgeführt und jetzt läufts…
Bin allerdings der absolute Leihe und hoffe, dass ich jetzt nichts kaputt gemacht habe :)