Source Code

;; Event Calendar

(define-map events
  uint
  { owner: principal, title: (string-ascii 50), date: uint, active: bool }
)

(define-data-var counter uint u0)

(define-public (create-event (title (string-ascii 50)) (date uint))
  (let ((id (var-get counter)))
    (map-set events id { owner: tx-sender, title: title, date: date, active: true })
    (var-set counter (+ id u1))
    (ok id)
  )
)

(define-public (cancel-event (id uint))
  (let ((event (unwrap! (map-get? events id) (err u404))))
    (asserts! (is-eq (get owner event) tx-sender) (err u403))
    (map-set events id (merge event { active: false }))
    (ok true)
  )
)

(define-read-only (get-event (id uint))
  (map-get? events id)
)

Functions (3)

FunctionAccessArgs
create-eventpublictitle: (string-ascii 50
cancel-eventpublicid: uint
get-eventread-onlyid: uint