ATFutures / calendar

R interface to iCal (.ics files)
https://atfutures.github.io/calendar/
Other
41 stars 11 forks source link

Round trip fails for outlook calendar #34

Open Robinlovelace opened 5 years ago

Robinlovelace commented 5 years ago

e.g.:

# Aim: load and explore calendar
# Note: ical's support for times needs to be improved!
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(calendar)
u = "https://outlook.office365.com/owa/calendar/63f6c4e85d124df6a20656ade8e71faa@leeds.ac.uk/32e1cb4137f4414b8d7644453ec4b10414316826143036893453/calendar.ics"
download.file(u, "u.ics")
ical = calendar::ic_read("u.ics")
calendar::ic_write(ical, "u2.ics")
identical(readLines("u.ics"), readLines("u2.ics"))
#> [1] FALSE

sspa = ical %>% 
  filter(grepl("lecturing sspa", SUMMARY, ignore.case = T))

class(ical)
#> [1] "ical"       "tbl_df"     "tbl"        "data.frame"
class(sspa)
#> [1] "ical"       "tbl_df"     "tbl"        "data.frame"

sspa = sspa %>% 
  rename(DTSTART = `DTSTART;TZID=GMT Standard Time`, DTEND = `DTEND;TZID=GMT Standard Time`)
sspa$UID
#> [1] "040000008200E00074C5B7101A82E008000000007A4841CA05D9D401000000000000000\n 010000000457E19AC2AC8224990A92BA1075994F5"
sspa = calendar::ical(sspa)
calendar::ic_write(sspa, "sspa-week-22.ics")
#> Error in format.POSIXct(x, "%Y%m%d"): wrong class

Created on 2019-03-13 by the reprex package (v0.2.1)