Python Office365 API - TimeZone保持在当地时间

时间:2016-05-23 20:35:57

标签: python office365api

我在下面有这个python代码,它适用于在Outlook日历中创建一个事件。以下示例的开始和结束时间为下午3点至下午4点(我认为是UTC时区)

我们有来自不同地区(太平洋,山区,中部......时间)的用户。我试图完成的是时间总是当地时间。无论用户帐户在哪里,也应默认为Outlook中的下午3点到4点。

提前致谢,如果我需要澄清其中任何一项,请告诉我。

# Set the request parameters
url = 'https://outlook.office365.com/api/v1.0/me/events?$Select=Start,End'
user = 'user1@domain.com'

pwd = getpass.getpass('Please enter your AD password: ')


# Create JSON payload
data = {
  "Subject": "Testing Outlock Event",
  "Body": {
    "ContentType": "HTML",
    "Content": "Test Content"
  },
  "Start": "2016-05-23T15:00:00.000Z",
  "End": "2016-05-23T16:00:00.000Z",
      "Attendees": [
    {
      "EmailAddress": {
        "Address": "user1@domain.com",
        "Name": "User1"
      },
       "Type": "Required"  },

       {
      "EmailAddress": {
        "Address": "user2@domain.com",
        "Name": "User2"
      },
       "Type": "Optional"  }
  ]
}

json_payload = json.dumps(data)

# Build the HTTP request
opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request(url, data=json_payload)
auth = base64.encodestring('%s:%s' % (user, pwd)).replace('\n', '')
request.add_header('Authorization', 'Basic %s' % auth)
request.add_header('Content-Type', 'application/json')
request.add_header('Accept', 'application/json')
request.get_method = lambda: 'POST'
# Perform the request
result = opener.open(request)

1 个答案:

答案 0 :(得分:0)

首先,没有必要在不同的时区同时创建会议。

如果你真的想这样做,你需要按照与会者的时区创建单独的会议请求,JSON格式如下所示,

config.MapHttpAttributeRoutes();

请注意,您需要移除首都' Z'从那时起,它将以" TimeZone"指定的当地时间音调显示。属性。

上面的解决方法需要知道所有与会者的时区,我不确定这是否可以实际完成。如果没有,那么如果你有参与者的声音,那可能没什么意义。

"理想"实现您的要求的方法是给出时间而不指定时区,以便它可以在不同的时区同时显示。

但是,它尚不支持,但您可以在此投票https://officespdev.uservoice.com/forums/224641-general/suggestions/12866364-microsoft-graph-o365-unified-api-create-events-w