use chrono::{Duration, Local};
use gcal_rs::*;
#[tokio::main]
async fn main() {
let client_id = std::env::var("GOOGLE_CLIENT_ID")
.expect("[ERR] Missing the GOOGLE_CLIENT_ID environment variable.");
let client_secret = std::env::var("GOOGLE_CLIENT_SECRET")
.expect("[ERR] Missing the GOOGLE_CLIENT_SECRET environment variable.");
let token = OAuth::new(client_id, client_secret, "http://localhost:5000/auth")
.naive()
.await
.expect("[ERR] Failed to get access key.");
println!("Refresh: {:?}", token.refresh);
let (calendar_client, event_client) = GCalClient::new(token, None).unwrap().clients();
let list = calendar_client
.list(true, CalendarAccessRole::Reader)
.await
.unwrap();
let start = Local::now();
let end = Local::now().checked_add_signed(Duration::days(7)).unwrap();
let mut event_list = Vec::new();
for calendar in list {
event_list.extend(
event_client
.list(calendar.id.clone(), start, end)
.await
.unwrap(),
);
}
println!("Events: ");
for event in &event_list {
println!(" - {} : {}", event.summary, event.calendar_id);
}
}