【问题标题】:How to add events to Outlook Calendar or Google Calendar programmatically?如何以编程方式将事件添加到 Outlook 日历或 Google 日历?
【发布时间】:2021-02-06 22:27:09
【问题描述】:

我有一个 Java Web 应用程序,用户可以从中添加带有日期、主题和描述的事件(如任务)。我想以编程方式将这些事件发送到用户的 Outlook 日历。谁能帮我实现这一目标?

PS:如果可以通过 Google 日历完成,请告诉我如何做到这一点,因为我不喜欢 Outlook :)

【问题讨论】:

  • 如果你不想要一个特殊的程序,谷歌日历可以订阅/导出 - 不确定/通过 ical URL。 Outlook 中的日历也可以通过上下文菜单共享,但我不知道如何导入 google cal

标签: java web-applications calendar outlook google-calendar-api


【解决方案1】:

您现在可以使用 Outlook Calendar REST API 并从您的 java 代码发送请求。

有关身份验证流程,请参阅this getting started documentation

例如。 POST 到 https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/events 一个 JSON 内容,例如:

{
  "Subject": "Discuss the Calendar REST API",
  "Body": {
    "ContentType": "HTML",
    "Content": "I think it will meet our requirements!"
  },
  "Start": {
      "DateTime": "2014-02-02T18:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "End": {
      "DateTime": "2014-02-02T19:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "Attendees": [
    {
      "EmailAddress": {
        "Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
        "Name": "Janet Schorr"
      },
      "Type": "Required"
    }
  ]
}

【讨论】:

【解决方案2】:

Google 日历似乎是最佳选择,因为您可以使用 Google Calendar API。有关用 Java 编写的示例,请查看 here。请务必记下GCal API usage limits

Outlook 似乎没有某种 API,但也许您可以使用或修改 Jpstjava-libpst 之类的东西。

【讨论】:

  • 谢谢你的回复,我会试试的,我会回复的:)
【解决方案3】:

Albert 已经为 Google 回答了问题。对于 Outlook,您可以使用 OLE automationMicrosoft Graph*

请注意,第二个选项仅适用于与 Exchange Server 通信的 Outlook 帐户。如果您通过 Outlook 访问其他邮件后端,则无法使用 Graph,只能使用 OLE。

* 2021 年 2 月更新:基于 SOAP 的 Exchange Web 服务仍然有效,但如果您开始新事物,请使用基于 REST 的图形 API

【讨论】:

  • 感谢您的回答,所以我会以编程方式创建一些文件并将它们存储在特定文件夹中吗?那么程序是什么?我将如何告诉 Outlook 获取这些文件?另一边的链接是针对 Outlook 97 的,即使是 2010 年也可以吗?
  • 您必须查看 Java 中的 OLE 自动化是如何完成的。看例如这里stackoverflow.com/questions/6679810/…。然后你必须找出对象是如何在 Outlook 中定义的并使用它。开始编码,当您有具体问题时回来。如果您要以 EWS 为目标,则适用相同的程序。至于版本:如果您计划支持 Outlook 200 及更高版本,则必须使用 2007 代码和文档。这取决于你。
【解决方案4】:

您也可以直接使用 GCal RESTful API。 Java 类实际上只是包装了 REST 调用。
如果您在 Google 日历中创建了事件,您可以从 Outlook 订阅您的 Google 日历并将您的事件也导入 Outlook(尽管您必须为此使用 WebDAV)

【讨论】:

    猜你喜欢
    • 2017-09-25
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多