简体   繁体   中英

C# Google Calendar

Everything is already setup on the google calendar api (not sure if i configure correctly or i missed something out) I created ac# console application,that writes an appointment to google calendar.

What i want to achieve is that , i want to get all the user's or subscriber who subscribe to my app, so what i can write on there calendar if there is an event.

What configuration do i need?

That's actually a multi-domain problem.

Some questions to consider:

  1. What calender is it? A public one?
  2. How do they subscribe with your console?
  3. What happens when the software shuts down, crashes, etc?
  4. Do you need to know the event after it was written to the calendars?
  5. If not, do new subscriber get previously added calender entries?

Other than that, you should have a look at Webclient . Then we have here the reference for the Google Calendar API . The main request method you're searching is this one: Events Insert . With that, we can craft our own inseration variant.

```

private readonly List<string> _calendarIDs;
/* lets assume you imported webrequests and you're going to write a method
 * Further we assume, you have a List of calendars as object attribute
 */
public void InsertEntry(DateTime start, DateTime end,
   string title, string description) {
    using(var client = new WebClient()) {
        var epochTicks = new DateTime(1970, 1, 1);
        var values = new NameValueCollection();
        values["attachements[].fileUrl"] = "";
        values["attendees[].email"] = "";
        values["end.date"] = end.ToString("yyyy-MM-dd");
        values["end.dateTime"] = (end - epoch).Seconds;
        values["reminders.overrides[].minutes"] = 0;
        values["start.date"] = start.ToString("yyyy-MM-dd");
        values["start.dateTime"] = (start - epoch).Seconds;
        values["summary"] = title; // This is the calendar entrys title
        values["description"] = description;

        foreach(string calendarID in _calendarIDs) {
            var endpoint = String.Format("https://www.googleapis.com/calendar/v3/calendars/{0}/events", calendarID)

            var response = client.UploadValues(endpoint, values);
            var responseString = Encoding.Default.GetString(response);
    }
}

This is a minimal example and the api has a lot of endpoints and parameter. You should have a deep look into it, maybe you find more useful parameter.

Below is the sample code,

GoogleCalendarUtils utils = new GoogleCalendarUtils();
ArrayList months = /* the list of months*/;

//    Update the content window.
foreach( ThistleEventMonth month in months )
{
    foreach( ThistleEvent thistleEvent in month.ThistleEvents )
    {
        utils.InsertEntry( thistleEvent );
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM