Google Calendar API V3 android - 免费获取全天事件BusyRequest
Google Calendar API V3 android - Get all day events for freeBusyRequest
我正在尝试使用 google-api-services-calendar:v3 获取我的 Google 组织内其他人的忙数据19=](使用 Kotlin)。对于具有固定持续时间的事件,我得到的时间很好。但是全天事件不会出现在列表中。关于这方面的文档几乎无处可寻,我在 developers.google.com 上找到的内容包含 2013 年弃用的代码...
// ...
val busyTimesList = mutableListOf<AgendaPlotter.TimeSpan>()
SessionService.sharedInstance.getGoogleAccount(activity)
observeOn(Schedulers.io())
.subscribe {
mCredential!!.selectedAccount = it.account
val request = FreeBusyRequest()
val durationCal = Calendar.getInstance()
durationCal.time = startDay.time
Calendars.startOfDay(durationCal)
request.timeMin = DateTime(durationCal.time)
durationCal.add(Calendar.DATE, 1)
request.timeMax = DateTime(durationCal.time)
val requestItems = listOf(FreeBusyRequestItem().setId("email@from.colleague"))
request.items = requestItems
request.timeZone = TimeZone.getDefault().id
val busyTimes: FreeBusyResponse
try {
val query = mService!!.freebusy().query(request)
// Use partial GET to retrieve only needed fields.
query.fields = "calendars"
busyTimes = query.execute()
busyTimes.calendars.forEach {
it.toPair().second.busy.forEach { timeSpan ->
val busyTime = AgendaPlotter.TimeSpan()
busyTime.fromTime.timeInMillis = timeSpan.start.value
busyTime.toTime.timeInMillis = timeSpan.end.value
busyTimesList.add(busyTime)
}
}
emitter.onNext(busyTimesList)
} catch (e: IOException) {
e.printStackTrace()
// ...
}
}
// ...
所以我的问题是,我怎样才能同时获得全天活动?
经过一番搜索,我发现 API 实际上没有任何问题。一整天的活动都是免费的。
默认设置为空闲,这使得它不会显示为繁忙时间,这是有道理的。很多人都没有注意到这一点,他们将在那天 "free"。
我正在尝试使用 google-api-services-calendar:v3 获取我的 Google 组织内其他人的忙数据19=](使用 Kotlin)。对于具有固定持续时间的事件,我得到的时间很好。但是全天事件不会出现在列表中。关于这方面的文档几乎无处可寻,我在 developers.google.com 上找到的内容包含 2013 年弃用的代码...
// ...
val busyTimesList = mutableListOf<AgendaPlotter.TimeSpan>()
SessionService.sharedInstance.getGoogleAccount(activity)
observeOn(Schedulers.io())
.subscribe {
mCredential!!.selectedAccount = it.account
val request = FreeBusyRequest()
val durationCal = Calendar.getInstance()
durationCal.time = startDay.time
Calendars.startOfDay(durationCal)
request.timeMin = DateTime(durationCal.time)
durationCal.add(Calendar.DATE, 1)
request.timeMax = DateTime(durationCal.time)
val requestItems = listOf(FreeBusyRequestItem().setId("email@from.colleague"))
request.items = requestItems
request.timeZone = TimeZone.getDefault().id
val busyTimes: FreeBusyResponse
try {
val query = mService!!.freebusy().query(request)
// Use partial GET to retrieve only needed fields.
query.fields = "calendars"
busyTimes = query.execute()
busyTimes.calendars.forEach {
it.toPair().second.busy.forEach { timeSpan ->
val busyTime = AgendaPlotter.TimeSpan()
busyTime.fromTime.timeInMillis = timeSpan.start.value
busyTime.toTime.timeInMillis = timeSpan.end.value
busyTimesList.add(busyTime)
}
}
emitter.onNext(busyTimesList)
} catch (e: IOException) {
e.printStackTrace()
// ...
}
}
// ...
所以我的问题是,我怎样才能同时获得全天活动?
经过一番搜索,我发现 API 实际上没有任何问题。一整天的活动都是免费的。
默认设置为空闲,这使得它不会显示为繁忙时间,这是有道理的。很多人都没有注意到这一点,他们将在那天 "free"。