koschi55
Goto Top

Powershell v2 und Outlook - Erstellen eines Termins in zusätzlichem Kalender

Hallo zusammen,

mit folgendem Codeschnipsel kann ich Problem aus Powershell heraus Termine in meinem Kalender eintragen. Leider aber nur in meinen Standard Kalender der auch für die Öffentlichkeit frei gegeben ist. Ich möchte aber Termine in einen zusätzlich angelegten Kalender namens "Zeiten" einfügen

$outlook = new-object -comObject Outlook.Application

$olAppointmentItem = 1

$termin = $outlook.createItem($olAppointmentItem)
$termin.start = (get-date -hour 7 -minute 0 -second 0)
$termin.duration = ( 60 * 9  )
$termin.subject = "test"  
$termin.reminderminutesbeforestart = 15
$termin.ReminderSet = $False
$result = $termin.save()


Kann mir hier einer auf die Sprünge helfen?

danke

Content-Key: 208981

Url: https://administrator.de/contentid/208981

Printed on: April 25, 2024 at 09:04 o'clock

Member: Snowman25
Snowman25 Jul 02, 2013 at 13:21:25 (UTC)
Goto Top
Hallo @KOschi55

probier es mal so:
$outlook = new-object -comObject Outlook.Application
$olNamespace = $outlook.GetNamespace("MAPI")  
$calendar = $olNamespace.Folders("<kalendar-name>")  
$olAppointmentItem = 1

$termin = $calendar.Items.Add("IPM.Appointment")  


$termin.start = (get-date -hour 7 -minute 0 -second 0)
$termin.duration = ( 60 * 9  )
$termin.subject = "test"  
$termin.reminderminutesbeforestart = 15
$termin.ReminderSet = $False
$result = $termin.save()

u.U. musst du erst in deinen Posteingang bzw. deine Mailbox wechseln, bevor du in den Kalendar kannst. (Zeile 3)
Allerdings kenne ich mich nicht wirklich mit Outlooks COM-Objekten aus. Kann also auch Unsinn sein face-smile


Gruß,
@Snowman25
Member: colinardo
colinardo Jul 02, 2013 updated at 15:36:24 (UTC)
Goto Top
Hallo Koschi55,
noch als Ergänzung bzw. Korrektur von @Snowman25 's Script:
Zeile 3 muss so lauten sonst gibt die Powershell einen Fehler aus:
$calendar = $olNamespace.Folders.Item("Kalendername") 
Die Powershell nimmt es hier mit den Objekten sehr genau - das Folders("Kalendername") ist quasi eine Abkürzung wenn man es in Outlook schreibt, die Powershell braucht es aber ganz genau, deshalb Folder.Item("Kalendername")

Alternativ wenn der Kalender "Zeiten" ein Unterobjekt des Standardkalenders ist schreibst du die Zeile so:
$calendar = $olNamespace.GetDefaultFolder(9).Folders.Item("Kalendername")

Grüße Uwe
Member: KOschi55
KOschi55 Jul 02, 2013 at 18:44:06 (UTC)
Goto Top
Perfekt, Danke an euch beide. Snowman25 hat die Basis geliefert und colinardo die finale lösung. Die alternative war es dann.

danke vielmals