Acuity

Elixir client for Acuity Scheduling API v1.1 API reference can be found here

Installation

If available in Hex, the package can be installed by adding acuity to your list of dependencies in mix.exs:

def deps do
  [
    {:acuity, "~> 0.1.1"}
  ]
end

Examples

Get all appointment type example

      iex> Acuity.get_appointment_types()
      {:ok,
        [
          %{
            "active" => true,
            "addonIDs" => [],
            "calendarIDs" => [562031],
            "category" => "Ask Me Anything",
            "classSize" => nil,
            "color" => "#6FCF97",
            "description" => "Prices listed above do not apply for this session.",
            "duration" => 30,
            "formIDs" => [1918022, 3239160],
            "id" => 95712350,
            "image" => "",
            "name" => "Ask Me Anything Virtual Booths",
            "paddingAfter" => 0,
            "paddingBefore" => 0,
            "price" => "0.00",
            "private" => true,
            "schedulingUrl" => "https://app.acuityscheduling.com/schedule.php?owner=:owner_id&appointmentType=:appointmentType",
            "type" => "service"
          }
        ]
      }

Get all calendars

  iex> Acuity.get_calendars()
  {:ok,
    [
      %{
        "description" => "Expertise: Individual, Career, Relationship and Family Concerns\nLanguage: English, Malay, Tamil\n\nCountry: Malaysia\nLocation (F2F Services): Klang",
        "email" => "test@example.com, therapy@example.com",
        "id" => 1481526,
        "image" => "//cdn-s.acuityscheduling.com/test.jpg?8142016179",
        "location" => "",
        "name" => "John Doe",
        "replyTo" => "coach@example.com",
        "thumbnail" => "//cdn-s.acuityscheduling.com/test-thubm.jpg?8142016179",
        "timezone" => "Asia/Kuala_Lumpur"
      },
    ]
  }

“””

Get appointments example

    iex> Acuity.get_appointments(%{"max" => 25})
    {:ok,
      {:ok,
        [
        %{
          "timezone" => "Asia/Manila",
          "id" => 183428383,
          "endTime" => "3:00pm",
          "forms" => [
            %{
              "id" => 2322025,
              "name" => "",
              "values" => [
                %{
                  "fieldID" => 11281125,
                  "id" => 3367788034,
                  "name" => "Are you still using our App? ",
                  "value" => "no"
                },
                %{
                  "fieldID" => 11281126,
                  "id" => 3367788035,
                  "name" => "If yes, what is your email address used to register for the App?",
                  "value" => ""
                }
              ]
            }
          ],
          "calendarTimezone" => "Asia/Manila",
          "category" => "Online Service",
          "subCalendarID" => 2878624,
          "type" => "Returning Clients (PHP1200)",
          "duration" => "60",
          "datetime" => "2022-06-28T14:00:00+0800",
          "formsText" => "Name: John Doe",
          "certificate" => nil,
          "priceSold" => "0.00",
          "location" => "URL: https://app.acuityscheduling.com/schedule.php?",
          "amountPaid" => "0.00",
          "calendarID" => 6224198,
          "phone" => "+87171416265",
          "lastName" => "Doe",
          "firstName" => "John",
          "price" => "0.00",
          "classID" => nil,
          "canClientReschedule" => true,
          "notes" => "",
          "appointmentTypeID" => 88269374,
          "dateCreated" => "June 6, 2022",
          "canClientCancel" => true,
          "paid" => "no",
          "email" => "test@gmail.com",
          "datetimeCreated" => "2022-06-05T21:16:50-0500",
          "time" => "2:00pm",
          "date" => "June 28, 2022",
          "canceled" => false,
          "calendar" => "Jane Doe",
          "confirmationPage" => "https://app.acuityscheduling.com/schedule.php?owner=:ownder_id&action=appt&id%5B%5D=:appt_id",
          "addonIDs" => [],
          "labels" => nil
        }
      ]
    }
  }