iCal4J tutorial

sessionEvent.getProperties().add(new Summary("xxxx summary));

 iCal4J is library to generate/parse Calendar ics file.

 

Its simple to use until you know what to do, the docs is not good at all.

 

Here is a few simple steps

 

 

  • 1. Create Calendar object - the big Calendar object matching ics file
  • populate some compulsory fields:
net.fortuna.ical4j.model.Calendar cal = new net.fortuna.ical4j.model.Calendar();
cal.getProperties().add(new ProdId("-//xxx org //iCal4j 1.0//EN"));
cal.getProperties().add(Version.VERSION_2_0);
cal.getProperties().add(CalScale.GREGORIAN);

 

  • Create VEvent Object - which hides all detail about a certain event (including recurring ones)
VEvent sessionEvent = new VEvent();

 

  • Remeber there are lots of object inheriting Property so just create varied properties and add to the event property list
  • For example, create summary for the event

 

sessionEvent.getProperties().add(new Summary("xxxx summary"));
  •  create start time
	String dateAsICal4JString = "20110813T113000"; // date+time format
	sessionEvent.getProperties().add(new DtStart(dateAsICal4JString));
  •  ADD recurring rule
Recur recur = new Recur(Recur.WEEKLY, 20); // 20 is repeat count
recur.getDayList().add(new WeekDay("WE"));
RRule rule = new RRule(recur);
sessionEvent.getProperties().add(rule);
 

 

 

  • At least, add the VEvent created to Calendar component
cal.getComponents().add(sessionEvent);
 

Its very simple right? First time look at it, shit,don't know what to do

 

Here is long code reference where I got the ideas

http://exchangeling.googlecode.com/svn-history/r4/trunk/src/main/java/ExchangeEventConverter/iCal4j.java

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iCal4j 是一个 Java 编写的处理 iCalendar(.ics)文件的库,可以实现 iCalendar 文件的解析、生成、修改等操作。下面介绍一些常用的 iCal4j 库的使用方法。 1. 解析 iCalendar 文件 ```java // 创建一个文件输入流 FileInputStream fin = new FileInputStream("example.ics"); // 创建一个 iCalendar 解析器 CalendarBuilder builder = new CalendarBuilder(); // 解析 iCalendar 文件 Calendar calendar = builder.build(fin); // 遍历日历组件 for (Component component : calendar.getComponents()) { // 处理每个日历组件 } ``` 2. 生成 iCalendar 文件 ```java // 创建一个空的日历对象 Calendar calendar = new Calendar(); // 创建一个事件对象 Date start = new Date(); Date end = new Date(start.getTime() + 3600000); DateTime startDt = new DateTime(start); DateTime endDt = new DateTime(end); VEvent event = new VEvent(startDt, endDt, "iCal4j Event"); // 将事件添加到日历中 calendar.getComponents().add(event); // 创建一个文件输出流 FileOutputStream fout = new FileOutputStream("example.ics"); // 将日历对象写入文件 CalendarOutputter outputter = new CalendarOutputter(); outputter.output(calendar, fout); ``` 3. 修改 iCalendar 文件 ```java // 创建一个文件输入流 FileInputStream fin = new FileInputStream("example.ics"); // 创建一个 iCalendar 解析器 CalendarBuilder builder = new CalendarBuilder(); // 解析 iCalendar 文件 Calendar calendar = builder.build(fin); // 获取日历中的一个事件 VEvent event = (VEvent) calendar.getComponent(Component.VEVENT); // 修改事件的标题 event.getProperties().getProperty(Property.SUMMARY).setValue("New Title"); // 创建一个文件输出流 FileOutputStream fout = new FileOutputStream("example.ics"); // 将修改后的日历对象写入文件 CalendarOutputter outputter = new CalendarOutputter(); outputter.output(calendar, fout); ``` 除了以上介绍的方法,iCal4j 还提供了许多其他的功能,例如处理时区、重复事件、提醒等。详细的 API 文档可以参考官方网站。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值