有开放的 iCalender API 吗?

发布于 2024-11-18 20:07:31 字数 1539 浏览 1 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

国际总奸 2024-11-25 20:07:31

您可以使用 iCal4j

You could use iCal4j

绮筵 2024-11-25 20:07:31

您要求某种 Web 服务,我不知道有哪一种,但如果您使用 .NET,则可以使用此库创建您自己的服务:

http://www.codeproject.com/KB/vb/vcalendar.aspx

You asked for a webservice of some sort, and I do not know of one, but if you are using .NET, you can create your own using this library:

http://www.codeproject.com/KB/vb/vcalendar.aspx

怕倦 2024-11-25 20:07:31

也许您可以选择生成一封电子邮件并将其发送给用户,其中包含您想要添加的约会。通过这样做,您:

  • 不想使用任何 API
  • 使用 Apple Mail 内置的自动解析功能(Mac OS 和 iOS)
  • 与可能不使用 iCal 的其他用户保持兼容

Maybe it's an option for you to generate and send an e-mail to the user containing the appointments you want the to add. By doing this you:

  • Haven't jo use any API
  • Use the build in auto-parsing feature of Apple Mail (Mac OS & iOS)
  • Stay compatible to other users which might not use iCal
桜花祭 2024-11-25 20:07:31

我刚刚使用了 DDay.iCal ,它适用于 C#。您可以在此处查看一些文档如何从 .ics 文件读取/解析,这就是我用来创建新文件的内容,检查它在 Outlook 和 iOS 电子邮件应用程序上是否有效:

public static string GetCalendarAsString(string subject, DateTime start, DateTime end, 
                                         string location, string timeZoneName)
{
    var calendar = new iCalendar();
    var timeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName);
    calendar.AddTimeZone(iCalTimeZone.FromSystemTimeZone(timeZone));

    var evt = new Event
              {
                  Start = new iCalDateTime(start),
                  End = new iCalDateTime(end),
                  Location = location,
                  Summary = subject,
                  IsAllDay = false
              };

    calendar.Events.Add(evt);

    var serializer = new iCalendarSerializer();

    return serializer.SerializeToString(calendar);
}

您可以使用其他几个属性,尽管我只需要这些

I just used DDay.iCal which works fine for C#. You can see some documentation here on how to read/parse from an .ics file, and this is what i used to create a new file, checked it works on Outlook and on the iOS email application:

public static string GetCalendarAsString(string subject, DateTime start, DateTime end, 
                                         string location, string timeZoneName)
{
    var calendar = new iCalendar();
    var timeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName);
    calendar.AddTimeZone(iCalTimeZone.FromSystemTimeZone(timeZone));

    var evt = new Event
              {
                  Start = new iCalDateTime(start),
                  End = new iCalDateTime(end),
                  Location = location,
                  Summary = subject,
                  IsAllDay = false
              };

    calendar.Events.Add(evt);

    var serializer = new iCalendarSerializer();

    return serializer.SerializeToString(calendar);
}

you can use several other properties, although I only needed these

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文