{"id":2719,"date":"2023-11-15T09:00:00","date_gmt":"2023-11-15T09:00:00","guid":{"rendered":"https:\/\/www.infobip.com\/developers\/?p=2719"},"modified":"2024-01-08T17:27:32","modified_gmt":"2024-01-08T17:27:32","slug":"infobip-api-for-medical-appointments-a-go-sdk-use-case","status":"publish","type":"post","link":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case","title":{"rendered":"Infobip API for medical appointments: a Go SDK use case"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"infobip-api-for-medical-appointments-a-go-sdk-use-case\"><\/h1>\n\n\n\n<p>This use case covers a scenario in which patients can schedule a medical appointment and get an appointment\nreminder over SMS or email. Similarly, users are asked if they want to receive a reminder to schedule a new follow-up\nappointment after the recommended time. We&#8217;ll do all this using our <a href=\"https:\/\/github.com\/infobip-community\/infobip-api-go-sdk\">Infobip API Go SDK<\/a>.<\/p>\n\n\n\n<p>This project is a small CLI (Command Line Interface) that takes a user through a few menus and prompts them to set up a\nmedical appointment. It then calls the <a href=\"https:\/\/www.infobip.com\/docs\/api\">Infobip API<\/a> to send notifications and reminders.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"prerequisites\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Working <a href=\"https:\/\/go.dev\/doc\/install\">Go installation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infobip.com\/signup\">Infobip Account<\/a><\/li>\n\n\n\n<li>A terminal<\/li>\n\n\n\n<li><a href=\"https:\/\/git-scm.com\/downloads\">Git installation<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"project-overview\">Project Overview<\/h2>\n\n\n\n<p>The code goes through a series of steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Ask a user to choose from a doctor&#8217;s available time slots.<\/li>\n\n\n\n<li>Send a reminder before the appointment.<\/li>\n\n\n\n<li>Offer the user a reminder for a follow-up appointment and send it.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"setup\">Setup<\/h2>\n\n\n\n<p>First, clone the <a href=\"(https:\/\/github.com\/infobip-community\/med-appointments)\">repository<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/infobip-community\/med-appointments.git<\/code><\/pre>\n\n\n\n<p>Before running the project, you must set a few constants with your account credentials, <code>IB_BASE_URL<\/code>\nand <code>IB_API_KEY<\/code>.\nYou can get your credentials by logging into your <a href=\"https:\/\/portal.infobip.com\/login\/\">Infobip account<\/a>. \nOnce you configured the variables, you can run this project with the following commands:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd med-appointments\ngo get \"github.com\/infobip-community\/infobip-api-go-sdk\/v3\"\ngo run main.go prompts.go<\/code><\/pre>\n\n\n\n<p>This will move the terminal to the cloned folder, install the SDK, and run the project.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"asking-a-user-to-choose-from-a-doctors-available-time-slots\">Asking a user to choose from a doctor&#8217;s available time slots<\/h2>\n\n\n\n<p>After greeting a user, they can choose a slot from their doctor&#8217;s available dates:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>appointment := promptDate(\"Choose a date for your appointment:\", getAvailableDates(N_DATE_OPTS), N_DATE_OPTS)<\/code><\/pre>\n\n\n\n<p>We use the selected date to determine the scheduled dates to send the reminders.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>channel := promptChannel(\"How would you like to be reminded?\\n1) Email\\n2) SMS\")<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"sending-a-reminder-before-appointment\">Sending a reminder before appointment<\/h2>\n\n\n\n<p>We are using Email and SMS in this example, but many channels support scheduling messages.<\/p>\n\n\n\n<p>Now, the interesting part: how to send scheduled messages! We&#8217;ll first send a reminder 24 hours before the appointment.\nFirst, we need to set up our client.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"sms-and-email-common-set-up\">SMS and Email common set up<\/h3>\n\n\n\n<p>To do this, we first need to create an Infobip Client by calling the <code>getInfobipClient()<\/code> function. Where we create the \ninfobip client to be used by both SMS and Email channels.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>func getInfobipClient() infobip.Client {\n    client, _ := infobip.NewClient(\n        IB_BASE_URL,\n        IB_API_KEY,\n    )\n\n    return client\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"email-specific-set-up\">Email-specific set up<\/h3>\n\n\n\n<p>Sending Emails requires you to set up a sender. An email sender  should be first registered in\nthe <a href=\"https:\/\/portal.infobip.com\/apps\/email-setup\/conversation\/infobip-senders\">email configuration<\/a> of your account. Then add your sender address in the <code>EMAIL_FROM<\/code> constant\nat the beginning of the code.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const (\n    EMAIL_FROM = \"&lt;your-email-sender&gt;\"\n    \/\/ ...\n)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"calling-the-sendemail-or-sendsms-functions\">Calling the <code>sendEmail<\/code> or <code>sendSMS<\/code> functions<\/h3>\n\n\n\n<p>After this is set up, you can call the <code>sendEmail<\/code> or <code>sendSMS<\/code> functions. We&#8217;ll first send a reminder 24 hours before\nthe appointment:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>func sendAppointmentReminder(client infobip.Client, channel int, patient Patient, appointment time.Time) {\n    subject := \"Dr. Bip Appointment Reminder\"\n    text := fmt.Sprintf(\"%s, you have an appointment with Dr. Bip tomorrow!\", patient.Name)\n    date := appointment.AddDate(0, 0, -1)\n\n    if channel == CHANNEL_EMAIL {\n        sendEmail(client, EMAIL_FROM, patient.Email, subject, text, date)\n    } else {\n        sendSMS(client, patient.Phone, text, date)\n    }\n}<\/code><\/pre>\n\n\n\n<p>We do this by subtracting one day from the appointment date.<\/p>\n\n\n\n<p>Now, to schedule our message, we use the <code>sendAt<\/code> fields in both Email and SMS models to specify the delivery date.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"scheduling-an-email-message\">Scheduling an Email message<\/h3>\n\n\n\n<p>These are the details on how to call the <a href=\"https:\/\/www.infobip.com\/docs\/api\/channels\/email\">Email API<\/a> with \nthe <a href=\"https:\/\/github.com\/infobip-community\/infobip-api-go-sdk\">Go SDK<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>func sendEmail(client infobip.Client, from string, to string, subject string, text string, sendAt time.Time) int {\n    mail := models.EmailMsg{\n        From:    from,\n        To:      to,\n        Subject: subject,\n        Text:    text,\n        BulkID:  fmt.Sprintf(\"appointments-%d\", uuid.New()),\n        SendAt:  sendAt.Format(time.RFC3339),\n    }\n\n    resp, respDetails, _ := client.Email.Send(context.Background(), mail)\n\n    fmt.Printf(\"%+v\\n\", resp)\n    fmt.Println(respDetails)\n\n    return respDetails.HTTPResponse.StatusCode\n}<\/code><\/pre>\n\n\n\n<p>Note that both Email and SMS require the <code>time.Time<\/code> object to be converted into <code>RFC339<\/code> format in the request fields.\nAlso, in both cases, we are specifying a <code>BulkID<\/code> which serves as a handle to identify your sent messages, but\nalso to check their status or cancel sending them. We are using a UUID as part of the <code>BulkID<\/code> to assign every\nscheduled message a unique handle.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"scheduling-an-sms-message\">Scheduling an SMS message<\/h3>\n\n\n\n<p>And these are the details on how to call the <a href=\"https:\/\/www.infobip.com\/docs\/api\/channels\/sms\">SMS API<\/a> with \nthe <a href=\"https:\/\/github.com\/infobip-community\/infobip-api-go-sdk\">Go SDK<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>func sendSMS(client infobip.Client, to string, text string, sendAt time.Time) int {\n    sms := models.SMSMsg{\n        Destinations: &#91;]models.SMSDestination{\n            {To: to},\n        },\n        Text:   text,\n        SendAt: sendAt.Format(time.RFC3339),\n    }\n    request := models.SendSMSRequest{\n        BulkID:   fmt.Sprintf(\"appointments-%d\", uuid.New()),\n        Messages: &#91;]models.SMSMsg{sms},\n    }\n\n    resp, respDetails, _ := client.SMS.Send(context.Background(), request)\n\n    fmt.Printf(\"%+v\\n\", resp)\n    fmt.Println(respDetails)\n\n    return respDetails.HTTPResponse.StatusCode\n}<\/code><\/pre>\n\n\n\n<p>Both the <code>SendAt<\/code> and <code>BulkID<\/code> work the same as with Emails. <code>SendAt<\/code> specifies a sending time in <code>RFC3339<\/code> format, while the <code>BulkID<\/code> specifies a  handle to manage the messages. Note that messages can only be scheduled 6 months in advance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"offering-and-sending-a-reminder-for-a-follow-up-appointment\">Offering and sending a reminder for a follow-up appointment<\/h2>\n\n\n\n<p>Doctors usually recommend a follow-up visit to check whether everything is OK with a treatment. This example assumes that\nthe doctor recommended another visit in 30 days. We&#8217;ll ask a user if they&#8217;d like to receive a reminder before their next visit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if promptYesNo(\"Do you want a reminder for a follow-up after the recommended period? (one month)\") {\n    sendFollowUpReminder(client, channel, patient, appointment)\n}<\/code><\/pre>\n\n\n\n<p>To schedule this reminder, let&#8217;s\nuse the <code>sendAt<\/code> field again, but this time add 25 days after the first appointment date.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>date := appointment.AddDate(0, 0, 25)<\/code><\/pre>\n\n\n\n<p>And that&#8217;s it! I hope this helps you with your next project that needs scheduled communications.<\/p>\n\n\n\n<p>In case you find any errors or you want to know more about response details, please check Infobip \n<a href=\"https:\/\/www.infobip.com\/docs\/essentials\/response-status-and-error-codes\">Response Status and Error Codes Reference<\/a>.\nGo errors can be caught by enabling the anonymous variables <code>_<\/code> through code and checking if they are <code>nil<\/code> or\nan <code>Error<\/code> object. To do this, just replace <code>_<\/code> with <code>err<\/code> and check the <code>err<\/code> variable value after that.<\/p>\n\n\n\n<p>Be sure to check the complete code in the <a href=\"https:\/\/github.com\/infobip-community\/med-appointments\">Github Repository<\/a>\nas well as the documentation pages for <a href=\"https:\/\/www.infobip.com\/docs\/api\/channels\/email\/send-fully-featured-email\">sending Email<\/a> and <a href=\"https:\/\/www.infobip.com\/docs\/api\/channels\/sms\/sms-messaging\/outbound-sms\/send-sms-message\">sending SMS<\/a> messages.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This use case covers a scenario in which patients [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":2726,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[28,255,272],"tags":[46],"coauthors":[156],"class_list":["post-2719","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-post","category-infobip-products","category-use-case","tag-developer-docs"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Infobip API for medical appointments: a Go SDK use case - Infobip Developers Hub<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Infobip API for medical appointments: a Go SDK use case - Infobip Developers Hub\" \/>\n<meta property=\"og:description\" content=\"This use case covers a scenario in which patients [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case\" \/>\n<meta property=\"og:site_name\" content=\"Infobip Developers Hub\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/infobip\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-15T09:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-08T17:27:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Erick Corona\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@InfobipDev\" \/>\n<meta name=\"twitter:site\" content=\"@InfobipDev\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Erick Corona\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case\"},\"author\":{\"name\":\"Erick Corona\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/9e52e4d22fb53cc9a87adc54825c5e5c\"},\"headline\":\"Infobip API for medical appointments: a Go SDK use case\",\"datePublished\":\"2023-11-15T09:00:00+00:00\",\"dateModified\":\"2024-01-08T17:27:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case\"},\"wordCount\":729,\"publisher\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg\",\"keywords\":[\"developer docs\"],\"articleSection\":[\"Blog Post\",\"Infobip Products\",\"Use Case\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case\",\"url\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case\",\"name\":\"Infobip API for medical appointments: a Go SDK use case - Infobip Developers Hub\",\"isPartOf\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg\",\"datePublished\":\"2023-11-15T09:00:00+00:00\",\"dateModified\":\"2024-01-08T17:27:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#primaryimage\",\"url\":\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg\",\"contentUrl\":\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg\",\"width\":2560,\"height\":1707,\"caption\":\"Medic Appointment\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.infobip.com\/developers\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Infobip API for medical appointments: a Go SDK use case\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#website\",\"url\":\"https:\/\/www.infobip.com\/developers\/\",\"name\":\"Infobip Developers Hub\",\"description\":\"Build meaningful customer relationships across any channel\",\"publisher\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.infobip.com\/developers\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#organization\",\"name\":\"Infobip Developers Hub\",\"url\":\"https:\/\/www.infobip.com\/developers\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/03\/Infobip_logo_favicon.png\",\"contentUrl\":\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/03\/Infobip_logo_favicon.png\",\"width\":696,\"height\":696,\"caption\":\"Infobip Developers Hub\"},\"image\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/infobip\/\",\"https:\/\/x.com\/InfobipDev\",\"https:\/\/www.youtube.com\/channel\/UCUPSTy53VecI5GIir3J3ZbQ\",\"https:\/\/github.com\/infobip-community\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/9e52e4d22fb53cc9a87adc54825c5e5c\",\"name\":\"Erick Corona\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/image\/1d096b53aac31da0002a2066ab28c0f1\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c59cdedbf2c066d0ebbb15c5b1da56b1c5b5e7c49e3c4aaf7410dd1462a7b74c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c59cdedbf2c066d0ebbb15c5b1da56b1c5b5e7c49e3c4aaf7410dd1462a7b74c?s=96&d=mm&r=g\",\"caption\":\"Erick Corona\"},\"description\":\"Erick has been in the software industry for more than 10 years. Currently, he works as a Developer Experience Engineer at Infobip. He's interested in software development, writing, and racing car simulators in his free time.\",\"url\":\"https:\/\/www.infobip.com\/developers\/blog\/author\/erick\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Infobip API for medical appointments: a Go SDK use case - Infobip Developers Hub","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case","og_locale":"en_US","og_type":"article","og_title":"Infobip API for medical appointments: a Go SDK use case - Infobip Developers Hub","og_description":"This use case covers a scenario in which patients [&hellip;]","og_url":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case","og_site_name":"Infobip Developers Hub","article_publisher":"https:\/\/www.facebook.com\/infobip\/","article_published_time":"2023-11-15T09:00:00+00:00","article_modified_time":"2024-01-08T17:27:32+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"Erick Corona","twitter_card":"summary_large_image","twitter_creator":"@InfobipDev","twitter_site":"@InfobipDev","twitter_misc":{"Written by":"Erick Corona","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#article","isPartOf":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case"},"author":{"name":"Erick Corona","@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/9e52e4d22fb53cc9a87adc54825c5e5c"},"headline":"Infobip API for medical appointments: a Go SDK use case","datePublished":"2023-11-15T09:00:00+00:00","dateModified":"2024-01-08T17:27:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case"},"wordCount":729,"publisher":{"@id":"https:\/\/www.infobip.com\/developers\/#organization"},"image":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#primaryimage"},"thumbnailUrl":"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg","keywords":["developer docs"],"articleSection":["Blog Post","Infobip Products","Use Case"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case","url":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case","name":"Infobip API for medical appointments: a Go SDK use case - Infobip Developers Hub","isPartOf":{"@id":"https:\/\/www.infobip.com\/developers\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#primaryimage"},"image":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#primaryimage"},"thumbnailUrl":"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg","datePublished":"2023-11-15T09:00:00+00:00","dateModified":"2024-01-08T17:27:32+00:00","breadcrumb":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#primaryimage","url":"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg","contentUrl":"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/11\/national-cancer-institute-NFvdKIhxYlU-unsplash-scaled.jpg","width":2560,"height":1707,"caption":"Medic Appointment"},{"@type":"BreadcrumbList","@id":"https:\/\/www.infobip.com\/developers\/blog\/infobip-api-for-medical-appointments-a-go-sdk-use-case#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.infobip.com\/developers\/"},{"@type":"ListItem","position":2,"name":"Infobip API for medical appointments: a Go SDK use case"}]},{"@type":"WebSite","@id":"https:\/\/www.infobip.com\/developers\/#website","url":"https:\/\/www.infobip.com\/developers\/","name":"Infobip Developers Hub","description":"Build meaningful customer relationships across any channel","publisher":{"@id":"https:\/\/www.infobip.com\/developers\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.infobip.com\/developers\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.infobip.com\/developers\/#organization","name":"Infobip Developers Hub","url":"https:\/\/www.infobip.com\/developers\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/logo\/image\/","url":"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/03\/Infobip_logo_favicon.png","contentUrl":"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/03\/Infobip_logo_favicon.png","width":696,"height":696,"caption":"Infobip Developers Hub"},"image":{"@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/infobip\/","https:\/\/x.com\/InfobipDev","https:\/\/www.youtube.com\/channel\/UCUPSTy53VecI5GIir3J3ZbQ","https:\/\/github.com\/infobip-community"]},{"@type":"Person","@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/9e52e4d22fb53cc9a87adc54825c5e5c","name":"Erick Corona","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/image\/1d096b53aac31da0002a2066ab28c0f1","url":"https:\/\/secure.gravatar.com\/avatar\/c59cdedbf2c066d0ebbb15c5b1da56b1c5b5e7c49e3c4aaf7410dd1462a7b74c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c59cdedbf2c066d0ebbb15c5b1da56b1c5b5e7c49e3c4aaf7410dd1462a7b74c?s=96&d=mm&r=g","caption":"Erick Corona"},"description":"Erick has been in the software industry for more than 10 years. Currently, he works as a Developer Experience Engineer at Infobip. He's interested in software development, writing, and racing car simulators in his free time.","url":"https:\/\/www.infobip.com\/developers\/blog\/author\/erick"}]}},"_links":{"self":[{"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/posts\/2719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/comments?post=2719"}],"version-history":[{"count":6,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/posts\/2719\/revisions"}],"predecessor-version":[{"id":2947,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/posts\/2719\/revisions\/2947"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/media\/2726"}],"wp:attachment":[{"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/media?parent=2719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/categories?post=2719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/tags?post=2719"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/coauthors?post=2719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}