I wrote this by hand because I found other clients hard to use for my use-cases. This provides an API layer into the Google Calendar API that is very minimal but also mostly complete. Types are fully represented.
use gcal::*;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let access_key = std::env::args().nth(1).expect("Provide an access key");
let now = chrono::Local::now();
let client = Client::new(access_key);
let client = EventClient::new(client);
let list = client.list(now - chrono::Duration::days(1), now).await?;
for event in &list {
eprintln!("{} {}", event.id, event.summary);
}
}
This library is being maintained by hand and is not generated from any API source e.g. OpenAPI, because I can't seem to find an example of Google providing that directly. As a result, calls may be incorrect in spots, especially where they are supplied for completeness and not used in saturn which is what this library was built to power.
If documentation is sparse, I am sorry, if you need explanations please feel free to put in a ticket.
I am happy to maintain the work within reason, but the goal is mostly to prop up saturn, and any major overhauls that would alter that charter would likely be rejected.
Erik Hollensbe erik+github@hollensbe.org