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-ID: 208981

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

Ausgedruckt am: 14.11.2024 um 23:11 Uhr

Snowman25
Snowman25 02.07.2013 um 15:21:25 Uhr
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
colinardo
colinardo 02.07.2013 aktualisiert um 17:36:24 Uhr
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
KOschi55
KOschi55 02.07.2013 um 20:44:06 Uhr
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