►
From YouTube: Microsoft Graph developer community call-January 2020
Description
Agenda for this month’s call included:
-Jeremy Thake & Todd Baginski – How we built the Meetings Capture sample
-Nikola Metulev – Deep dive into the Microsoft Graph Toolkit new v1.1 features
For more information, visit https://graph.microsoft.com
A
Happy
New
Year
everybody
welcome
to
2020
I
I
distinctly.
Remember
when
I
was
younger.
That
kind
of
having
to
remember
to
change
the
day
at
the
end
of
the
beginning
of
a
new
year
was
a
big
deal
and
you'd
always
forget
and
write
the
previous
year,
but
I
think
as
technology
has
evolved,
that
almost
becomes
a
non-starter
unless
you're
writing
checks,
which
is
actually
quite
common
in
America
or
in
my
case.
Every
month,
when
I
write,
the
updated
community
called
dates
in
the
sly
texts
that
come
out
but
other
than
that
I.
A
Don't
since
you've
run
in
the
year
anymore,
but
I'm
happy
new
year
anyways
and
thank
you
for
joining
the
call.
It
is
early
in
January
and
I
know
this
cause
usually
a
little
bit
lower
attended.
But
we
decided
to
pick
what
I
would
probably
say
is
one
of
our
biggest
things.
We've
shown
on
that
graph
I'm
for
developers.
I
know
in
December.
If
you
have
watched
the
call
that
Darrell
Miller
did
is
my
partner
in
crime
here
in
unit
or
in
his
team.
A
He
showed
off
all
the
PowerShell
stuff
and
japheth,
who
is
one
of
our
engineers
in
neighboring.
Kenya,
actually
showed
off
some
of
the
graphics
for
things
and
what
we've
been
doing
there,
and
so
this
month
we're
kind
of
going
back
to
our
pure
developer
roots,
and
this
is
a
demo
that
we
built
actually
or
our
ignite
session,
that
we
outsourced
to
canvas
which
is
a
company
that
todd
Baginski
who's
on
the
call
with
us
will
be
presenting
on
as
well
so
I
hope
you
enjoy.
A
This
call
it's
very
graph
heavy,
but
it's
also
very
Microsoft
teams
heavy
as
well,
which
is
great
to
kind
of
start
to
see
the
overlap
between
the
different
engineering
orbs
within
Microsoft
365
kind
of
come
together
to
be
able
to
tell
a
real
user
experience
story
powered
by
all
the
platform
that
we
have
available
to
us.
So
for
those
that
don't
know
we
do
run.
These
calls
monthly,
it's
the
first
Tuesday
of
every
month.
So
next
month's
call
will
be
the
same
time.
8:00
a.m.
PST
on
February,
the
4th
2020.
A
This
solution
and
then
so
essentially,
I'll
start
off
with
a
bit
of
an
intro
Todd's
going
to
go
into
the
deeps
of
how
it
was
actually
built
and
Nicola
will
go
on
about
the
Microsoft
craft
toolkit.
So
if
you
want
to
follow
us
on
Twitter
I'm,
not
sure
my
little
birdie
is
halfway
down
but
yeah.
If
you
want
to
keep
in
contact
with
us,
we're
very
active
on
Twitter
and
share
our
kind
of
graph
findings
on
the
web
as
we
as
we
read
other
people's
blog
posts
and
everything's
like
that.
A
Okay,
so
I'm
gonna,
actually
just
demo
the
application
this
morning
and
then
Todd
and
Nicole
go
into
a
lot
more
detail
about
how
this
was
done.
So
I'm
gonna,
alt
tab
over
into
an
in
private
browser
in
Microsoft
edge
into
one
of
our
demo
environments
here
and
today,
I'm
actually
Katie,
Jordan
2020
means
I
get
to
pick
a
new
alias
to
present,
as
last
year
was
Meghan.
A
We've
called
this
app
application,
a
the
meanings
capture
application
and
what
it
allows
me
to
do
is
within
the
context
of
this
particular
Microsoft
team
and
in
particular
this
particular
channel
of
a
team.
We
can
go
and
create
meetings
that
are
in
the
future,
with
agendas
with
people
attending,
as
well
as
pre-read
documents
and
even
tasks
that
we
can
create
to
associate
with
people
around
those
pre
reads.
And
then,
when
the
meanings
actually
live,
we
can
capture
the
notes
of
the
meetings.
A
A
date
attachment
create
new
tasks
and
actions,
as
we
have
discussions
in
the
meetings
and
then
afterwards
actually
kind
of
publish
that
meeting
and
sign
off.
If
you
want
to
be
that
official,
like
a
lot
of
board
meetings
or
committee
or
governance
council
meetings,
do
so
just
to
give
you
an
idea
about
what
we're
doing
here
when
we
create
the
meeting
I'm.
Actually
gonna
do
one
just
as
in
context
of
what
we're
doing
today,
which
is
the
community
core
for
February
discussion,
and
you
can
see
that
it's
already
added
me
as
an
attendee.
A
But
it's
also
added
at
least
here
who
is
part
of
the
cantos
a
board
and
has
also
been
part
of
meetings
in
the
past.
That
I've
worked
on
with
that
particular
person.
Now
I
can
go
in
here
and
add
a
lot
of
other
people
in,
and
it's
using
a
people
picker
here
to
make
those
suggestions.
So
I
can
go
and
add
Todd
who's
in
the
core
here
and
now.
Teaming
is
an
attendee
and
you
can
see
that
it's
doing
nice
little
simple
things
like
adding
their
photos
that
are
stored
within
the
profile
by
now.
A
Everyone
is
available
to
attend
so
I'm
gonna
pick
that
10
to
10:30
timeframe
and
so
we're
gonna
review
content
from
the
Jen.
The
Jen
call
we're
gonna,
discuss
potential
speakers
here
and
then
we're
gonna
talk
about
content
from
engineering
that
we
want
to
add
and
obviously
I
can
go
in
and
add
new
attendees
and
maybe
there's
some
pre
reading
before
this
meeting.
Maybe
I
have
already
got
a
list
of
potential
Microsoft
community
core
members
that
I've
been
drafting
in
a
Word
document
and
I
can
click
Save.
Now.
A
What
that's
obviously
gonna
do
is
go
create
that
meeting
it's
gonna
send
meeting,
invites
to
everyone
and
it'll
kind
of
do
a
nice
summary
of
all
of
those
events.
So
if
I
come
over
into
Katie's
calendar
here,
you'll
see
that
there's
existing
ones
that
have
been
summarized
where
it's
put
those
in
and
if
I
go
over
onto
the
calendar,
it
will
come
through
here
that
I've
got
one
on
the
this
one.
It
was
one
I
just
created
and
you
can
see
that
if
I
double-click
on
it,
it
shows
me
all
the
members.
A
It
shows
that
neither
one
responded
yet
I
have
automatic,
responding
because
I've
created
this
meaning,
and
so
it
kind
of
integrates
nicely
with
that
calendar
and
then,
when
it
comes
to
wanting
to
launch
that
and
and
preview
that
meeting
I
just
click
there.
It's
gonna
tell
me
as
I'm
running
this
as
the
note-taker
within
that
meeting.
That
Katie,
which
is
me
as
approved
it
Alyssa
and
Tod,
have
not
accepted
the
meaning.
A
Make
that
as
a
deadline
for
xx
and
add
that
task
and
under
the
covers.
What
that's
doing
is
it's
actually
creating
that
planner
task
inside
of
a
plan
within
the
channel
for
this
quarterly
meaning?
So
if
I
go
into
my
Microsoft
to
do
as
Alyssa
I
go
into
planner
as
Alissa,
essentially
I'm
going
to
see
all
those
tasks
showing
up
within
within
my
experience
now
after
the
meetings
done.
Maybe
I
want
to
like
wrap
that
up.
Maybe
you've
got
some
final
notes.
A
I
need
to
do
shut
off
the
meeting
or
like
at
the
end
of
the
day.
I
go
back
and
I
add
some
more
notes,
because
I've
had
my
day
full
stacks
of
meetings
and
then
I
can
publish
that
meeting,
and
so
what
I
can
do
here
is
when
I
click
publish
that's
going
to
go
away
and
wrap
all
that
up
and
capture
it,
and
then
summarize
those
notes
into
an
email
form
and
send
those
to
all
of
the
attendees.
A
This
means
that
if
someone
needs
to
shoot
this
to
offer
people
if
they
weren't
in
the
meeting
but
want
to
hear
see
the
notes
they
can,
but
also
the
real
benefit
of
this
is
the
amount
of
times
like
I'm,
on
a
bunch
of
different
kind
of
governance
teams
here
and
V
teams.
If
I
want
to
find
previous
meetings,
I
just
go
to
the
channel
where
that
V
team
actually
discusses
things
and
I
go
to
the
meeting
capture.
I
can
see
the
history
of
all
those
meetings
and
go
review.
A
The
meeting
minute
notes
from
it-
and
so
this
is
super
useful
I
mean
it
is
consistent.
So
if
your
whole
organization
use
this
approach,
if
you
get
invited
to
a
new
v-team,
you
know
where
to
go
to
look
to
see
all
those
previous
meetings
and
all
the
notes.
So
if
I
jump
back
over
to
Outlook
here
and
went
into
Katie's
mail
here,
you'll
see
that
that
community
call
for
February
is
sent
the
email.
We've
got
a
nice
standardized
format
here
shows
the
attendees
of
the
meeting.
It
shows
what
the
agenda
was.
A
We
go
and
create
the
OneNote
notebook
page
for
those,
and
so,
if
you
wanted
to
have
one
note
on
your
phone
or
one
note
on
your
desktop,
you
could
go
and
basically
open
this
OneNote
page
in
your
application.
Have
that
one
and
go
with
you
and
again
consistency?
All
of
the
meaning
minutes
will
all
be
there.
Underneath
these
different
notebooks
mapped
to
the
team
and
the
channel,
which
would
essentially
be
a
section
within
the
OneNote
and
then
every
single
meaning
here
when
it
would
then
be
the
OneNote
pages
they
get
created.
A
So
we're
leveraging
a
lot
of
different
aspects
of
the
Microsoft
365
platform
here
to
work
with
a
common
scenario
that
people
do
within
companies
to
run
with
meanings
within
the
context
of
members
of
a
team.
So
hopefully
it
gives
you
a
good
idea
about
what
with
Bill
Todd.
A
You
want
to
just
quickly
explain
where
they
can
find
this,
because
we
have
open
sourced
this
now
and
then
I'd
love
you
to
go
through
some
of
the
scenarios
about
what
the
biggest
bits
about
this
that
we've
done
with
Microsoft
graph
and
teams
in
regards
to
kind
of
things
like
orth
or
more
API
calls
we've
done
to
get
this
to
work.
Yeah.
B
B
The
whole
installation
process
has
been
automated
with
an
arm
template
for
all
the
azure
components,
as
well
as
scripting
the
deploy
as
many
things
as
we
can
automatically,
and
so
I'd
like
to
start
with
that,
because,
if
you
think
back
to
just
five
years
ago,
and
if
you
tried
to
develop
an
app
like
this
with
Microsoft
Office
365
before
a
graph
existed,
we
would
have
to
like
call
all
those
different
api's
individually
and
write
our
own
authen
to
there's
no
way.
We
could
have
got
it
on
this
quick
and
then
another
thing
that
really
sped.
B
The
development
of
this
was
the
Microsoft
graph
toolkit
that
Nikola
made
and
Nicholas
is
well
and
I,
see
both
on
the
call
and
hats
off
to
you
guys
again
for
all
the
help
you
gave
us
to
get
that
done
and
the
changes
you
made
to
help
it.
It
matched
some
of
the
requirements
for
this
app,
so
the
graph
toolkit
also
really
helped
us
get
the
front
end
of
this
built
really
quickly
and
jeremy's
opened
it
up
right
here,
and
you
can
see
here.
This
is
the
readme.
It
tells
you
what
this
is
all
about.
B
It
tells
you
what
prereqs
you
need
to
install
and
I
think
I'll
take
over
the
sharing
at
this
point.
Jeremy
yeah.
Absolutely
so
it's
interesting.
If
you
look
at
the
code
that
makes
this
up
right
and
majority
is
HTML.
This
is
a
c-sharp
solution,
minimal,
JavaScript
needed
and
very
tiny
bit
of
typescript
for
the
SharePoint
part.
B
So
one
of
the
things
that
we
wanted
to
do
was
make
this
as
easy
as
possible
for
people
to
install
on
their
end.
So
we've
tried
to
automate
as
much
of
the
installation
as
possible
at
a
high
level.
These
eight
steps
are
what
you
will
do
to
install
the
sample,
and
everything
in
here
is
talked
about
in
very
good
detail,
and
it
just
says:
hey,
fill
out
this
arm
template
with
these
values,
make
these
configurations
etc.
B
After
you're
done
with
that,
it
also
has
the
demo
script,
and
so
the
demo
script
is
basically
what
you
just
saw.
Jeremy
did
so,
if
you're
trying
to
figure
out
how
to
exercise
all
the
features
of
this,
and
even
more
than
than
what
Jeremy
showed
you
can
just
flow
through
this
demo
scripts
part
here,
and
it
really
tells
you
what
to
do.
B
We
also
describe
how
you
would
add
this
app
to
a
different
team,
and
a
channel
I
can
imagine
that
many
people,
if
they
wanted
to
put
this
in
their
org,
would
probably
want
to
add
it
to
as
many
places
as
possible.
Finally,
at
the
bottom
we
give
some
details
about
the
graph
tool
kit,
which
Nick
is
going
to
go
deeper
on.
We
talked
about
the
sequel
server
database,
which
Jeremy
didn't
mention.
B
B
This
is
actually
using
Microsoft
graph
toolkit
control
that
will
allow
you
to
display
all
of
the
events
that
are
upcoming
on
your
calendar,
with
some
type
of
filter
criteria.
So
that's
how
we
built
this
control
right
here.
That
shows
us
now.
The
part
here
for
this
card
and
the
ability
to
email,
someone
or
see
their
email
address,
Jeremy
didn't
even
touch
on
that.
That's
also
built
in
to
that
toolkit
control.
B
So
it's
great
how
many
things
you
get
along
for
the
ride
for
free
when
you're
using
the
Microsoft
graph
toolkit
other
thing
is
that
we
got
for
free
was
when
Jeremy
made
the
new
meeting.
We
had
the
people
picker
in
there.
That's
a
graph
toolkit
control
here,
the
planner
tasks.
This
whole
right
pane
is
a
toolkit
control
which
will
allow
you
to
point
it
at
a
bucket
in
planner
and
see
the
tasks
for
it.
B
So
there's
toolkit
controls
scattered
throughout
this
entire
sample
to
get
into
the
code
and
really
start
diving
into
that
a
little
deeper.
What
I'd
like
to
do
is
kind
of
take
a
use
case
here
and
show
you
how
the
code
maps
to
that
use
case
from
front
to
back.
So
the
use
case
that
I'd
like
to
demonstrate
for
you
here
is
the
one
back
when
Jeremy
created
the
meeting
and
he
found
the
available
times
for
people
so
I'm
going
to
go
back
to
the
create
meeting
page
here
and
again
what
Jeremy
did
silk?
B
Do
you
have
these
people
who
are
attendees
of
this
meeting,
and
then
you
pick
the
date
on
which
you
want
to
have
your
meeting,
and
you
pick
the
duration,
let's
make
it
on
the
13th
that
you
want
that
meeting
to
occur
for
and
so
then,
when
you
click
find
available
times,
as
you
saw
it's
really
fast,
and
it
says
at
this
time
these
people
cannot
attend
and
notice.
These
are
the
people
again
in
our
attendee
list,
and
these
are
the
places
that
people
can
attend,
and
so
how
did
we
do
this?
B
We
did
this
with
the
graph
API,
and
this
is
what
I'd
like
to
show
you
end
to
end.
How
did
we
find
the
available
time
for
them
and
then,
after
we
found
the
available
time
for
them
after
we
found
the
available
time
for
them?
How
did
we
display
it
when
we
went
to
the
page
in
the
meeting
to
say?
Did
they
accept
this
meeting
or
not,
which
you'll
see
in
just
a
second,
when
this
page
pops
these
graphics
right
here?
How
do
we
make
this
determination
as
well?
B
B
Webparts,
so
those
are
all
the
main
pieces
of
our
puzzle.
We
all
have
that.
We
also
have
a
web
job
too,
so
the
code
you're
looking
at
right
now
is
the
asp.net
website.
This
is
the
actual
meeting
capture
app
that
you
saw
in
the
team's
tab
and,
if
I
take
that
use
case,
I
just
talked
about
on.
How
did
we
implement
that
find
available
times?
B
It
all
starts
here
in
the
new
meeting,
CSS
HTML
file
and
so
you'll
find
that
under
views
meeting
capture
new
meeting
down
here,
I
bet
people
have
already
cloned
this
repo
and
looking
at
the
code.
So
here
is
our
new
meeting
and
inside
of
the
new
meeting
I
in
inside
of
here
I.
Had
that
button,
that's
going
to
find
the
time
there
it
is
it's
ID
is
BTN
fine
time.
B
So
here's
our
front
end
user,
clicks
that
then
we
have
this
JavaScript
hooked
up
to
it
and
the
JavaScript
that
is
correlating
with
the
page
in
the
web.
App
is
up
here
under
WWJ
s,
so
here's
the
new
meeting
jus
file
and
here's
my
click
event.
You
can
see
for
that
button.
So
we
do
some
things
here
to
basically
parse
different
things
out
of
the
page.
B
What
did
the
user
select
as
the
criteria
for
when
they
would
like
the
meeting
to
be
then
down
here
is
actually
when
we
go
to
the
graph
to
get
that
data.
We're
using
this.
This
javascript
file
here
called
team's
helper,
and
you
will
also
find
that
one
under
the
Jas
file,
they're,
essentially
what
team's
helper
is
doing
as
teams
helper
is
going
to
take
the
URL.
B
B
Well,
that
is
actually
in
that
meeting
capture
controller,
so
here's
to
find
available
times
method
we
just
invoked
and,
as
you
can
see,
when
we're
done
to
return
some
JSON
of
the
schedule
ID
and
the
availability
view
here,
but
really
we
don't
do
that
in
this
method.
We
do
that
in
this
service
class
we
created
it
called
search
available
time.
So
for
all
the
different
things
that
we
interact
with,
we
have
this
services
folder.
We
have
some
calls
we
make
against
the
base
graft
service.
B
B
And
there
we
are
right
in
here
it
looked
like
I
had
it
here,
we
go
so
here's
search
available
time.
So
this
is
really
at
the
point
where
we're
actually
using
graph
up
till
now,
we
made
sure
that
we
had
all
the
contexts
that
we
had
with
teams
and
now
we're
going
off
to
graph
to
actually
say:
hey,
go
to
the
calendar,
call
get
schedule
just
like
Jeremy
mentioned
pass
in
the
schedules,
which
is
a
collection
of
all
the
schedules
for
all
the
meeting.
B
Attendees
the
time
frame,
I'm
searching
between
on
my
start
and
end
here
and
then
that
interval
that
interval
was
do
I,
want
it
to
be
a
30
minute
or
a
60
minute
meeting,
and
then
that
gives
us
back
the
availability
for
all
those
people.
We're
then
able
to
come
in
and
react
to
that
information
that
we
get
back
and
run
this
code
down
here
where,
eventually,
if
you
see
this
button
that
we're
creating
this
button
and
all
this
code
here,
that's
generating
this
HTML.
B
Is
actually
the
one
that
if
we
go
back
to
our
meetings
and
create
a
meeting
when
I
click
the
fine
available
time
button
right
here,
each
one
of
these
things
and
the
pop
up
that
you'll
see
is
that
actual
button
that
that
code
was
mapping
to
looks
like
I
may
have
exposed
above
Jeremy
I,
clicked
it
before
the
bait
page
was
fully
loaded.
Let's
try
that
again
there
we
go
so
each
one
of
these
here
is
the
button
that
you
saw
back
in
the
code
right
here.
So
that's
kind
of
a
front
to
back
on.
B
How
can
you
trace
these
calls
if
you're
looking
at
the
sample
and
trying
to
discover
how
did
they
do
this?
One
thing
what
you
can
start
in
the
user
interface
and
the
view?
Look
at
the
JavaScript
see
how
that
maps
to
the
controller
and
then
trace
it
through
the
controller
to
the
service
class
to
find
which
graph,
API
or
other
API
we
use
to
get
a
job
done.
Jeremy
I
think
another
nice
pattern.
The
show
is
also
to
take
this
one
step
further
right
and
show
once
we
got
into
the
page
mentioned
before.
B
A
B
Has
it
really
has
so?
Let's
see
you
make
sure
that
gets
uploaded
here
back
to
this
guy
and
again
for
context,
everybody
the
spot
that
I'm
about
to
show
you
that
we're
creating
here,
it's
the
little
spot,
that's
gonna
say:
did
a
person
show
up
for
the
meeting
or
not
so
I'm,
just
gonna
there?
It
is.
This
is
where
I'm
gonna
show
how
did
I
find
out
Kati
accepted,
but
ELISA
myself
did
not.
B
So
if
we
come
back
to
our
code
here,
the
follow
up
meeting
page
right
here
is
the
one
we
call
it
follow-up
meeting.
This
is
the
one
that
you're
filling
out
the
details
of
what's
happening
during
the
meeting,
and
essentially
this
is
the
part
of
the
code
right
here
where
the
attendees
are
listed,
and
you
can
see
we're
seeing
if
the
attendees
status
response
is
equal
to
graph
response
type
accepted.
Then
we're
going
to
use
this
SVG
to
render
that
icon.
B
B
There's
another
thing
that
Jeremy
showed,
which
was
the
emails
that
she
received
and
I
had
a
lot
of
people,
ask
me
about
how
we
made
emails
in
a
similar
fashion
for
a
different
sample.
We
worked
on
with
Jeremy
one
time
and
I
bet
they're
gonna,
ask
again
now
so
I
think
I'll
get
ahead
of
the
curve
on
that
one
and
show
everyone
how
we
made
those
email
templates.
So
here
is
the
example
of
that
nicely:
formatted
email
that
follow-up
email
that
goes
out
when
you
click
publish.
So
how
did
we
make
that?
Well?
B
The
way
we
made
that
is
you'll
find
this
templates
section
down
here
at
the
very
bottom
of
the
solution
and
meeting
created
is
actually
the
one.
The
template
that's
used
to
send
that
email,
I
just
showed
you,
and
so
here
you
can
see.
This
is
just
another
view
that
we've
defined
we
have
our
custom
styles
on
the
top
and
here's
the
HTML
that
actually
implements
it
in
the
follow-up
meeting
class
when
we
click
the
publish
button.
What
eventually
happens
is
in
the
meeting
capture
controller.
B
This
method
right
here
called
published
buyers,
and
what
we're
doing
in
this
method
is,
we
are
assembling
the
email
template
view
model
which
the
meeting
created
relies
upon
and
we're
putting
all
this
information
into
it
that
we're
getting
out
of
graphs.
So
here
you
can
see.
This
is
a
graph
call
we're
getting
events
based
on
the
team,
ID
and
the
event
ID.
Eventually
this
goes
to
graph
through
the
calendar
service.
You
can
see,
there's
also
extensions
that
we
have
used
with
graph
here
to
store
some
of
our
items
here.
B
This
is
the
sequel
database,
where
we're
interacting
with
the
sequel
database
to
go,
get
data
out
of
it
and
the
reason
I
wanted
to
also
bring
up
the
template
is.
This
is
a
good,
a
one-stop
shop
piece
of
the
code,
if
you
will
to
demonstrate
how
we
interacted
with
many
different
services,
including
the
sequel
database,
behind
the
scenes
here.
After
all,
this
information
is
assembled.
B
We
come
down
here
and
we
use
this
view
render
service
which
is
built
into
asp.net
razor
engine
and
if
we
call
rendered
a
string
async
on
it
and
we
pass
in
the
path
to
the
template
we
want
to
render,
along
with
the
information
for
its
model,
we
get
back
this
string
and
this
string
eventually
actually
represents
the
HTML
that
we
want
to
use
with
all
of
the
dynamic
data
put
into
it
that
we're
about
to
send
through
Outlook.
So
after
we
get
that
information
back
again,
we
go
to
another
service
class.
B
So
if
I
bounce
over
to
that
one
here,
you
can
see
I'm
taking
in
the
subject
an
array
of
mails
as
well
of
emails
to
send
it
to,
as
well
as
the
content
that
we
used
that
razor
view
to
create
that
HTML
for
us
and
we
assemble
what
our
message
looks
like
based
on
that
specified,
don't
put
it
in
my
sent
items
because
I
don't
really
need
a
wreck
that
and
then
again
here's
the
graph
client
call
send
mail
passing
the
message
and
false
right
there.
So
I
don't
save
it.
B
C
A
The
outlook
team
are
currently
rolling
that
feature
out
across
all
the
clients,
and
once
that
is
in
all,
the
clients
will
actually
put
that
into
reap
me
and
have
that
as
a
configurable
toggle,
because
you
do
have
to
white
label
the
environment
for
that
actual
message
to
work
in
that
scenario.
But
it's
a
great
way
of
showing
that
again,
if
your
users
on
the
road-
and
they
want
to
view
the
document
and
just
mark
it
as
complete
without
going
into
planner
to
market
being
to
do
that
directly
into
Outlook.
A
B
For
adding
in
all
those
details,
geremy
that
was
quite
one
of
heckuva,
one
to
figure
out
wasn't
it
that
was
cool.
The
next
oh
and
you
may
have
also
noticed.
I
have
some
unread
emails
here
that
three
of
them
that
have
occurred
since
the
call
started.
So
this
is
these
are
the
remail
that
are
I'm
logged
in
as
my
account
here
in
this
tenant,
and
so
this
is
the
actual
meeting
invite
what
it
looks
like
when
you
get
it
you
can
see.
B
It
includes
the
agenda,
the
attachments,
here's
when
I
was
assigned
a
task
here,
you
can
see
that
I
actually
got
assigned
a
task
in
planner
and
when
Jeremy
created
that
meeting,
because
he
uploaded
a
document
and
then
here
is
again
that
follow-up
email,
that
from
what
Jeremy
sent
now
the
code
back
here
for
the
web
job
I'm,
not
sure.
It's
really
so
much
interesting
that
it's
worth
time
to
spend
time
getting
into.
How
did
we
go
look
at
the
tasks
and
determine
you
know,
did
it
need
to
send
out
an
email
or
not?
B
But
you
can
probably
do
that.
One
on
your
own
there's
one
more
piece
to
the
puzzle
that
we
haven't
shown
yet
and
that's
the
SharePoint
framework
piece,
and
so
we
also
created
this
SharePoint
framework
web
part
and
the
idea
here
was
well.
It's
nice
that
I'm
getting
a
web
bot
telling
me
if
I
have
pre,
read
tasks
to
do
and
it's
cool
that
I
can
log
into
teams
that
I
can
find
out
what
tasks
I
have
upcoming
for
me
by
looking
at
individual
meetings.
But
what
about?
B
This
is
reading
from
that
bucket,
and
so
we
can
also
filter
here
on
all
the
tasks
were
created
or
just
the
tasks
that
were
created.
For
me,
we
didn't
have
time
to
write
any
actions
into
this
page
to
complete
these
tasks
or
change
them,
but
that
could
easily
be
done
by
looking
at
the
other
code
we
made
in
the
app
there
to
make
that
take
place,
and
the
really
neat
part
about
this
app
is
that
this
SharePoint
framework
app
can
also
run
directly
inside
of
Microsoft
team
tab
itself.
B
So
if
I
go
take
a
look
at
this
code
here
for
the
web
part,
this
is
the
the
SharePoint
framework
web
part
code,
I'm,
looking
at
now
and
in
this
webpart
code.
The
first
thing
I'd
like
to
point
out,
is
the
we're
using
react,
we're
using
SharePoint
core
library.
We
are
also
using
here
the
import
for
the
Microsoft
graph
controls
inside
of
the
actual
component
that
is
inside
of
the
web
part.
Here.
B
B
That
was
the
one
on
the
left
side
of
the
web
part
being
used,
and
it
has
a
click
event
registered
for
it
that
when
you
click
one
of
them,
it's
going
to
fire
load
tasks,
and
so,
when
load
tasks,
fires
here
you
can
see
how
we're
using
the
tasks
graph
toolkit
component,
which
is
what
you
saw
rendered
on
the
right
side
of
the
screen.
And
so
if
we
go
back
again
here,
this
is
the
tasks
component,
and
this
is
the
our
task
component
over
here.
Events
component
on
the
left.
B
It's
one
last
interesting
thing
well,
actually
more
than
one,
but
when
I
have
time
to
talk
about
today
and
the
code
here-
and
this
is
in
the
actual
initialization
of
our
web
part.
Let
me
find
it
real
quick
here.
It
is
so
when
the
component
mounts
come,
if
you're
familiar
with
react
component
did
mount,
will
fire
and
inside
of
component
did
mount
here?
B
You
can
see
where
we
go
to
and
make
a
new
graph
service,
and
that's
when
we're
going
out
to
get
the
events
by
the
group
and
Channel
and
that's
here's
our
graph
service
costs
where
we
actually
execute
that
call,
and
so
this
this
pattern
has
been
around
for
a
while
inside
of
SharePoint
framework.
But
if
you
haven't
seen
it
before
that,
that's
how
these
things
are
happening
here.
One
last
thing
I'd
like
to
loop
back
to
and
give
you
all
a
tour
on
that.
B
It's
not
a
code
level
detail,
but
it
is
a
technical
detail
that
should
help
you
understand
the
solution
better.
When
Jeremy
created
the
new
meeting,
you
saw
that
these
attachments
were
stored
somewhere
and
we
saw
that
planner
tasks
were
getting
created.
Well,
really,
where
are
they
getting
created
in
this
particular
team?
Channel
I've
put
links
to
where
they
are
so
I
can
show
you
quickly.
First
of
all,
as
we
all
know,
when
you
create
a
team,
you
can
create
a
place
inside
of
SharePoint
to
store
the
files.
B
B
So
these
three
pre
read
tasks
here
were
created
automatically
when
Jeremy
made
the
meeting
notice,
there's
one
for
each
meeting,
attendee
myself
Alisa
and
the
account
Jeremy
used
Katie
Jordan
here
to
make
the
meeting.
So
the
logic
is
every
time
a
new
meeting
is
made
for
each
pre-reading
document.
That's
uploaded,
give
each
meeting
attendee
a
test
to
go.
Read
it!
B
Finally,
Jeremy
showed
you
the
notebook
opened
up
in
the
raw
OneNote
program,
but
here
you
can
see
it
within
the
context
of
the
team's
tab.
So
here
I
have
the
quarterly
meetings
and
here's
the
one
that
Jeremy
just
made
at
the
beginning
of
the
call,
and
so,
as
you
can
see,
everything
that
we've
organized
is
all
within
the
context
of
a
channel
within
a
given
team
and
that's
how
we
kind
of
used
it
to
bucket
things
and
make
it.
You
could
scale
it
across
multiple
channels
for
multiple
teams.
Yeah.
C
Absolutely
and
thanks
for
doing
a
great
job,
Todd
I'm,
actually
introducing
the
toolkit
I,
think
it
it's
great
and
it's
great
to
see
how
much
as
he
used
inside
of
this
application
and
hold
of
working
with
it
for
visibility
for
everybody
on
the
call
is
when
Todd
and
his
team
started.
Building
this,
they
actually
sent
a
lot
of
requests.
C
Our
way
of
things
that
we
need
to
do
and
the
toolkit
to
make
sure
that
they
can
accomplish
their
job
of
building
this
experience,
because
when
they
designed
it,
they
weren't
looking
at
what
looking
new
they
were
looking
at.
What
is
a
cool
scenario
they
can
deal
with
the
graph
and
then
they
brought
in
the
toolkit
to
kind
of
make
that
happen.
So
that
allowed
us
to
improve
that
it'll
be
quite
a
bit
and
add
features
that
we
didn't
know
we're
required
or
were
usable
or
need
it
at
a
time.
C
So
let
me
share
my
screen.
Real,
quick
and
they're,
not
gonna,
go
through
a
quick
overview
so
for
those
that
are
not
familiar
with
the
toolkit,
just
a
quick
ramp
up.
The
toolkit
is
just
a
set
of
web
components
that
work
with
any
framework,
so
just
as
Jeremy
said
they
work,
we
could
have
used
react
here
could
have
used
view
whatever
you
would
have
used
as
your
front-end
framework.
These
components
work
just
fine
and
did
a
particle
part
of
these
things,
or
is
that
they
work
automatically
with
the
graph
so
a
lot
of
times.
C
You
don't
even
have
to
know
what
the
graph
calls
you
to
make
for
them
to
work.
So,
for
example,
in
this
case,
if
I
use
the
agenda
that
Todd
showed
already,
you
will
see
on
the
side.
The
agenda
just
starts
popping
up
and
showing
all
your
all.
Your
events,
which
is
you
know,
I'd,
have
to
write
a
single
line
of
JavaScript
code
to
actually
get
this
to
work
or,
for
example,
one
of
the
most
useful
components
is
the
personal
component.
That's
used
everywhere
in
the
application.
C
If
I
use
personal
query
me,
for
example,
this
will
kind
of
just
move
the
agenda.
This
will
just
show
the
me
person
and
then
one
of
the
cool
patterns
that
we
see
that
developers
really
want
is
a
personal
card.
So
we
can
actually
show
a
person
hired
on
hover
here.
So
every
time
I
hover
over
this
person
card,
it
will
show
up
now.
This
is
used
everywhere
inside
of
the
application.
So,
for
example,
here
here's
the
the
person
component
I
can
actually
right
click
and
inspect
this.
C
If
I
wanted
to-
and
you
can
see
here
here-
is
there-
it
is
that's
the
MGT
person-
you
can
see
it
right
there,
and
now
this
one
doesn't
have
a
person
card
on
it,
but
I
can
actually
edit
the
HTML
right
here.
Let's
try
to
do
that.
Real
quick
I
can
say:
Christian
card
equals
now,
when
I
hover
over
it
I
have
a
person
card.
So
it's
that
easy
to
actually
add
that
person
card
there
into
the
application
and
I
didn't
have
to
have
access
to
their
source
code.
C
For
example,
you
saw
the
example
of
clicking
and
on
an
event,
so
we
didn't
have
any
click
events
actually
on
the
agenda
or
in
the
task
component
at
all,
and
we
for
some
reason.
We
didn't
think
that
was
necessary
and
that
is
a
feature
request
that
thought
actually
really
needed
to
make
the
application
work.
So
we
added
those
click
events
inside
of
that
baggage
and
the
task
component.
C
C
Your
tasks,
so
actually
let
me
show
you
how
that
works.
I
can
show
it
here.
So,
for
example,
if
I
use
no
GG
tasks
here,
I'm
just
going
to
show
my
my
automatic
is
gonna
show
all
my
planner
tasks
good.
Second
there.
This
I
can,
for
example,
click
on
people.
I
can
up
now.
I
can
show
a
person
speaker
automatically
out
of
the
box
and
assign
different
people
to
do
these
tasks,
and
this
works
out
of
the
box
now
in
these
components.
C
Any
JavaScript
goes
so,
for
example,
if
I
go
to
I,
want
you
to
get
that
HTML.
This
component
will
I,
guess
I,
don't
have
the
permission
so
yeah
there
is
I
I,
don't
have
that's
actually
good
example.
I
tried
to
get
my
messages,
but
I
don't
have
any
permissions
approved
and
it
looks
like
I
need
to
allow
pop-ups.
Let's
go
ahead
and
do
this
and
be
back
block.
I
should
have
tested
this
before.
C
Anyway,
it
would
get
my
messages
or
whatever
resource
from
the
graph
outlets
just
and
then
you
would
use
a
template
to
kind
of
render
that
that
details
from
the
grab
directly
into
UI.
So
that
way
you
can
just,
for
example,
in
this
case
list
all
the
different
emails
on
the
user's
inbox.
So
it
does
a
data
for
for
all
the
emails
in
value,
which
is
the
raw
data
you
get
from
the
graph.
C
You
can
use
the
subject,
email
address
and
you
can
display
different
things
from
that
email,
so
you
can
use
any
endpoint
inside
of
the
graph.
So
if
you
want
to
use
the
graph
toolkit-
and
we
don't
have
an
opponent
for
it,
there's
a
clear
way
to
do
that
or
if
you
want
to
extend
a
template.
This
is
a
great
way
to
call
any
random
API
from
the
from
the
graph
and
then
finally,
one
of
the
biggest
things
that
we
added
to
the
graph
tool.
C
Kid
that
was
required
to
enable
this
scenario
to
work
was
the
proxy
provider.
Now,
when
we
first
shipped
the
box
or
graph
toolkit,
we
only
supported
the
client-side
authentication
and
clients.
I'm,
making
requests
calls
the
graph
to
the
client
side
so
using
things
like
M
cell
J
s
or
using
any
other
client
side
library
to
make
those
requests,
and
it
wasn't
possible
to
make
requests
through
your
back-end
to
your
server.
C
So,
for
example,
in
this
case
where
this
application
uses
an
asp.net
app
to
make
all
the
near
quests
to
the
graph
and
then
pass
them
over
to
their
front
end,
that
was
impossible.
So
to
make
that
possible,
we
added
a
new
proxy
provider
that
allows
you
to
you
proxy,
any
request
to
the
graph
through
your
back-end.
So
the
way
this
is
used
inside
of
the
this
application
is
simply
created
as
a
new
provider.
C
Here
you
can
see
there,
including
the
toolkit
here
to
the
script
they're,
creating
a
new
proxy
provider
that
points
to
this
API
API,
slash,
NBC
graph,
that
they've
created
on
their
back-end
and
also
takes
in
a
this-
is
a
that
is
a
header
for
it.
So
it
can
support
the
SSO
that
they
need
so
that
way
the
user
to
have
to
sign
in
so
that
way
they
can
use
the
SSO
through
teams
all
right.
C
C
So
now
any
component,
that's
used
into
the
front-end,
can
still
leverage
all
of
the
work
they've
done
on
the
backend,
and
we
use
the
same
authentication
user
to
sign
them.
They
can
use
this
or
so
and
still
have
all
the
easiness
of
what
the
talkee
can
do.
That
is
a
quick
overview
of
the
graph
I
want
to
leave,
make
sure
there's
enough
time
for
questions
and
stuff
like
that.
But
again
this
wouldn't
be
possible.
C
If
it
wasn't
for
the
work
that
Todd
and
his
team
we're
doing
to
to
make
this,
this
application
and
we'd
love
to
hear
all
the
all
the
cool
things
that
everyone
wants
to
deal
with
with
the
graph
and
the
graph
toolkit,
and
if
there's
anything
we
can
do
to
make
that
possible.
So
if
anybody
has
any
suggestions
or
requests,
please
work
with
us
and
we
can.
We
would
love
to
kind
of
add
those
inside
of
the
toolkit
to
make
it
even
better.
That
way.
A
The
canvas
for
contributing
back
to
the
graph
toolkit
and
having
to
build
out
the
scenario
episome
a
good
good,
good
exercise
to
go
through
with
regards
to
working
as
a
team
here,
which
was
great.
So
while
we're
waiting
for
questions
I
just
want
to
just
highlight
that
all
of
our
Microsoft
graph
calls
are
available
on
our
office.
Dev,
YouTube
channel
and
the
next
call
beef
every
the
fourth
8:00
a.m.
and
you
can
add
the
edits.
A
Your
calendar
using
the
Microsoft
graph,
call
a
Kaka
link
at
the
bottom
here
to
add
the
new
series,
which
has
the
new
join
link
in
it,
which
is
basically
the
same
euro
with
join
after
it.
And
just
as
a
quick
reminder.
We
also
do
do
Oh
a
weekly
Microsoft,
365
developer,
podcast
that
I
host
with
Paul
shape
on
it
is
an
MVP.
A
It
was
a
great
session
we
have
Paul,
said
and
then
actually
Chris
O'brien
who's,
one
of
my
favorite
MVPs
that
I've
learned
the
last
15
years
from
his
blog
and
different
sessions
of
attended
at
conferences,
and
he
talked
about
kind
of
his
evolution.
How
he's
moved
into
the
power-ups
and
power?
Automation,
power,
automate,
world
and
kind
of
this
meeting
of
makers
to
developers
or
no
Todd
does
appear
to
work
with
power
ups
as
well.
A
So
if
you
haven't
listened
to
those
shows
I
highly
recommend
scrubbing
that
in
one
of
our
podcast
player
that
you
shoes,
I,
don't
see
any
questions
in
the
chat
over
the
one
from
JK,
which
is.
Is
there
a
graph
partner
program?
We
do
not
have
a
tap
of
program
at
the
minute.
We
have
a
Developer
Program
which
allows
you
to
kind
of
as
an
individual
subscribe
in
and
basically
show
your
interests
across
the
mics.
So
I've
developed
a
platform.
It
gives
you
a
three
Microsoft
365
tenants.
A
That's
one
way
you
can
kind
of
engage
as
a
as
a
partner
within
Microsoft
with
the
M
365
developers
and
the
best
way
to
do
that
is
by
monitoring
on
the
blog.
Let
me
announce
those
dev
kitchens
are
coming
up,
I'm,
not
sure
when
the
next
ones
are
just
just
yet
one
front
down
you
here
we
use
graph
API
to
integrate
SharePoint
with
our
in-house
applications.
Fortunately,
graph
API
does
not
seem
support
document
sets.
A
There
is
definitely
gaps
between
what
the
SharePoint
see
some
and
REST
API
is
do
and
what
Microsoft
graph
API
is
do
the
team
inside
the
ship?
An
engineering
group
that
own
the
API
is
across
their
entire
surface,
are
working
to
close
those
gaps.
I
know
they're
actively
working
on
the
taxonomy
managed
metadata.
Api
is
that
currently
on
on
graph
that
are
available
and
see
someone
rest?
This
is
obviously
a
lot
to
do
with
the
work.
A
That's
going
on
with
project
cortex
I'm,
not
sure
we're
at
move
document
sets
I
know
they
recently
got
new
user
experience
features
and
so
I
would
assume
that
engineering
group
are
working
on.
The
API
is
the
best
way
to
raise
your
concerns
about
gaps
like
that
is
actually
to
go
to
our
user
voice,
so
Microsoft
graph
user
voice
calm
and
you
can
provide
feedback
there
and
there's
categories
like,
for
instance,
for
SharePoint,
which
is
a
work
on
the
graph
to
request
those
document
sets
and
our
program
managers.
A
There
will
actually
state
whether
those
features
are
in
review
or
they're
in
the
backlog
or
they're
being
worked
on.
So
please
go
to
Microsoft
graph
user
voice,
calm
to
provide
that
feedback.
Okay,
some
components,
there's
some
great
work,
meticulous
Docs,
with
examples
community
support.
Thank
you.
We
would
work
very
hard
to
engage
with
people
here.
We
love
the
fact
that
we
had
so
many
people
to
call
today
so
big.
Thank
you.
There
Jake
I'm,
happy
to
take
that
off.
A
The
line
Jake
at
Microsoft,
comm
and
I
can
make
sure
you're
all
plugged
in
there
from
a
partner
perspective
and
then
you're
welcome
in
terms
of
saying
thanks
for
the
answer
there
on
that
I'm.
So
with
that
this
will
be
recorded.
Please
check
out
everything.
That's
going
on
inside
of
the
other
community
calls
that
are
also
promoted
on
the
developer
box
watch
the
365,
and
we
will
see
you
next
month
on
February
4th.
Thank
you
again
to
Nicola
and
Todd
for
presenting
today
and
I'm
really
excited
to
see
what
you
do
with
this
sample.
A
It
is
on
github,
so
we
expect
to
see
you
have
feature
ideas.
We
would
love
they
ours
against
the
sample,
as
you
add,
new
features
and
functionality
into
this.
This
is
a
solution
template
that
we
are
going
to
be
evolving
so
expect
to
build
time
frame
that
will
be
doing
more
with
this
sample
and
so
will
evolve
this
as
the
platform
evolve.
So
a
big
thank
you
to
everyone
involved,
and
we
will
see
you
next
month
on
February
4th
at
8:00
a.m.
PDT.