OH2 + caldav + Rotini Calendar Widget

Here is the quick example of caldav + Rotini calendar-widget using google calendar, hope it helps:

/etc/openhab2/services/caldavio.cfg

caldavio:omadon_cal:url=https://www.google.com/calendar/dav/your_gmail@gmail.com/events
caldavio:omadon_cal:username=your_gmail@gmail.com
caldavio:omadon_cal:password=your_gmail_pass
caldavio:omadon_cal:reloadInterval=10
caldavio:omadon_cal:preloadTime=86400

/etc/openhab2/services/caldavPersonal.cfg

caldavPersonal:usedCalendars=omadon_cal

/etc/openhab2/items/calendar.items

String      Calendar_home_Event1        "Event [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:1 value:NAME" }
String      Calendar_home_Place1        "Place [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:1 value:PLACE" }
DateTime    Calendar_home_Start_Time1   "Start Time [%s]"   <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:1 value:START" }
DateTime    Calendar_home_End_Time1     "End Time [%s]"     <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:1 value:END" }

String      Calendar_home_Event2        "Event [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:2 value:NAME" }
String      Calendar_home_Place2        "Place [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:2 value:PLACE" }
DateTime    Calendar_home_Start_Time2   "Start Time [%s]"   <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:2 value:START" }
DateTime    Calendar_home_End_Time2     "End Time [%s]"     <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:2 value:END" }

String      Calendar_home_Event3        "Event [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:3 value:NAME" }
String      Calendar_home_Place3        "Place [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:3 value:PLACE" }
DateTime    Calendar_home_Start_Time3   "Start Time [%s]"   <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:3 value:START" }
DateTime    Calendar_home_End_Time3     "End Time [%s]"     <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:3 value:END" }

String      Calendar_home_Event4        "Event [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:4 value:NAME" }
String      Calendar_home_Place4        "Place [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:4 value:PLACE" }
DateTime    Calendar_home_Start_Time4   "Start Time [%s]"   <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:4 value:START" }
DateTime    Calendar_home_End_Time4     "End Time [%s]"     <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:4 value:END" }

String      Calendar_home_Event5        "Event [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:5 value:NAME" }
String      Calendar_home_Place5        "Place [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:5 value:PLACE" }
DateTime    Calendar_home_Start_Time5   "Start Time [%s]"   <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:5 value:START" }
DateTime    Calendar_home_End_Time5     "End Time [%s]"     <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:5 value:END" }

String      Calendar_home_Event6        "Event [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:6 value:NAME" }
String      Calendar_home_Place6        "Place [%s]"        <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:6 value:PLACE" }
DateTime    Calendar_home_Start_Time6   "Start Time [%s]"   <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:6 value:START" }
DateTime    Calendar_home_End_Time6     "End Time [%s]"     <calendar>  { caldavPersonal="calendar:omadon_cal type:UPCOMING eventNr:6 value:END" }

/etc/openhab2/sitemaps/calendar.sitemap

sitemap calendar label="Calendar {rotini:true}"
{
        Frame label="{widget:calendar}" {
                Text item=Calendar_home_Event1 label="{item:event1-title}"
                Text item=Calendar_home_Place1 label="{item:event1-location}"
                Text item=Calendar_home_Start_Time1 label="{item:event1-start-time}"
                Text item=Calendar_home_End_Time1 label="{item:event1-end-time}"
                Text item=Calendar_home_Event2 label="{item:event2-title}"
                Text item=Calendar_home_Place2 label="{item:event2-location}"
                Text item=Calendar_home_Start_Time2 label="{item:event2-start-time}"
                Text item=Calendar_home_End_Time2 label="{item:event2-end-time}"
                Text item=Calendar_home_Event3 label="{item:event3-title}"
                Text item=Calendar_home_Place3 label="{item:event3-location}"
                Text item=Calendar_home_Start_Time3 label="{item:event3-start-time}"
                Text item=Calendar_home_End_Time3 label="{item:event3-end-time}"
                Text item=Calendar_home_Event4 label="{item:event4-title}"
                Text item=Calendar_home_Place4 label="{item:event4-location}"
                Text item=Calendar_home_Start_Time4 label="{item:event4-start-time}"
                Text item=Calendar_home_End_Time4 label="{item:event4-end-time}"
                Text item=Calendar_home_Event5 label="{item:event5-title}"
                Text item=Calendar_home_Place5 label="{item:event5-location}"
                Text item=Calendar_home_Start_Time5 label="{item:event5-start-time}"
                Text item=Calendar_home_End_Time5 label="{item:event5-end-time}"
                Text item=Calendar_home_Event6 label="{item:event6-title}"
                Text item=Calendar_home_Place6 label="{item:event6-location}"
                Text item=Calendar_home_Start_Time6 label="{item:event6-start-time}"
                Text item=Calendar_home_End_Time6 label="{item:event6-end-time}"
        }
}
3 Likes

Which version of OH2 you’re using. I copy&paste your configuration (with changing my credentials), but I’m not able to get it running with OH2 Final Release.

OH2 final. Check your credentials. I configured two step authentication on google that allows me to have different password per application.

You can always enable debug:
log:set DEBUG org.openhab.binding.caldav_personal

openhab-binding-caldav-command1           | 1.9.0            | x        | Started     | openhab-addons-2.0.0        | CalDAV Binding (command)
openhab-binding-caldav-personal1          | 1.9.0            | x        | Started     | openhab-addons-2.0.0        | CalDAV Binding (personal)
openhab-io-caldav1                        | 1.9.0            |          | Started     | openhab-addons-2.0.0        | CalDAV I/O
openhab-binding-caldav-command1           | 1.9.0            | x        | Started     | addons-2.0.0                | CalDAV Binding (command)
openhab-binding-caldav-personal1          | 1.9.0            | x        | Started     | addons-2.0.0                | CalDAV Binding (personal)
openhab-io-caldav1                        | 1.9.0            |          | Started     | addons-2.0.0                | CalDAV I/O

What this Rotini is? Can you give me more info? Is it built-in in OH2? Doest it works on other UIs also then HABPanel? Any other widgets that can show calendar events for 1 week at least?