I use this code to create all day event on Exchange 2010sp1:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<t:RequestServerVersion Version="Exchange2007_SP1"/>
</soap:Header>
<soap:Body>
<CreateItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" SendMeetingInvitations="SendToAllAndSaveCopy">
<SavedItemFolderId>
<t:DistinguishedFolderId Id="calendar"/>
</SavedItemFolderId>
<Items>
<t:CalendarItem xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<Subject>test event</Subject>
<Body BodyType="Text">my test event</Body>
<ReminderIsSet>false</ReminderIsSet>
<Start>2011-01-06T07:00:00Z</Start>
<End>2011-01-06T08:00:00Z</End>
<IsAllDayEvent>true</IsAllDayEvent>
<Location>test location</Location>
<t:MeetingTimeZone>
<t:BaseOffset>-PT2H</t:BaseOffset>
<t:Standard>
<t:Offset>P0D</t:Offset>
<t:RelativeYearlyRecurrence>
<t:DaysOfWeek>Sunday</t:DaysOfWeek>
<t:DayOfWeekIndex>Second</t:DayOfWeekIndex>
<t:Month>September</t:Month>
</t:RelativeYearlyRecurrence>
<t:Time>01:59:59</t:Time>
</t:Standard>
<t:Daylight>
<t:Offset>-PT1H</t:Offset>
<t:RelativeYearlyRecurrence>
<t:DaysOfWeek>Friday</t:DaysOfWeek>
<t:DayOfWeekIndex>First</t:DayOfWeekIndex>
<t:Month>April</t:Month>
</t:RelativeYearlyRecurrence>
<t:Time>03:00:00</t:Time>
</t:Daylight>
</t:MeetingTimeZone>
</t:CalendarItem>
</Items>
</CreateItem>
</soap:Body>
</soap:Envelope>
The meeting that get created spans over 2 days,
I checked the timezone and locale on the client and server machines and they are correct,
Using the same code one 2010 and 2007 works correctly.
This issue was verified on another separate environment.
Any help or direction will be appreciated.
Thanks,
Eli
Check http://calendarservermigration.blogspot.com/2010/12/ews-outlook-live-exchange-release.html where they describe of a similar problem. I have the same problem using the Exchange Web Services Managed API 1.1 library on Exchange 2010 as well as Exchange 2010 SP1.
I currently use new ExchangeService(ExchangeVersion.Exchange2007_SP1, TimeZoneInfo.Utc) when I connect to either Exchange Server 2007 or Exchange Server 2010 and it seems to work fine (if you don't require functionality that's available since Exchange Server 2010).
Im using Exchange 2010, using <RequestServerVersion Version="Exchange2010_SP1"> gives me an error indicating MeetingTimeZone is deprecated, use StartTimeZone and/or EndTimeZone instead.
See my explanation here Exchange 2010 Web Services - creation of an all day event appointment as to why its spanning 2 days.
The issue was fixed by MS (after we reported them this issue), they reported it now fixed on Exchange2010 sp2.
Related
I am trying to get single instances of Recurring events from Google CalDav Api. I am using the following report request to get single instances
<?xml version="1.0" encoding="utf-8" ?>
<c:calendar-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav">
<d:prop>
<d:getetag />
<c:calendar-data >
<c:expand start="20210705T000000Z" end="20210805T000000Z" />
</c:calendar-data>
</d:prop>
<c:filter>
<c:comp-filter name="VCALENDAR" >
<c:comp-filter name="VEVENT" >
<c:time-range start="20210705T000000Z" end="20210805T000000Z" />
</c:comp-filter>
</c:comp-filter>
</c:filter>
</c:calendar-query>
The request is made to the url https://apidata.googleusercontent.com/caldav/v2/{calendarID}/events
but the result is not returning single instances of recurring events. Google CalDav Api does support rfc4791 according to https://developers.google.com/calendar/caldav/v2/guide
Both the Outlook App for iOS and Android don't seem to respect the /autodiscover.xml file that normally is used to provide the mail settings required for a given mail address.
I can not find any information about this anywhere online. I am sure things work perfectly when you want to autoconfigure an Exchange environment, but that is not what I am talking about here.
Our setup (that works correctly for the Outlook 365 desktop software):
We host a file on https://[domain]/autodiscover/autodiscover.xml
That content looks as follows:
<?xml version="1.0" encoding="utf-8" ?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
<Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
<User><DisplayName></DisplayName></User>
<Account>
<AccountType>email</AccountType>
<Action>settings</Action>
<Protocol>
<Type>IMAP</Type>
<Server>mail.server.nl</Server>
<Port>993</Port>
<DomainRequired>off</DomainRequired>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
<LoginName></LoginName>
</Protocol>
<Protocol>
<Type>POP3</Type>
<Server>mail.server.nl></Server>
<Port>995</Port>
<DomainRequired>off</DomainRequired>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
<LoginName></LoginName>
</Protocol>
<Protocol>
<Type>SMTP</Type>
<Server>mail.server.nl></Server>
<Port>587</Port>
<DomainRequired>off</DomainRequired>
<SPA>off</SPA>
<Encryption>TLS</Encryption>
<AuthRequired>on</AuthRequired>
<LoginName></LoginName>
</Protocol>
</Account>
</Response>
</Autodiscover>
And after I configure info#[domain] I verified that this file is indeed accessed!
Notes:
I also tried to set up SRV records. But also that had no effect.
The tool that previously existed from Microsoft to test autodiscovery issues does no longer exist.
Anyone knows what is going on?
exchange API not letting me add attachment to an event using ics file as mime stream.
I contacted Microsoft support for above query and they told it's not implemented yet to create attachment from ics import.
You can create event using ics file but attachment will not be created.
For exchange API's:
So to create attachment to an event we have to first create event using ics import
and then create attachment to event in different call.
Create events as shown above, to create attachments you can use this API:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010_SP2" />
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrimarySmtpAddress>%s</t:PrimarySmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
<t:TimeZoneContext>
<t:TimeZoneDefinition Id="Central Standard Time" />
</t:TimeZoneContext>
</soap:Header>
<soap:Body>
<m:CreateAttachment>
<m:ParentItemId Id="%s" ChangeKey="%s"/>
<m:Attachments>
<t:FileAttachment>
<t:Name>%s</t:Name>
<t:Content>%s</t:Content>
</t:FileAttachment>
</m:Attachments>
</m:CreateAttachment>
</soap:Body>
</soap:Envelope>'''%(email_id, item_id, change_key, file_name, attahcment_data)
item_id - event id comes in response while creating event
change_key - this also we will receive in create event response
Send this post request to "https://outlook.office365.com/EWS/Exchange.asmx"
This will create file attachments only for item attachment i have to try it.
Anybody please clarify whether gtalk supports PEP(Personal Eventing Protocol- PubSub mechanism). Because in my WP7 app getting error as feature not implemented.
Example:
<?xml version="1.0" encoding="UTF-8"?>
<iq from="msankeshwari#gmail.com/phoneFC07C39F" id="dcc3e8ea-5a40-4401-8843-9db4dd682b78" type="set">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<publish node="http://jabber.org/protocol/geoloc">
<item id="lastlocation">
<geoloc xmlns="http://jabber.org/protocol/geoloc">
<lat>47.64483</lat>
<lon>-122.141197</lon>
<acurracy>0</acurracy>
<timestamp>2012-09-03T18:52:24.592+05:30</timestamp>
</geoloc>
</item>
</publish>
</pubsub>
To determine if GTALK supports PEP or not, you need to refer Determining Support section of Personal Eventing Protocol (XEP-0163). As per the specs I sent following stanza to my own bare jid:
<iq xmlns="jabber:client" type="get" from="jabberxmpplibrary#gmail.com/jaxl#0482f1a54bd2b72a91a384663b1f14ba" to="jabberxmpplibrary#gmail.com" id="3">
<query xmlns="http://jabber.org/protocol/disco#info"></query>
</iq>
and received following response stanza:
<iq to="jabberxmpplibrary#gmail.com/jaxl#0482f1a54bd2b72a91a384663b1f14ba" from="jabberxmpplibrary#gmail.com" id="3" type="result">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="account" type="registered" name="Google Talk User Account"/>
<feature var="http://jabber.org/protocol/disco#info"/>
<feature var="http://jabber.org/protocol/disco#items"/>
<feature var="msgoffline"/>
</query>
</iq>
which indicates google-talk doesn't support PEP since server didn't return an identity of pubsub/pep on behalf of the account.
I'm playing with this Azure web role sample. It contains a class derived from RoleEntryPoint and a .aspx page that contains a button click handler.
I test it in Azure Emulator. I put the following code (taken from here)
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
in both role OnStart() and the button click handler. When role OnStart() is invoked it happens to run in WaIISHost.exe under MachineName\\MyLogin account and when button handler code is invoked it happens to run in w3wp.exe under MachineName\\NETWORK SERVICE account. That's surprising.
Why are these pieces of code from the same role project run inside different processes and under different accounts? Can I change that?
David is correct. In addition to that, you can turn off this behavior and run everything in the hostable web core (as it worked before SDK 1.4). You just need to comment out the "Sites" section in the services definition like in the example below:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="aExpense.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="aExpense" vmsize="Medium">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="HttpsIn" endpointName="HttpsIn" />
</Bindings>
</Site>
</Sites>
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
<Setting name="DataConnectionString" />
<Setting name="allowInsecureRemoteEndpoints" />
</ConfigurationSettings>
With Windows Azure v1.3 and beyond, a Web Role takes advantage of the full IIS, rather than Hosted Web Core. IIS runs in a separate appdomain.
See this blog post from the Windows Azure team for the gory details.